pytest框架使用
一、安装插件
#常用安装插件
pytest
pytest-html (生成html格式的自动化测试报告)
pytest-xdist (测试用例分布式执行,多cpu分发)
pytest-ordering(用于改变测试用例的执行顺序)
allure-pytest(用于生成美观的测试报告)
pytest-rerunfailures(用例失败后重跑)
二、pytest默认规则
- 模块名必须以test_开头或者_test结尾
- 测试类必须以Test开头,并且不能有__init__方法
- 测试方法必须以test开头
三、Pytest测试用例执行方式
- 主函数模式
- 运行所有:pytest.main()
- 指定模块:pytest.main([‘-vs’,‘test_login.py’])
- 指定目录:pytest.main([“-vs”,“testcase”])
- 通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
有多条用例可以用逗号隔开
pytest.main([“-vs”,“./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao”])
- 命令行模式
- 运行所有:pytest 指定模块:pytest -vs
- test_login.py 指定目录:pytest -vs ./interface_testcase/test_login.py
- 指定nodeid:pytest -vs ./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao
四、参数详解
-s:表示输出调试信息,包括print打印的信息
-v:显示详细信息
-vs:一般这两个参数一起使用
-n:支持多线程或分布式运行测试用例例如:pytest -vs ./testcase/test_login.py -n 2
例如:pytest.main([“-vs”, “./test_login.py”, “-n=2”])–return:失败用例重跑
-x:表示只要一个用例报错,就停止测试
–maxfail=2:出现两个用例失败就停止
-k:根据测试用例的部分字符串指定测试用例例如:pytest -vs -k “te”
pytest+allure测试报告生成
一、安装allure并配置环境变量
Allure 是一款轻量级、支持多语言的开源自动化测试报告生成框架
- allure包下载:https://github.com/allure-framework/allure2/releases
- 解压 -> 进入bin目录 -> 运行allure.bat
- 把bin目录加入PATH环境变量
二、安装 allure-pytest插件
在pycharm的控制台执行命令
pip install allure-pytest
安装成功后需要重启一下pycharm
三、生成测试报告
- 在控制台用命令执行
- 先执行测试用例并指定测试结果存放地址
Pytest -vs [测试用例的路径] --alluredir=[指定存储测试结果的路径]
pytest -vs ./test_case/test_case_anli/test_anli_vip_right.py --alluredir=./test_report/3
- 打开报告
方式一:直接打开默认浏览器展示报告
allure serve ./test_report/3
点击生成的报告地址,可以直接打开报告
方式二:从结果生成报告
allure generate [测试结果地址] -o [指定测试报告地址] --clean
allure generate ./test_report/3 -o ./report/ --clean #覆盖路径加–clean
执行完成后,可以在指定的测试报告路径下点击index.html 打开测试报告
- 在代码中执行
import os
import pytest
import allure
if __name__ == '__main__':
path = os.path.dirname(os.path.dirname(__file__)) # 项目路径
alluredir = os.path.join(path, "test_report","allure_raw") #测试结果的路径,没有会自动创建一个
allure_report = os.path.join(path, "test_report","allure_report") #测试报告,没有会自动创建一个
#执行参数
param = ['-vs',
f'--alluredir={alluredir}',#生成allure报告
"./test_case_anli/test_anli_vip_right.py::TestCaseAnliRight::test_login", #测试用例路径
]
pytest.main(param)
os.system(f"allure generate {alluredir} -o {allure_report} --clean")
代码执行后,点击测试报告下的index.html可以查看测试报告