23、Java的继承与Python的继承有什么区别

java:单继承

python:多继承
24、如果子类重写了父类的方法,那么实例化子类后,调用重写后的方法,调用的是子类的方法还是父类的方法

当子类重写父类的方法,子类实例化后调用父类的方法

继承原则:

前提:单继承

 原则:实例化子类,子类对象调用的方法和父类方法重名,优先考虑子类

class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show(self):
        print('name is {0},age is {1}'.format(self.name, self.age))


class Work(Person):
    def __init__(self, name, age, salary):
        # super()的方法继承父类的实例属性
        # super().__init__(name, age)
        Person.__init__(self, name, age)
        self.salary = salary

    def show(self):
        print('name is {0},age is {1},salary {2}'.format(self.name, self.age, self.salary))


objPerson = Work(name='admin', age=19, salary=1000.1)
objPerson.show()

 


UI自动化测试:
1、常用的元素定位有那几种方法,请举例说明

八种方法

id

from selenium import  webdriver
from selenium.webdriver.common.by import By
import time as t
'''id的定位'''
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys("Hellow World")
t.sleep(5)

 

第三周习题_父类

 

 

 

name

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_name('wd').send_keys("Hellow World")
t.sleep(5)

第三周习题_固件_02

 

 

 

class name

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_class_name('s_ipt').send_keys("Hellow World")
t.sleep(5)

第三周习题_父类_03

 

 

 

xpth

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("Hellow World")
t.sleep(5)

第三周习题_父类_04

 

 

 

css

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_css_selector('#kw').send_keys("Hellow World")
t.sleep(5)

第三周习题_子类_05

 

 

LINK_TEXT 

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('直播').click()
t.sleep(5)

 

.PARYIAL_LINK_TEXT 

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_partial_link_text('').click()
t.sleep(5)

 

tag_name

driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
tag=driver.find_elements_by_tag_name('input')
tag[7].send_keys("无涯教育")
t.sleep(5)
driver.close()

第三周习题_chrome_06

2、单个元素定位与多个元素定位的区别是什么?

单个元素和多个元素定位定位是element后面有没有s

单个元素element 多个元素elements


3、如果是iFrame的框架,如何来定位里面的元素属性的对象

ifame里面的元素先得进入ifame框架中在进行定位

id定位:

driver.swich_to.frame('.....')

索引的方法:

driver.swich_to.frame(0)

4、怎么理解页面对象设计模式

1.创建可以跨多个测试用例共享的代码:

2.减少重复代码的数量

3.如果用户界面发生变更后,只需要在一个地方维护就可以了。


5、怎么理解显式等待和隐式等待

显示等待:显示等待不会等页面加载完,它会在页面加载的同时,就开始不断的找元素,只要找到元素并且满足设定的条件,直接执行下一步。

隐式等待:隐式等待等页面加载完成,在去进行下一个查询找到了进行下一个,如果没有找到继续找直到设定的时间过了,在进行下一步。


6、在测试中遇到多窗口,具体怎么解决,请描述具体的步骤和编写具体的案例代码

1、循环所有的窗口

2、判断是否是当前窗口

3、如果不是,切换到新的窗口

4、在新的窗口进行操作

5、关闭新的窗口

6、切换到最开始窗口

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
nowHandler=driver.current_window_handle
#点击忘记密码
driver.find_element_by_link_text('忘记密码?').click()
allHandler=driver.window_handles
for handler in allHandler:
    if handler!=nowHandler:
        driver.switch_to.window(handler)
        url=driver.current_url
        print(url.endswith('entry=freemail'))
        assert url.endswith('entry=freemail')==True
        # driver.close()
# driver.switch_to.window(nowHandler)
t.sleep(3)
# driver.quit()

 

 

单元测试框架:


1、unittest与pytest的框架


2、unittest的常用组件有哪些

第三周习题_子类_07

 

 

TestCase:测试用例,测试用例里面会有很多测试方法,是单元测试中最小维度的测试行为

Test Fixure:测试固件,测试固件是执行测试时的准备工作和收尾工作(打开和关闭浏览器,链接和关闭数据库)

TestSuite:测试套件,是测试用例的集合

TestRunner:测试运行器,运行测试用例

TestReport:将测试结果呈现给用户,生成测试报告


3、unittest中怎么理解测试固件

在unittest中测试固件依据⽅法可以分为两种执⾏⽅式,⼀种是测试固件只执⾏⼀次,另外⼀种是测试固件每次都 执⾏,下⾯依据具体的案例来讲解⼆者。

setUp():最开始执行

tearUp():最后执行


4、怎么理解setUp(),tearDown()与类测试固件的测试

setUp() 测试固件只执行一次

tearDown() 测试固件每次均执行

 

5、在unittest测试框架中,加载所有的测试模块使用到的方法是什么?具体参数是什么?

用到的方法:unittest.main()

具体参数verbosity=2


6、在unittest中使用那个库来生成对应的测试报告

report:存储测试报告


7、一个完整的测试用例包含哪些步骤

测试需求--->分析需求(画思维导图)-->编写用例-->划分用例的优先级
8、怎么理解参数化

解决的问题:

测试进行相同的步骤,只是输入的数据不同,其他操作都是一样的,这样需要写很多测试用例,参数化可以解决这种问题,让代码更加简洁。

4、测试按阶段划分,主要分为那几个阶段

软件测试可分为单元测试、集成测试,系统测试和验收测试。

5、怎么理解等价类和边界值

等价类

例:1,001,0001

  2,002,0002

边界值

例:

1~99的范围

1和99就是两个边界
6、请描述一个完整的测试流程

 第三周习题_测试用例_08