一、pytest插件
- pytest-html(生成html报告的插件)
- pytest-xdist(多线程运行的插件)
- pytest-ordering(改变用例的执行顺序的插件)
- pytest-rerunfailres(失败用例重跑的插件)
- allure-pytest(生成美观自定义的allure报告)
二、pytest默认测试用例的规则及基础应用
- 模块名必须以test_开头或者_test结尾
- 测试类必须以Test开头,且不能带有init方法
- 测试用例必须以test_开头
三、执行:
3.1、通过命令行方式执行
使用命令pytest
-vs -v:输出详细信息。 -s:输出调试信息
-n 多线程运行(前题是已安装插件pytest-xdist)eg:两个线程 pytest -n=2
--reruns 失败重试(前提是已安装插件pytest-rerunfailres)eg:失败后再重试两次 pytest --reruns=2
-x 出现一个失败用例则停止测试 eg:pytest -x
--maxfail 出现n个失败终止测试 eg:出现两个失败后终止测试 pytest --maxfail=2
--html 生成html的测试报告(前提是已安装插件pytest-html)eg:在reports目录下生成名为result。html的测试报告 pytest -vs --html ./reports/result.html
-k 运行测试用例名称中包含某个字符串的测试用例 eg:只运行包含“3”测测试用例 pytest -vs -k "3"
3.2、通过主函数main方式执行
main函数中使用pytest.main()
参数用字符串数组表示:eg:pytest.main([‘-vs’,‘-n=2’])
3.3、通过全局配置文件pytest.ini文件执行
注意:
1. 一般放在项目的根路径,名称必须为pytest.ini
2. 编码格式为ANSI(文件中不能一定不能带有中文格式的符号,否则会报编码格式错误;文件中带有中文,需改变文件的编码格式为gbk2312)
3. pytest.ini文件可以改变默认的测试用例规则
4. 不管是命令行还是主函数运行,都会加载这个配置文件
3.3.1、pytest.ini
[pytest]
# 第一行[pytest]为声明pytest配置文件
# 配置执行参数
addopts = -vs --maxfail=2 -m "smoke"
# 指定测试用例路径
testpaths = ./testcases
# 指定的测试文件
# python_files = test_*.py
# 指定的测试类
python_classes = Test*
# 指定测试方法
python_functions = test_*
# 标记可使测试用例分组执行
markers =
smoke:冒烟用例
regression:回归用例
user_manage:用户管理模块用例
product_manage:商品管理模块用例
注: -m "标记" :执行带有此标记的用例(-m "smoke" 执行标记为冒烟用例的用例)
给用例打标记@pytest.mark.标记
import pytest
class TestLearn:
@pytest.mark.smoke
@pytest.mark.regression
def test_01(self):
print('打印测试01,--->标记冒烟,标记回归')
def test_02(self):
print('打印测试02')
@pytest.mark.smoke
def test_03