Pytest初识命令行参数

pytest学习的初衷就是目前大多数写自动化脚本都会用到这个。

其实在学习之前,想做平台的自动化测试,考虑是否还需要这个框架呢?

作为学习的目标,不管用不用,都要经历这么一个工具学习过程。才对得起测试这个行业,毕竟大家认识的才是王道。

百度了下有关pytest的相关资料:

  • 1、简单灵活,容易上手,文档丰富;
  • 2、支持参数化,可以细粒度地控制要测试的测试用例;
  • 3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
  • 4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
  • 5、测试用例的skip和xfail处理;
  • 6、可以很好的和CI工具结合,例如jenkins
具体想起资料请参考官方文档:https://docs.pytest.org/en/latest/contents.html

安装:pip install pytest 

如果想让pytest执行脚本生效,执行的文件和函数,必须以test开头或者结尾,才可被执行。

 

命令行参数

--collect-only
pytest --collect-only  #可以获取当前目录下及子目录下的符合要求的测试用例,只是展示,不执行,作为一种参照。

  -k

pytest -k "test01" #获取指定运行测试用例,名称是唯一的就会被执行。

 -m

pytest -m run_user #给函数加上装饰器用来做标记,给标记起名比如 run_user,所有被标记的用例会被执行

#在函数上加上装饰器被打上标签标记,格式必须是以@pytest.mark.标记名称
@pytest.mark.run_user
def test_01():
  pass

 -x

pytest -x #方便用于调试的参数,当使用此参数时,如果遇到失败的用例,运行就会停止。

 -maxfail

pytest -maxfail=3 #作用与-x相同,不同的是可以设置失败数量,当执行用例失败等于3个的时候,运行就会停止。

 -s

pytest -s #输出调度信息,比如logger,print 都会被打印出来

  --lf

pytest --lf  #只运行上次失败的用例,如果没有就全部执行

 --ff

pytest --ff  #运行全部用例,但会优先执行上次失败的用例

 -v

pytest -v #输出更详细的信息,比如函数名等

 -q

pytest -q  # 简化输出控制台信息,少了session starts部分内容

 -l

pytest -l  #当用例执行失败,会把对应的变量信息输出到控制台显示

 -tb

pytest --tb=参数(choose from 'auto', 'long', 'short', 'no', 'line', 'native') # 用于输出信息选择

 --durations=num

pytest --durations=0  #统计运行所用用例中执行最慢的,如果等于0时,会按照消耗时间由长到短显示,显示出消耗的时间,耗时非常少的就会被隐藏不显示

 --version

pytest --version    #输出pytest的版本

 -h

pytest -h #显示所有的参数命令
posted @ 2020-09-07 07:34  TestingShare  阅读(204)  评论(0编辑  收藏  举报