pytest实例,pytest运行规则

  pytest实例,pytest运行规则

  一、pytest的优点非常好用,入门简单,文档丰富。文档中有很多例子可以借鉴,可以自动识别测试模块和测试功能。它支持使用简单的assert语句实现丰富的断言,不需要复杂的self.assert*函数来支持参数化执行。有些测试可以在测试过程中跳过。或者xfail处理将一些预计会失败的情况标记为失败,并支持重新运行。失败案例支持运行nose编写的测试案例,unittest,可以生成html报告。便捷的持续集成工具jenkins integration可以支持执行。有些用例有很多第三方插件,比如报表插件pytest-html,allure-pytest,失败重试插件pytest-rerunfailures,可以自定义扩展2。安装和测试用例编写规则1。安装#安装

  pip安装-U pytest

  #更改源安装

  pip3安装pytest-I http://pypi.douban.com/simple/可信主机pypi.douban.com

  #查看版本

  pytest-版本2。测试用例编写规则。PY test的测试用例不需要像unittest一样先被测试类继承。只需要满足测试用例条件,函数和类方法都可以作为测试用例。

  1.测试模块(py文件)的名称必须是test_*。py或* _ test.py

  2.目录中的所有包都必须有__init__。py文件,以便包中的模块(py文件)可以被识别为测试模块。

  3.测试类的类名必须以Test开头,并且不能包含__init__方法。否则,即使类中有以test开头的方法,也不会被执行。

  4.测试用例名称必须以test_开头,无论是测试类下的单个函数还是方法,否则不会被识别为测试用例。3.命令行执行测试用例应用场景:自动化测试需要自动执行命令来运行脚本。

  1.基本命令操作方式:cd将目录切换到目标目录,通过执行以下命令可以执行不同的测试用例:

  Py # [All] cd到一个目录下,执行目录下所有的合规模块和测试用例。

  Pytest test_01.py # [module]执行test_01.py模块下的所有测试用例。

  test-vt est _ 01 . py:test_3 #[函数]运行test_01.py模块中的test _ 3用例。

  py test_01.py:TestClass #[class]运行test _ 01 . py模块中test class类下的所有用例。

  py test_01.py:test class:test _ 4 #[Method]运行test _ 01 . py模块中的一个类和一个类中的方法。

  2.命令的可用参数除了基本命令,我们还可以添加各种参数来实现不同的执行和打印效果。请参见以下常见参数:

  -x #遇到错误时停止测试===============================================================

  pytest start.py -x

  - maxfail=num,当用例错误数量达到指定数量时,停止测试============================================================

  pytest start.py - maxfail=1

  -k #根据用例名称筛选一些要执行或不要执行的用例==============================================================

  py-py test-v-k test_4 test _ 01 . py #-k k匹配用例名称,执行测试用例名称包含test _ 4的所有用例。

  Py-v-k test _ 4或test _ 5 test _ 01.py #多个条件用于匹配用例名称,可以执行一个。

  Test-v-k nottest_4 test _ 01.py #根据用例名称排除一些名称包含test_4的用例。

  -m[标记表达式] #只运行用给定标记表达式标记的用例(用例需要提前用自定义标记进行标记)。更多详情,点击这里=============================

  例如:

  @pytest.mark.mark1

  定义测试_01():

  及格

  test-m mark 1 01 _ test . py # 01 _ test . py中的其他用例被取消,相当于对用例进行标记,对用例进行分类,执行一类用例。

  pytest -m 标记1而非标记2 01_test.py

  #打印相关报告

  -v,-verbose #详细打印,比默认报告更多会话部分的执行结果和进度信息==================================

  pytest -v start.py

  -q,-quiet #简单打印,没有整个会话块(平台版本,python和pytest等版本信息,执行结果)=====

  -r [chars] #显示由字符指定的附加测试摘要信息,该信息可以是多个(默认 fE 仅显示错误和失败情况)=================================

  # chars可选:(f)失败,(e)错误,(s)跳过,(x)失败,(x)通过,(p)通过输出断言,(a) ll除了通过(p/p)或(a) ll

  Pytest -rfEp -v 01_test.py #详细打印,结果显示有三种故障错误,运行效果如下图所示。

  -s #用例与打印信息相关,默认情况下用例失败时输出,通过时不输出。如果加上这个,Captured staout调用输出信息功能会关闭(用例成功或失败都不会输出),但会显示在测试会话开始部分,看起来更好,相当于-capture=no。

  #其他

  - markers #显示标记(每个项目的内置、插件和标记)

  -x,-exitfirst #当第一个错误或测试失败时立即退出。

  - runxfail #报告xfail测试的结果,就像它们没有被标记一样。

  -lf - lf,- last-failed #只重新运行上次失败的测试(如果没有失败,全部重新运行)。图1: -rfEp执行效果

  图2:默认,-v和-q报告的比较

  图3: -s效应

  四。pytest案例的执行顺序。unittest中的测试用例是按照ASCII码的顺序加载的,数字和字母的顺序是:0-9,A-Z,A-Z,所以会先执行以A开头的测试用例方法,会后执行以A开头的方法。

  默认情况下,pytest中同一个py文件中的用例是按照文件从上到下的顺序执行的,但是有一个插件可以让我们自定义执行顺序,让执行顺序更加随意。详见:宁静博客。

  5.pycharm执行测试用例。第一步:使用所有的编辑器来编写测试用例。用cmd来执行它们很麻烦。可以直接按照下图在pycharm中设置它们,然后用pytest运行代码。

  第2步:右键单击以执行测试用例:

  1)执行整个目录:先点击鼠标最左边的目录,右键执行,该目录下的所有用例都会被执行。

  2)执行某个模块:鼠标点击最左边的模块,或者点击py文件中的空白处,右键执行。

  3)执行整个测试类:鼠标点击类名,右键执行。

  4)执行函数或类的方法:鼠标点击函数,右键执行。

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: