pytest执行方式
pytest执行
1、主函数main模式执行
main函数可以用在单个模块(某个.py文件)里面,也可以单独创建一个文件如all.py去执行,但是有路径限制,根目录执行所有测试用例,但文件夹内的文件只会执行当前文件夹下的所有用例
(1)单个模块执行,方法下方添加如图代码,快捷方式是输入main可自动带出,需要提前导入pytest,所以需要提前安装好pytest ---pip install -U pytest

如果此时你有多个模块都有测试用例,只执行其中一个文件的主函数,会执行当前文件夹下的所有测试用例,也就是其他文件的测试用例也会执行,不只是执行当前的这个文件的测试用例
(2)在某文件夹下单独创建文件执行,默认是执行所有

pytest.main()默认运行所有,其实也有很多参数可以设置,pytest的参数是一个列表,所有需要使用方括号 pytest,main(['-s']),参数如下:
-s:表示输出调试信息,包括print打印的信息
-v:显示更详细的信息,不会展示print打印的信息
-vs:通常两个参数一起用
-n:支持多线程或者分布式运行测试用例
如:pytest -vs ./testcase/test_login.py -n 2 命令行
pytest.main(['-vs','./testcase', '-n=2']) 主函数
--reruns NUM: 失败用例重跑 NUM设置重跑的次数
pytest.main(['-vs','./testcase', '--reruns=2']) 主函数
pytest -vs ./testcase --reruns 2 命令行
-x:表示只要一个用例报错,测试停止
--maxfail=2 如果两个用例失败就停止
-k:根据测试用例的部分字符串指定测试用例
如:pytest -vs ./tesecase -k "yi" 只会执行方法命中有yi两个字符串的测试用例
(3)在根目录下单独创建文件执行
---运行所有:pytest.main(['-vs']) 加参数可以展示更加详细的执行内容
---指定模块运行:pytest.main(['-vs'], 'test_login.py')
---指定目录运行:pytest.main(['-vs'], './testcase')
---通过nodeid指定用例执行:nodeid由模块名,分隔符,类名,方法名,函数名组成。
例如:pytest.main(['-vs','./interface_testcase/test_yx.py::test_04_shiying'])
pytest.main(['-vs','./interface_testcase/test_yx.py::TestYx::test_03_guyiye'])
2、命令行执行(在Terminal中执行如下命令)
---运行所有:pytest
---指定模块:pytest -vs test_login.py
---指定目录:pytest -vs ./interface_testcase
---指定目录:pytest -vs ./interface_testcase/test_yx.py:test_04_weiwuxian
pytest -vs ./interface_testcase/test_yx.py::TestYx::test_03_guyiye
3、pytest配置文件运行(中文是注释,配置文件里面去掉)
pytest.ini这个文件是pytest单元测试框架的核心配置文件
---位置:一般在项目的根目录
---编码:必须是ANSI,可以使用notepad++修改编码格式。
---作用:改变pytest默认的行为
---运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件
当其他模式不添加参数时,就是自动读取配置文件里面的参数然后执行
[pytest]
# 命令行参数,用空格分割
addopts = -vs
#测试用例文件夹,可自己配置 ./testcase
testpaths = ./testcase
# 配置测试搜索的模块文件名称
python_files = test_*.py
#配置测试搜索的测试类名
python_classes = Test*
# 配置测试搜索的测试函数名
python_functions = test
4、直接执行(点击方法左边的执行按钮)
pytest模式下,以Test开头的类,以test开头的方法都会在左边有一个执行按钮,如果没有可能是脚本执行模式不对,可根据这里跳转切换
本文来自博客园,作者:临夏1005,转载请注明原文链接:https://www.cnblogs.com/xiaozhan1/articles/16769042.html
浙公网安备 33010602011771号