pytest基础002-pytest 常用的运行参数

 

pytest --help  可以查看pytest提供的所有参数,下面主要介绍常用的几种:

 

1、 -v 参数

打印详细运行日志信息,一般在调试的时候加上这个参数,终端会打印出每条用例的详细日志信息,方便定位问题。 使用方法如下:

pytest -v

 

2、-s 参数

 控制台输出结果,当你的代码里面有print输出语句,如果想在运行结果中打印print输出的代码(默认控制台是不输出打印结果的),在运行的时候可以添加 -s 参数,一般在调试的时候使用。使用方法如下:

pytest -s

 

3、-k 参数

 只执行含有某个关键字的测试用例。

应用场景:在测试场景中,如果只想执行某些测试用例,或者测试用例中包含某个关键字的测试用例时,可以使用这个参数。

使用方法如下:

pytest -k "类名"

pytest -k "方法名"

pytest -k "类名 and not 方法名"

注意:如果是Windows系统,-k 后面的字符串参数必须用双引号。Mac上仅第三个需要加双引号。

 

4、-x 参数

 遇到用例失败立即停止运行。

应用场景:

在回归测试过程中,假如一共有10条基础用例,当开发人员打完包提交测试的时候,需要先运行这10条基础用例,全部通过才能提交给测试人员正式测试。如果有一条用例失败,就将这个版本打回给开发人员。这时就可以添加 -x 参数,一旦发现有失败的用例即终止运行。

使用方法如下:

pytest -x

 

5、--maxfail 参数

用例失败个数达到阈值停止运行。

应用场景:

在回归测试过程中,假如一共有10条基础用例,当开发人员打完包提交测试的时候,需要先运行这10条基础用例,全部通过才能提交给测试人员正式测试,如果运行过程中有 [num] 条用例失败,即中止运行,后面测试用例都放弃执行,直接退出。这时就可以使用 --maxfail 参数。

使用方法如下:

pytest --maxfail==[num]

 

6、 -m 参数

将运行有 @pytest.mark.[标记名] 这个标记的测试用例。

应用场景:

在自动化测试过程中可以将测试用例添加标签进行分类,比如登录功能、搜索功能、书城功能、个人主页功能等,在运行的时候可以只运行某个功能的所有的测试用例,比如这个版本只想运行登录功能,那就在所有登录功能的测试用例方法上面加上装饰符 @pytest.mark.login 命令就可以只执行登录功能这部分的测试用例。

使用方法如下:

pytest -m [标记名]

 

小彩蛋:遇到运行pytest标签警告,具体如下:

执行命令

 

执行结果(仅截取部分):

 

具体原因:

pytest.ini 配置文件中,未包含 login 标签

 

解决方案:

在项目下新建一个pytest.ini的配置文件,里面如下配置即可。markers=后面是标签名,如有多个,第二个开始要换行,且要缩进,不然会报错。


[pytest]
markers=welcome
    login
 
 
附代码(仅供参考):
 
 1 import pytest
 2 
 3 def login(username):
 4     return username
 5 
 6 
 7 @pytest.mark.login
 8 def test_A():
 9     assert login('murcy') == 'murcy'
10 
11 @pytest.mark.login
12 def test_B():
13     assert login('ymx') == 'ymx'
14 
15 
16 def test_C():
17     assert 1 == 1

 

补充:

pytest --collect-only       只收集测试用例
pytest --junitxml=./result.xml     生成执行结果文件
pytest --setup-show       回溯fixture 的执行过程
 

 

 写在最后的话:小白同学愿意和大家一起成长~

posted on 2021-06-25 08:12  yao_murcy  阅读(683)  评论(0编辑  收藏  举报