一.POM模式
POM结构:
项目名称文件:
common文件夹:
base.py文件:对selenium二次封装:
1.打开浏览器
2.打开地址
3.元素定位
4.元素操作
page文件夹:
1.对项目每个页面封装
2.page文件夹:将页面分为三层
表现层:页面中可见的元素
操作层:对可见元素的操作
业务层:由操作层组合形成场景/业务
3.page类:
编写内容:
①封装表现层:制作定位器
②封装操作层:对定位器中各个元素操作,将操作形成方法
③page类继承Base
script文件夹:
存放测试用例,使用unittest管理用例
1.只关注操作步骤,如果涉及到测试数据,暂时写成死数据
2.确定断言
3.关注测试数据灵活性
二.unittest框架
1.作用:
规范自动化测试用例编写
管理自动化测试用例的执行
2.基本概念
测试夹具:test fixture 处理测试前的数据准备和测试后的数据清理
测试套件:test suite 批量收集需要执行的测试用例
测试用例:test case 核心部分,编写的测试用例符合unittest框架的要求
测试执行:test runner 执行测试套件收集的测试用例
3.特殊方法
setUp:在一个py文件,在测试用例执行之前先执行,有多少测试用例,执行多少次
tearDown:在一个py文件中,在测试用例执行之后再执行,有多少测试用例,执行多少次
setUpClass:在一个py文件中,在测试类执行之前先执行,需要@classmethod装饰
tearDownClass:在一个py文件中,在测试类执行之后再执行,需要@classmethod装饰
4.用例编写注意事项
①测试用例文件名称以test开头
②测试用例类名称Tset开头
③测试用例方法名称test开头
④测试用例的执行顺序:对用例名称按照ASCII字符集排序
5.断言
语法:
assertEqual(a,b,msg="当断言失败时输出")
#判断a和b是否相等,如果相等则断言成功,反之断言失败-->用例执行失败
assertTrue(x,msg="当断言失败时输出")
#当条件x为True时.断言成功,反之断言失败-->用例执行失败
断言的添加位置:在测试用例中添加
注意:
断言来说,只有失败的断言才会有提示
断言失败的关键字:AssertionError,表示用例执行失败,不是代码错误
5.测试套件&测试执行
①测试套件:
unittest.defaultTestLoader
举例
#1.导入
import unittest
#2.添加测试用例存放的路径
case_dir="F:\pythoncode\自动化-上课代码\\20200213\ECshop\script"
#3.将需要执行的测试用例添加到测试套件中
#将script文件夹中的所有测试用例加入到测试套件中
discover=unittest.defaultTestLoader.discover(case_dir)
#4.执行测试用例
runner=unittest.TextTestRunner()
runner.run(discover)
②测试执行
unittest