# !/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评审
研发(写代码技术档案,写代码)
测试(写计划,写方案,写测试用例)
转测试(冒烟测试,完成,上线)
开始测试
'''