这里写自定义目录标题
pytest简介
-
pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手;
-
pytest可以和selenium , requests,appium结合实现web自动化,接口自动化,app自动化;
-
pytest可以实现测试用例的跳过以及reruns失败用例重试;
-
pytest可以和allure生成非常美观的测试报告;
-
pytest可以和Jenkins持续集成;
-
pytest有很多强大的插件,并且这些插件能够实现很多的操作;
pytest-html 生成html格式的自动化测试报告
pytest-xdist 测试用例分布式执行,多cpu分发
pytest-ordering 改变测试用例的执行顺序
pytest-terunfailures 测试用例失败后重跑
allure-pytest 生成美观的测试报告放到一个111.txt文件夹中,通过pip install -r 11.txt
默认的测试用例规则和基础应用
- 模块名必须以test_开头或者以_test结尾;
- 测试类必须以Test开头,不支持init方法
- 测试方法必须以test开头
测试用例的运行方式
-
主函数模式
运行所有:pytest.main()
指定模块:pytest.main(['-vs','test_*.py'])
指定文件夹:pytest.main(['-vs','./interface'])
-
命令行模式
运行所有:pytest
指定模块:pytest -vs test_*.py
指定文件夹:pytest -vs ./interface -
通过读取pytest.ini文件来运行
参数详解:
-s :表示输出调试信息,包括print信息
-v:显示更加详细的信息
-vs:这两个参数可以一起使用
-n:支持多线程或者分布式运行测试用例
如:pytest -vs ./interface/test_login -n 2
-x:只要有一个用例报错,测试停止
-k:根据测试用例的字符串去匹配测试用例执行
–reruns NUM 失败用例重跑
–maxfail=2:出现两个错误用例就停止运行
pytest的执行顺序
- 默认从上到下依次执行
- 改变默认执行顺序,使用mark标记
@pytest.mark.run(order=1)