zoukankan      html  css  js  c++  java
  • pytest插件(多重校验、用例依赖、执行顺序、失败重跑、重复执行、标记)

    1、多重校验:pytest-assume(可用for循环)

     def test_Frank(self):
         pytest.assume(1 == 1)
         pytest.assume(5 == 2)
         pytest.assume(3 == 3)
    pytest.assume(3 == 3)

    即使第二个断言失败了,第三个断言还是会继续执行(相比unittest框架,unittest在第一个断言失败后就停止执行)

    2、用例依赖:pytest-dependency

     
     

    第一种方式:不指定name
    import pytest
    class TestFrank(object):
    @pytest.mark.dependency() #必须存在,否则无法关联
    def test_001(self):
       assert False
     
    @pytest.mark.dependency(depends=["TestFrank::test_001"])
    def test_002(self):
       assert True

    第二种方式:给函数名重新赋值
    class TestFrank(object):
    @pytest.mark.dependency(name="a")
    def test_001(self):
    assert False
      @pytest.mark.dependency(depends=["a"])
    def test_002(self):
       assert True

    3、执行顺序:pytest-ordering(还可以对类进行标记,尽量但不要混着用)

     
    #先执行test_b再执行test_a
    @pytest.mark.run(order=2)
    def test_a(self):
        pass
        
    @pytest.mark.run(order=1)
    def test_b(self):
        pass
     

    4、失败重跑:pytest-rerunfailures(还可以对类进行标记)

      #reruns是重跑次数,reruns_delay是间隔时间
      @pytest.mark.flaky(reruns=3, reruns_delay=5)
      def test_Frank(self):
          pass

    5、重复执行:pytest-repeat

    1、对整个文件的测试用例重复执行:pytest -v  test_Frank.py  --count=5

    2、直接标记某个用例执行多少次(还可以对类进行标记,尽量不要混着用):@pytest.mark.repeat(2)

    实际发现重复执行的用例(断言是True),作为其他用例的依赖时,会导致其他用例跳过,用例在统计的时候会把重复执行的次数计算进去

    6、标记

    参考来源有更多详细的用法:https://www.cnblogs.com/lixy-88428977/p/9697881.html

    示例是对单个用例的标记,还可以对类进行标记

     
    '''
    命令行执行:pytest -v -m "dev" ,则只会运行标记为dev的用例
    命令行执行:pytest -v -m "not dev" ,则会运行没有标记dev的用例
    '''
        @pytest.mark.dev
        def test_a(self):
            assert True
    
        @pytest.mark.uat
        def test_b(self):
    assert True
     
     
    TestFrank
  • 相关阅读:
    LINUX 新手 入门 教程
    mysql 新手入门 官方文档+官方中文文档附地址
    Git常用命令
    修改dotnet运行.netcore web程序默认端口
    centos7.6下部署.netcore3.1web程序
    supervisor安装及使用(转载)
    linux(CentOS7.6)下安装mysql8.0并使用navicat远程访问
    uni-app为组件uni-icons增加自定义图标(超简单)
    常用正则表达式收录(持续更新)
    CentOS7.6安装SQL SERVER 2017
  • 原文地址:https://www.cnblogs.com/Frank-guo/p/14731228.html
Copyright © 2011-2022 走看看