zoukankan      html  css  js  c++  java
  • pytest---用例的执行顺序

    前言

      安静以前出去面试的时候遇到过这样一个问题:你怎么保证你的自动化用例的执行顺序。当时安静的回答是用例通过数字的形式进行标记,因为unittest执行是按照ascII码的顺序执行的。当时回答比较low。那我们看看如果用pytest怎么控制用例的执行顺序。

    pytest-ordering

    pytest-ordering属于pytest的一个插件,它可以控制pytest的执行顺序。

    安装:  pip install pytest-ordering 

    源码:https://github.com/ftobia/pytest-ordering

    pytest执行顺序

    pytest的执行顺序是根据代码编写的顺序进行执行的。

    import pytest
    
    class Test01():
        
        def test_02(self):
            print('
    ---用例02---')
    
        def test_01(self):
            print('
    ---用例01---')
        
        def test_03(self):
            print('
    ---用例03---')
    
    if __name__ == '__main__':
        pytest.main(['-vs'])

    通过下图可以看出来,我们执行的顺序是先执行了用例2,然后用例1,最后用例3,所以说pytest的执行顺序是默认编写的顺序来执行的。

    定制用例执行顺序

    如果在特定一些自动化中,想要定制用例的操作步骤来执行,这个时候就用到了上面介绍的插件pytest-ordering来执行,具体插件怎么用呢?

    这里还是需要前面介绍的mark的方法来执行。 @pytest.mark.run(order=X) x:表示执行顺序 

    import pytest
    
    class Test01():
    
        @pytest.mark.run(order=3)
        def test_02(self):
            print('
    ---用例02---')
    
        @pytest.mark.run(order=2)
        def test_01(self):
            print('
    ---用例01---')
    
        @pytest.mark.run(order=1)
        def test_03(self):
            print('
    ---用例03---')
    
    if __name__ == '__main__':
        pytest.main(['-vs'])

    通过下图可以看出来,用例已经按照我们的要求,先执行用例3,在执行用例1,最后执行用例2的方法来的

    这里需要注意的是,如果你在那个用例上面没有添加执行顺序要求的话,他会先执行带有标记的用例,然后根据未标记的用例顺序进行执行

    import pytest
    
    class Test01():
    
        def test_02(self):
            print('
    ---用例02---')
    
        @pytest.mark.run(order=2)
        def test_01(self):
            print('
    ---用例01---')
    
        @pytest.mark.run(order=1)
        def test_03(self):
            print('
    ---用例03---')
    
        def test_04(self):
            print('
    ---用例04---')
    
    
    if __name__ == '__main__':
        pytest.main(['-vs'])

    这里执行顺序:先执行用例3然后在是用例1,最后按照顺利顺序执行用例2和用例4。

    好了,pytest的用例执行顺序,就是这么简单,只要通过mark的方法进行标记就行了,但是千万不要忘记了需要安装插件

  • 相关阅读:
    利用Python进行数据分析-Pandas(第六部分-数据聚合与分组运算)
    利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)
    利用Python进行数据分析-Pandas(第四部分-数据清洗和准备)
    使用VBA从工作表中读图片,以及给工作表中写文件
    利用Python进行数据分析-Pandas(第三部分)
    利用Python进行数据分析-Pandas(第二部分)
    Shape.Type属性名称及对应值列表
    利用Python进行数据分析-Pandas(第一部分)
    下载文件
    github访问很慢的解决办法
  • 原文地址:https://www.cnblogs.com/qican/p/14187509.html
Copyright © 2011-2022 走看看