一、Pytest简介及常用插件安装
Pytest是一个非常成熟的单元测试框架、灵活、简单。
可以结合selenium、requests、appium完成各种不同的自动化。
它还可以生成自定义allure报告以及与Jenkins持续集成
Pytest有很多强大的插件:
- Pytest-html 生成html报告的插件
- Pytest-xdist 多线程运行的插件
- Pytest-ordering 改变用例执行顺序的插件
- Pytest-reunfailres 失败用例重跑的插件
- Allure-pytest 生成美观自定义的allure报告
通过在项目的根目录下面,新建requirements.txt,里面添加需要安装的插件,然后在下方终端命令窗口,输入命令pip install -r requirements.txt进行安装,一定要在虚拟环境venv安装,方便后续测试项目移植。
二、 Pytest测试用例规则及基础应用
2.1、Pytest测试用例规则:
- 模块名(py文件)必须test_开头或者_test结尾
- 测试类(class)必须以Test开头,并且不能带有init方法
- 测试用例(py文件中的def定义的函数)必须以test_开头
2.2、Pytest执行:
2.2.1 通过命令行方式执行
Pytest
执行参数:
1)-vs (v输出详细信息,s输出调试信息)如:pytest -vs
2)-n (多线程运行,插件pytest-xdist)如:pytest -vs -n=2
3)--reruns num (失败重跑,插件pytest-rerunfailres)如:
pytest -vs –reruns=2
raise Exception() 抛出异常
try except 解决异常
4)-x (出现一个用例失败则停止测试)如:pytest -vs -x
5)--maxfail (出现几个失败才终止测试)如:pytest -vs –maxfail=2
6)--html (生成html报告,插件pytest-html)如:pytest -vs --html ./reports/result.html
2.2.2 通过主函数main方式执行
一般会在项目的根目录下面建run.py文件写main函数
if __name__ == '__main__':
pytest.main()
pytest.main([“-vs”]) #添加参数
2.2.3 通过全局配置文件pytest.ini文件执行
注意:
一般放在项目的根目录下,名称必须是pytest.ini
编码格式为ANSI
Pytest.ini文件可以改变默认的测试用例规则
不管是命令运行也好还是主函数运行,都会加载这个配置文件
[pytest]
#参数
addopts = -vs
testpaths = ./testcases
python_files = test_*.py #改变测试文件的命名规则
python_classes = Test* #改变测试类的命名规则
python_functions = test_* #改变测试用例中的方法命名规则
#测试用例分组执行
markers =
smoke:冒烟用例
product_manage:商品管理模块用例
user_manage:用户管理模块
测试用例分组执行时需要:
在测试方法前加@pytest.mark.smoke
在pytest.ini文件修改参数addopts = -vs -m “smoke