老宋的地盘

 找回密码
 我要加入
搜索
老宋 首页 文章 技术 查看内容

Pytest三种运行方式

2023-6-30 12:26| 发布者: herosrx| 查看: 143| 评论: 0

摘要: Pytest 运行方式共有三种:1、主函数模式运行所有 pytest.main()指定模块 pytest.main(',','./testcase/test_day1.py') 只运行testcase 下的test_day1.py 文件指定目录 pytest.main(''),'./testcase') 只运行testca ...

Pytest 运行方式共有三种:

1、主函数模式

  • 运行所有 pytest.main()

  • 指定模块 pytest.main('[-vs],','./testcase/test_day1.py')  只运行testcase 下的test_day1.py 文件

  • 指定目录 pytest.main('[-vs]'),'./testcase')    只运行testcase 目录下的文件

  • 通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成

  1. 执行某个类:pytest 文件名.py::类名  例如: #pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin')

  2. 执行某个方法:pytest 文件名.py::类名::方法名  例如:#pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1')

  3. 执行模块中某个方法:pytest 文件名.py::方法名  例如:#pytest.main(["-vs"],'./interface_testcase/test_day3.py::test_demo11')


2、命令行模式

(1)运行所有:pytest

(2)指定模块 pytest -vs ./testcase/test_day1.py

(3)指定目录 pytest -vs ./testcase

(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成

pytest -vs ./interface_testcase/test_day3.py::test_demo11

pytest -vs ./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1

参数详解:

-s:表示输出调试信息,包括print打印的信息

-v显示更详细的信息

-vs一起使用

-n支持多线程或者分布式运行测试用例

#如 #pytest.main(['-vs','./testcase/test_day1.py','-n=2'])

# pytest -vs ./testcase/test_day1.py -n 2

#reruns==number 表示失败用例重跑

#pytest -vs ./testcase/test_day2.py --reruns 2

#pytest.main(['–vs','./testcase/test_day2.py',‘reruns=2']) #失败得的用例重跑两次

#-x表示只要一个用例报错,那么测试停止运行

#–maxfail=2 出现两个失败用例停止

#-k 根据测试用例的部分字符串指定测试用例

pytest -vs test_day2 -k “yang”

3、通过读取pytest ini配置文件运行 (最主要运用的方式)

#pytest.ini是pytest单元测试框架中的核心配置文件

(1)位置:一般是放在项目的根目录

(2)编码:必须是ANSI,可以使用notepad++来修改编码格式

(3)作用:改变pytest的默认行为

(4)运行的规则:不管是主函数的模式运行该,命令行模式,都会区读取这个配置文件

常用参数

addopts 命令行的参数,用空格分隔

testpaths 测试用例的路径

markers 标记参数,赋值方式为 key:value

python_files 模块的命名规则 xx.py

python_classes 类名的命名规则 Xxx

 python_functions 方法的命名规则 **

required_plugins 插件的使用

xfail_strict = true 禁用xpass

addopts: OPTS 命令行参数集

-s:表示输出调试信息,包括 print打印的信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n :支持多线程或者分布式运行测试用例
     如:pytest -vs ./testcase/test_login.py -2
--html : 测试报告位置
--reruns : 失败重跑
-p no:warnings  : 取消警告
--ff : 先执行上次失败的用例
--lf : 只执行上次失败的用例
-x : 遇到测试用例fail,就结束测试
--maxfail=num:遇到num条测试用例fail, 就结束测试
-k :根据测试用例的部分字符串指定测试用例,如:pytest -vs ./testcase -k “ao”
 -q:pytest -q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个…点代替了pass结果
 –tb=style:屏蔽测试用例执行输出的回溯信息,可以简化用例失败时的输出信息。style可以是 on,line,short,具体区别请自行体验。如使用pytest --tb=no
-m:pytest -m ”标记“ 说明:执行特定的测试用例。修改下上面的用例代码


路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

QQ|手机版|小黑屋|老宋 ( 备案中... )

GMT+8, 2024-6-17 05:38 , Processed in 0.031095 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部