标题
python pytest 测试实战(二)
课程价值
- 掌握 Pytest Fixture用法及conftest.py用法
- 了解 Pytest 常用插件
- 掌握 Allure 安装与用法
大纲
- Pytest Fixture用法及conftest.py用法
- Pytest 常用插件
- Allure用法
时长
90分钟
PPT
https://pdf.ceshiren.com/lg3/python-Pytest测试实战2
脚本编写
conftest.py 用法
-
查找顺序
1、测试用例会优先读 取当前模块下的fixture 方法
2、其次读取当前目录下定义的conftest.py 文件里面定义的fixture方法
3、如果当前文件或者当前目录没有,才会去项目目录下一层一层往上找。 -
需要注意
- conftest.py文件名是不能换的
- conftest.py与运行的用例要在同一个package下,并且有__init__.py文件
- 不需要import导入conftest.py,pytest用例会自动查找
- 所有同目录测试文件运行前都会执行conftest.py文件
- 全局的配置和前期工作都可以写在这里,放在某个包下,就是这 个包数据共享的地方。
fixture 参数化
- 代码参照:
@pytest.fixture(params=[('tom',123456),('jerry',654321)],
ids=['用户tom','用户jerry'])
def login(request):
return request.param
def test_case1(login):
print(f"username: {login[0]} ,password:{login[1]}")
print("case1")
conftest.py 获取数据路径定义
- 代码参照
# 读取测试数据
def get_datas():
# 获取测试数据的绝对路径
mydatapath = os.path.dirname(__file__) + "/datas/calc.yml"
with open(mydatapath, encoding='utf-8') as f:
mydatas = yaml.safe_load(f)
adddatas = mydatas['add']['datas']
myids = mydatas['add']['myids']
return [adddatas, myids]
@pytest.fixture(params=get_datas()[0], ids=get_datas()[1])
def get_datas(request):
return request.param
allure 用法
官方下载:
https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
- Allure2 解析过程:
-
- 安装 allure2
-
- Allure help 帮助文档
-
- 生成 allure 测试结果 :pytest —alluredir=./report/
-
- 展示报告:allure serve ./report
-
- 生成最终版本的报告: allure generate ./report
-
- 打开报告 :allure open -h 127.0.0.1 -p 8883 ./report/
作业
- 作业1:
- 1、补全计算器(加减乘除)的测试用例
- 2、创建 Fixture 方法实现执行测试用例前打印【开始计算】,执行测试用例之后打印【计算结束】
- 3、将 Fixture 方法存放在conftest.py ,设置scope=module
- 作业2:
- 1、编写用例顺序:加- 除-减-乘
- 2、控制测试用例顺序按照【加-减-乘-除】这个顺序执行
- 3、本地生成测试报告