1、pytest测试用例规范&运行方式
1.1 pytes测试用例规范
使用pytest,测试用例输出有一些约定俗成的规范,详细如下:
(1)模块名必须以test_开头或者_test结尾;
(2)测试类必须以Test开头,并且不能有int方法;
(3)测试方法必须以test开头。
1.2 pytest测试用例运行方式
pytest中测试用例运行有主函数模式、命令行模式和读取全局配置文件3种方式:
一、主函数模式
主函数模式,需要建一个以.py结尾的文件(如:all.py),先用命令import pytest将pytest模块导入。主函数模式可以运行所有、按指定模块运行、按指定目录运行等,详细如下:
(1)运行所有:pytest.main()
示例1:
import pytest
if __name__ == '__main__':
pytest.main()
运行结果:
(2)指定模块:pytest.main(['-vs','testcase_web/test_login.py'])
示例2:
import pytest
if __name__ == '__main__':
pytest.main(['-vs','testcase_web/test_login.py'])
运行结果:
(3)指定目录:pytest.main(['-vs', './testcase_web'])
示例3:
import pytest
if __name__ == '__main__':
pytest.main(['-vs', './testcase_web'])
运行结果:
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成。如:
pytest.main(['-vs', './testcase_web/test_login.py::TestLogin::test_Login_01'])
示例4:
import pytest
if __name__ == '__main__':
pytest.main(['-vs', './testcase_web/test_login.py::TestLogin::test_Login_01'])
运行结果:
释义说明:
二、命令行模式
命令行模式,需要在Pycharm终端Terminal手动输入命令的方式来运行。命令行模式也可以运行所有、按指定模块运行、按指定目录运行等,详细如下:
(1)运行所有:pytest
示例1:
运行结果:
(2)运行指定模块:pytest -vs ./testcase_web/test_login.py
示例2:
运行结果:
(3)指定目录:pytest -vs ./testcase_web/
示例3:
运行结果:
(4)指定目录:
pytest -vs ./testcase_web/test_login.py::TestLogin::test_Login_01
示例4:
运行结果:
各参数释义说明:
(1)-s:表示输出调试信息,包括print打印的信息
(2) -v: 显示更详细的信息
(3)-vs:这两个参数一起用
(4) -n:支持多线程或者分布式运行测试用例
如:pytest -vs ./testcase_web/test_login.py -n 2
(5) --reruns NUM:失败用例重跑
-x:表示只要有一个用例报错,那么测试停止
--maxfail=2 出现两个用例失败就停止。
-k:根据测试用例的部分字符串指定测试用例
如:pytest -vs ./testcase_web -k "demo"
(6) --html ./report/report.html 生成html的测试报告
三、通过读取pytest.ini全局配置文件运行(实际项目)
pytest.ini 文件是pytest单元测试框架的核心配置文件,在实际项目中一般通过读取pytest.ini全局配置文件的方式来运行。这样可以通过改变pytest默认的执行规则来定制个性化的执行策略。
(1)位置:一般放在项目的根目录
(2)编码:必须是ANSI,可以使用notepad++修改编码格式
(3)作用:改变pytest默认的行为和规则
(4)运行的规则:不管是主函数的模式运行,还是命令行的模式运行,都会去读取这个配置文件
pytest.ini 示例:
# pytest.ini全局配置文件
[pytest]
#命令行参数,用空格分隔
addopts = -vs
#测试用例的路径
testpaths = ./testcase_web
#模块名的规则
python_files = test_*.py
#类名的规则
python_classes = Test*
#方法名的规则
python_functions = test
#测试用例分组执行
markers=
smoke:冒烟用例
userquery:用户查询
order:订单查询
本章总结:
pytest中测试用例运行,在实际项目中一般通过读取pytest.ini全局配置文件的方式来运行。这样可以通过改变pytest默认的执行规则来定制个性化的执行策略,方便、灵活。
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。