# !/usr/bin/env python # -*- coding:utf-8 -*- ‘‘‘ Java的继承与Python的继承有什么区别 Java:对象在调用父类中方法时,该方法调用的方法会优先使用子类的方法,调用的成员变量会优先调用父类的变量。 Java:因为涉及到变量属性的问题,必须对对象进行降级和转换才能使用子类的方法和属性。 python:对象在调用父类中方法时,调用的方法和变量都优先调用子类的方法和变量。 python:天生多态 如果子类重写了父类的方法,那么实例化子类后,调用重写后的方法,调用的是子类的方法还是父类的方法 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自动化测试: 常用的元素定位有那几种方法,请举例说明 在element加s为多种元素定位方法。 一般用于以下场景: (1)批量操作对象,比如将页面上所有的复选框都被勾选。 (2)先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。 id | find_element_by_id() name | find_element_by_name() class name | find_element_by_class_name() tag name | find_element_by_tag_name() link text | find_element_by_link_text() partial link text | find_element_by_partial_link_text() xpath | find_element_by_xpath() css selector | find_element_by_css_selector() 单个元素定位与多个元素定位的区别是什么? 单个元素标签用于定位单个元素 多个元素定位用于定位一组元素 如果是iFrame的框架,如何来定位里面的元素属性的对象 先进入对应frame框架再定位元素 frame框架一般通过ID、NAME、索引形式 怎么理解面向对象设计模式 创建可以跨多个测试用例的共享代码 减少重复代码 减少维护成本 怎么理解显式等待和隐式等待 显示等待:定义了等待条件,只有该条件触发,才执行后续代码。 隐式等待:尝试发现某个元素的时,如果没立刻发现,就等待固定长度的时间。 在测试中遇到多窗口,具体怎么解决,请描述具体的步骤和编写具体的案例代码 对A窗口句柄赋值给一个变量 nowHandler=self.driver.current_window_handle 对B窗口句柄赋值给一个变量 allHandlers=self.driver.window_handles 对窗口句柄进行对比循环到新窗口 for handler in allHandlers: if nowHandler!=handler: self.driver.switch_to.window(handler) 判断窗口是否为预期窗口 self.assertEqual(self.driver.title,‘QQ注册‘) 单元测试框架: unittest的常用组件有哪些 test fixture:初始化和清理测试环境 setUp()和setDown(), setUpclass()和setDownclass()最常用的方法 test case:单元测试用例 TestCase是编写单元测试用例最常用的类 test suite:单元测试用例的集合 TestSuite 是最常用的类 test runner:执行单元测试 test report:生成测试报告 unittest中怎么理解测试固件 测试固件是执行测试时的准备工作和收尾工作,测试环境初始化和关闭,数据进行还原操作 怎么理解两种测试固件的区别的测试 setUp()、setDown()用例类 打开浏览器输入对应网址这些操作 给数据还原,这就是执行用例的后置条件。 对每个用例执行 setUpclass()和setDownclass()测试类 打开浏览器输入对应网址这些操作 给数据还原,这就是执行用例的后置条件。 对整个测试类执行一次 在unittest测试框架中,加载所有的测试模块使用到的方法是什么?具体参数是什么? import unittest 引入unittest库 unittest.TestLoader().discover 获取被执行的测试套件 在unittest中使用那个库来生成对应的测试报告 引入import HTMLTestRunner.py生成 一个完整的测试用例包含哪些步骤 测试需求 --> 分析需求 --> 编写用例 --> 划分用例的优先级 怎么理解参数化 @parameterized.expand([ param(‘‘, ‘‘, ‘‘), param(‘‘, ‘‘, ‘‘), ]) 测试进行相同的步骤输入的数据不的 测试按阶段划分,主要分为那几个阶段 单元测试,集成测试,系统测试,验收测试 怎么理解等价类和边界值 等价类可分为有效等价类、?效等价类,是常?的?盒测试?例设计?法。 边界值分析法是作为对等价类划分法的补充,其测试?例来?等价类的边界。针对某一事物设计他的测试用例 请描述一个完整的测试流程 PRD产品需求文档(交互,逻辑) PRD评审 研发(写代码技术档案,写代码) 测试(写计划,写方案,写测试用例) 转测试(冒烟测试,完成,上线) 开始测试 ‘‘‘