1.你们自动化测试使用的代码框架是什么样的
我们使用的测试框架以数据驱动测试为思路,
在unittest与ddt基础上进行二次封装,实现了
代码元素分离、代码数据分离、selenium二次封装,日志、
批量执行用例生成报告、定时执行用例等功能
代码框架分为:用例模块、数据模块、公共方法模块、执行模块、公共配置等
2.你们在写代码时都封装过哪些方法
1.封装元素操作相关的方法,比如:点击、输入、获取文本、上传文件等
2.封装读取元素信息的方法,读取ini文件中的元素信息
3.封装读取excel数据的方法
4.封装打印日志的方法
3.自动化测试一般在什么时候执行
1.自动化测试适合的项目:项目功能比较稳定、迭代周期适中测试人员具备自动化测试能力
2.自动化测试可以覆盖哪些功能,覆盖率多少:可以覆盖项目中的大多数功能的正常和异常场景,覆盖率可以达到40%-60%
3.一般用于测试开始时的冒烟测试或项目上线前的回归测试
4.自动化测试的优缺点
优点:1.可以在较短的时间执行更多测试,提升测试效率 2.可以快速执行冒烟测试或回归测试,节省时间成本
缺点:1.相对于手工测试,自动化测试覆盖率较低,测试不全面 2.手工测试在测试一些复杂场景时,比自动化测试更可靠
5.假如给你一个项目,说一下你要怎么样开展自动化测试
1.判断当前项目是否适合做自动化测试:1.项目比较稳定 2.非金融相关项目
2.从功能测试用例中挑选出可以被自动化实现的用例
3.设计代码框架、封装基础操作方法、封装日志方法、读取ini配置文件方法等
4.将页面元素定位信息收集到ini配置文件中
5.按照功能测试用例中的步骤,编写自动化测试用例,使用封装好的方法,调用ini中的元素信息
6.在excel中设计测试数据,封装读取excel数据的方法,将测试数据加入到用例中
7.统一执行用例,并生成报告,根据脚本执行情况进行调优
6.讲一下用到了unittest中的哪些功能
1.testCase 测试用例 :setUp() test_*() tearDown()
2.testSuit 测试套件:用例的集合,将用例添加到套件中可以实现批量执行
3.HTMLTestRunner 测试执行器:执行测试套件,并生成测试报告
4.ddt 数据驱动测试,可以通过ddt将测试数据传到测试用例中
7.你在做自动化测试的时候都用到了哪些工具
pycharm+python3.6+selenium+xlrd+unittest+ddt+ini
8.你在做自动化测试时遇到过哪些问题,你是怎么解决的
1.元素定位不到的问题,或者动态元素,解决办法:切换其他定位方式,当常规定位方法无效时可以使用模糊定位,分层定位等方式,检查是否存在嵌套网页,是否依赖操作步骤。
2.项目中的业务问题,比如OA项目中新建合同脚本需要使用订单数据,订单数据需要依赖产品,产品依赖联系人数据,需要按照业务逻辑顺序设计脚本。
3.断言设计,部分功能无法直接通过页面中的文本来判断是否执行通过,需要查询数据库,或者其他操作来作为判断依据。
9.selenium控制浏览器的原理是什么
selenium为代码包,提供了控制浏览器的方法
使用python编写脚本,调用selenium中控制浏览器的方法,执行脚本时,通过浏览器驱动(chromedriver)
控制浏览器按照脚本中的步骤执行
10.常用的定位元素方法有哪些
精确定位:id、name、xpath、css_selector
模糊定位:link_text、tag_name、class_name
分层定位:先定位到某个元素,再从该元素的范围内进行第二次定位
|