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开头的方法都会在左边有一个执行按钮,如果没有可能是脚本执行模式不对,可根据这里跳转切换

 

posted @ 2022-10-08 16:13  临夏1005  阅读(1788)  评论(0)    收藏  举报