引言:通过读取pytest.ini全局配置文件执行程序
1)如pytest.ini有该参数值,在执行的时候,先读取配置文件中的参数;
2)如没有,则取其他地方的(主函数/命令行中)。

pytest.ini全局配置文件,是pytest单元测试框架的核心配置文件。

* 作用:pytest.ini 可以改变 pytest 的默认行为
* 位置:一般放在项目的根目录(即当前项目的顶级文件夹下)
* 命名:pytest.ini,不能使用任何中文符号,包括汉字、空格、引号、冒号等等
* 新建配置文件,点击鼠标右键(New->File->pytest.ini)
* 编码格式:GBK或者ANSI,可以使用notepad++修改编码格式
* 运行的规则:不管是主函数模式运行,命令行模式运行,都会去读取这个全局配置文件。
* 格式一般是固定的,建议将中文删掉: [pytest] ;addopts:配置命令行参数,用空格进行分隔 ;可执行标记为mark的对应用例,用or
表示标记为demo或者smoke的用例都会执行 addopts= -vs --alluredir=./results/json --clean-
alluredir-m "demo or smoke" ;注册 mark 标记 markers = demo : marks tests as demo
smoke: marks tests as smoke uat : marks tests as uat test : marks tests as test
minversion= 5.0 ;测试用例的路径,可自己配置, ;../pytestproject为上一层的pytestproject文件夹 ;./
testcase为pytest.ini当前目录下的同级文件夹 ;改变用例的查找路径规则,当前目录的testcase文件夹 testpaths =./
testcase;模块名的规则,配置测试搜索的模块文件名称 python_files = test*.py ;类名的规则,配置测试搜索的测试类名
python_classes= Test* ;方法名的规则,配置测试搜索的测试函数名 python_functions = test
<>一、addopts配置:参数详解

*
-s:表示输出调试信息,用于显示测试函数中print()打印的信息

*
-v:未加前只打印模块名,加v后打印类名、模块名、方法名,显示更详细的信息

*
-q:表示只显示整体测试结果

*
-vs:这两个参数可以一起使用

*
-n:支持多线程或者分布式运行测试用例(前提需安装:pytest-xdist插件)

*
–html:生成html的测试报告(前提需安装:pytest-html插件) 如:pytest -vs --html
./reports/result.html
pytest -vs test_login.py -n 2 # 多线程执行测试用例,第1,3用例给线程0,第2,4用例给线程1 #
----不管用例执行时间多长,比如设置1的等待时长为5秒,也是1,3分给线程0 pytest.main(['-vs', '-n=2']) #运行指定模块
pytest.main(['-vs','test_0617.py'])
6. --reruns num: 用例失败后重跑,跑几次(前提需安装:pytest-rerunfailures插件) 如:pytest -vs
--reruns=2
pytest -vs test_login.py reruns 2 pytest.main(['-vs', '--reruns=2'])
* -x:表示只要出现一个用例失败报错则停止执行,如:pytest -vs -x
* –maxfail:表示出现几个用例失败报错,则终止测试,如:pytest -vs --maxfail=2
* -k:模糊匹配,运行测试用例名称中包含某个字符串的测试用例: 如: pytest -vs -k “ao or userPage” pytest -vs
test_login.py -k “ao” pytest.main(['-vs', '-k=ao'])
<>二、注册 mark 标记

我们可以在测试用例上输入@pytest.mark.login来对用例进行标记,但有时手误可能输入成@pytest.mark.loggin;这不会引起程序错误,它会以为你新加了一个标记:loggin。
为了避免这种拼写错误,避免遗漏执行测试用例。可以在ini文件中,对所有用到的标记做注册,这样程序中添加未注册的标记时就会报错。
:后面的文字,是对该标记做的说明。
markers = demo : marks tests as demo smoke: marks tests as smoke uat : marks
testsas uat test : marks tests as test login:marks login cases as test
<>三、指定 pytest 最低版本号
minversion = 5.0
<>四、testpaths配置

1)pytest默认是搜索执行当前目录下的所有以test_开头的测试用例;我们可以在pytest.ini配置testpaths =
test_case/test_001.py,则只执行当前配置的文件夹下或文件里的指定用例
2)可配置多个,空格隔开:python_files = test_.py haha_.py
[pytest] ;命令行参数,用空格进行分隔 addopts = -vs --alluredir ./temp markers = demo :
marks testsas demo smoke: marks tests as smoke uat : marks tests as uat test :
marks testsas test minversion = 5.0 ;测试用例文件夹,可自己配置, ;../
pytestproject为上一层的pytestproject文件夹;./testcase为pytest.ini当前目录下的同级文件夹 testpaths =.
/testcase ;配置测试搜索的模块文件名称 python_files = test*.py ;配置测试搜索的测试类名 python_classes =
Test* ;配置测试搜索的测试函数名 python_functions = test

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信