Pytest常用插件

Pytest常用插件 

 插件列表网址:https://plugincompat.herokuapp.com
    包含很多插件包,大家可依据工作的需求选择使用。
    前置条件:
        1.文件路径:
            - Test_App
            - - test_abc.py
            - - pytest.ini
        2.pyetst.ini配置文件内容:
            [pytest]
            # 命令行参数
            addopts = -s
            # 搜索文件名
            python_files = test_*.py
            # 搜索的类名
            python_classes = Test_*
            # 搜索的函数名
            python_functions = test_*
  • 1.Pytest测试报告
      通过命令行方式,生成xml/html格式的测试报告,存储于用户指定路径。
    
    插件名称:pytest-html
    安装方式:
        1.安装包方式 python setup.py install 
        2.命令行 pip3 install pytest-html
    使用方法:
        命令行格式:pytest --html=用户路径/report.html
    示例:
        import pytest
        class Test_ABC:
            def setup_class(self):
                print("------->setup_class")
            def teardown_class(self):
                print("------->teardown_class")
            def test_a(self):
                print("------->test_a")
                assert 1
            def test_b(self):
                print("------->test_b")
                assert 0 # 断言失败
    运行方式:
        1.修改Test_App/pytest.ini文件,添加报告参数,即:addopts = -s --html=./report.html 
            # -s:输出程序运行信息
            # --html=./report.html 在当前目录下生成report.html文件
            ⚠️ 若要生成xml文件,可将--html=./report.html 改成 --html=./report.xml
        2.命令行进入Test_App目录
        3.执行命令: pytest
    执行结果:
        1.在当前目录会生成assets文件夹和report.html文件

  • 2.Pytest控制函数执行顺序
    函数修饰符的方式标记被测试函数执行的顺序.
    插件名称:pytest-ordering
    安装方式:
        1.安装包方式 python setup.py install 
        2.命令行 pip3 install pytest-ordering
    使用方法:
        1.标记于被测试函数,@pytest.mark.run(order=x)
        2.根据order传入的参数来解决运行顺序
        3.order值全为正数或全为负数时,运行顺序:值越小,优先级越高
        4.正数和负数同时存在:正数优先级高
    默认情况下,pytest是根据测试方法名由小到大执行的,可以通过第三方插件包改变其运行顺序。
    默认执行方式
    示例:
        import pytest
        class Test_ABC:
            def setup_class(self):
                print("------->setup_class")
            def teardown_class(self):
                print("------->teardown_class")
            def test_a(self):
                print("------->test_a")
                assert 1
            def test_b(self):
                print("------->test_b")
                assert 0
        if __name__ == '__main__':
            pytest.main(["-s","test_abc.py"])
    执行结果:
        test_abc.py 
        ------->setup_class
        ------->test_a # 默认第一个运行
        .
        ------->test_b # 默认第二个运行
        F
        ------->teardown_class
    示例:
        import pytest
        class Test_ABC:
            def setup_class(self):
                print("------->setup_class")

            def teardown_class(self):
                print("------->teardown_class")
            @pytest.mark.run(order=2)
            def test_a(self):
                print("------->test_a")
                assert 1

            @pytest.mark.run(order=1)
            def test_b(self):
                print("------->test_b")
                assert 0
        if __name__ == '__main__':
                 pytest.main(["-s","test_abc.py"])
    执行结果:
        test_abc.py
        ------->setup_class
        ------->test_b # order=1 优先运行
        F
        ------->test_a # order=2 晚于 order=1 运行
        .
        ------->teardown_class
  • 4.4.3.Pytest失败重试
    通过命令行方式,控制失败函数的重试次数。
    插件名称:pytest-rerunfailures
    安装方式:
        1.安装包方式 python setup.py install 
        2.命令行 pip3 install pytest-rerunfailures
    使用方法:
        命令行格式:pytest --reruns n # n:为重试的次数
    示例:
    import pytest
    class Test_ABC:
        def setup_class(self):
            print("------->setup_class")
        def teardown_class(self):
            print("------->teardown_class")
        def test_a(self):
            print("------->test_a")
            assert 1
        def test_b(self):
            print("------->test_b")
            assert 0 # 断言失败
    运行方式:
        1.修改Test_App/pytest.ini文件,添加失败重试参数,即:addopts = -s  --reruns 2 --html=./report.html 
            # -s:输出程序运行信息
            # --reruns 2 :失败测试函数重试两次
            # --html=./report.html 在当前目录下生成report.html文件
        2.命令行进入Test_App目录
        3.执行命令: pytest
    执行结果:
        1.在测试报告中可以看到两次重试记录

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值