zoukankan      html  css  js  c++  java
  • Pytest之重运行及生成测试报告

    在上一篇Pytest系列文章:Pytest之参数化,主要介绍pytest参数化讲解及实战。

    以下主要介绍Pytest的重运行及生成测试报告。

     

     

    一 重运行

     

    在做UI自动化,如Selenuim或者Appium时,遇到某些元素未能及时显示,导致点击失败,如果加上重跑,那么将有效提高报告的准确性。

     

    在Pytest中,可以使用pytest-rerunfailures用来失败用例重跑。

     

     

    1 安装pytest-rerunfailures

    安装命令:

    pip install pytest-rerunfailures

     

     

    2 使用说明

    @pytest.mark.flaky(reruns=重试次数, reruns_delay=次数之间的延时设置(单位:秒))

     

     

    3 举个栗子

    重试次数test_demo.py

    import pytest
    @pytest.mark.flaky(reruns=2)
    def test_demo():
        assert 3 == 4

     

    运行结果为:

    image

    指定重运行等待时间:

    import pytest
    @pytest.mark.flaky(reruns=2,reruns_delay=2)
    def test_demo():
        assert 3 == 4

     

    运行结果为:image

     

     

    二 生成测试报告

     

     

    1 pytest-html生成报告

     

    pytest使用pytest-html插件生成测试报告。

     

    ① 安装pytest-html

    安装命令:

    pip install pytest-html

     

    ② 举个栗子

     

    现有用例如下:

    test_demo.py

    import pytest
    @pytest.mark.flaky(reruns=2,reruns_delay=2)
    def test_demo():
        assert 3 == 4

    test_demo1.py

    class TestDemo:
        def test_demo01(self):
            print("这是test_demo01")
        def test_demo02(self):
            print("这是test_demo02")

     

    命令行输入:pytest --html=report.html

    运行之后,会生成report.html,用浏览器打开report.html,如下:

    image

     

     

    2 allure生成报告

    用pytest-html生成的报告稍微简单和丑了一点,我们可以使用更强大的工具allure,allure测试报告框架帮助你轻松实现"高大上"报告展示。

     

    01 安装allure

     

    ①从github上下载allure,下载传送门为:

    https://github.com/allure-framework/allure2/releases

     

    如下所示,选择”Download“下载即可:

    image

     

    ② 下载完后,解压到项目根目录下。

    image.png

     

    ③ 安装allure插件

    image.png

    pip install allure-pytest

    image.png

    ④ 添加环境变量:将allure-2.13.5in的目录路径添加到环境变量。

     

     

    02 举个栗子

     

    ① 现有用例如下:

    test_demo.py

    import pytest
    @pytest.mark.flaky(reruns=2,reruns_delay=2)
    def test_demo():
        assert 3 == 4

    test_demo1.py

    class TestDemo:
        def test_demo01(self):
            print("这是test_demo01")
        def test_demo02(self):
            print("这是test_demo02")

     

    ② 在项目根目录下新建目录report。

    image

     

    ③ 在命令行输入:pytest -s -q --alluredir ./report,在report目录下会生成一些json格式的。

    image

     

    ④ 在report目录下,新建目录html,用于存放html报告。

     

    ⑤ 命令行输入allure generate ./report -o ./report/html,生成了最终的html报告。

    image

     

    ⑥用浏览器打开index.html文件,效果如下:

    image

     

     

    更多系列文章,可以关注微信公众号:ITester软件测试小栈


  • 相关阅读:
    多个ROS工作空间常见的问题
    ROS tf(现在都使用tf2了)
    ERROR: cannot launch node of type [teleop/teleop_key]: can't locate node [teleop_key] in package [teleop]
    Linux上静态库和动态库的编译和使用
    【C++】类中this指针的理解
    fatal error: No such file or directory
    g2o使用教程
    如何理解二次型
    <ROS> message_filters 对齐多种传感器数据的时间戳
    linux与C内存管理机制
  • 原文地址:https://www.cnblogs.com/vivia/p/14470142.html
Copyright © 2011-2022 走看看