首页 > Python资料 博客日记

python篇-pytest+allure测试报告(图文详解)

2024-06-02 04:00:04Python资料围观240

Python资料网推荐python篇-pytest+allure测试报告(图文详解)这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

1、安装allure

下载地址:Releases · allure-framework/allure2 · GitHub

 解压后,运行 allure.bat,会弹出一个黑框一闪而过(闪的太快,没有截到图~~)

2、配置环境变量

allure安装路径: C:\D\soft\allure-2.26.0\bin path中

cmd中输入allure,allure --version,查看环境变量是否配置成功

3、下载allure-pytest插件

下载 pip install allure-pytest
查看 pip show allure-pytest

4、执行自动化用例,生成allure报告所需文件

执行用例,并指定生成allure报告路径,命令如下:

pytest Test_demo02.py -s -q --alluredir=./result

  • alluredir 指定存放allure报告的路径

如图,生成两个文件夹:pytest_cache/result

result文件夹中三个json文件,对应用例中的三条case。

5、查看报告方式两种

方式一:可以通过allure解析json文件,使用命令查看报告
allure serve ./result (指定result文件夹路径)
会自动打开浏览器,展示allure报告

方式二:通过结果生成报告

d ./result/ -o ./report/ --clean (覆盖路径加–clean)

打开报告

allure open -h 127.0.0.1 -p 8883 ./report/

6、QA-allure serve ./result/报错的解决思路

pycharm的终端输入:allure serve ./result/

allure报错:‘allure‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

解决思路:

  1. 没有下载allure,只是安装了allure-pytest插件
  2. 安装allure后,检查是否配置allure的环境变量到path
  3. 配置环境变量后,需要重启pycharm,可能是环境变量没有同步过来导致。
  4. 关闭防火墙开关。

7、allure常用注解

实例如下

import allure
import pytest
from allure_commons.types import LinkType, Severity


@allure.parent_suite('我是parent_suite')
@allure.suite('我是suite')
@allure.sub_suite('我是sub_suite')
@allure.epic('我是epic')
@allure.feature('我是feature')
@allure.story('我是story')
class TestAllureDemo:

    @allure.step('我是断言')
    def assert_one(self, a, b):
        assert a == b

    @allure.id('我是id')
    @allure.title('我是title')
    @allure.link('https://www.baidu.com/', LinkType.ISSUE, '我是link_ISSUE')
    @allure.label('我是label')
    @allure.issue('https://www.baidu.com/', '我是issue')
    @allure.description('我是description')
    @allure.severity(Severity.BLOCKER)
    @allure.tag('我是tag')
    @allure.testcase('https://www.baidu.com/', 'testcase')
    def test_01(self):
        self.assert_one(1, 1)


    @allure.id('我是id')
    @allure.title('我是title')
    @allure.link('https://www.baidu.com/', LinkType.LINK, '我是link')
    @allure.label('我是label')
    @allure.issue('https://www.baidu.com/', '我是issue')
    @allure.description('我是description')
    @allure.severity('我是severity')
    @allure.tag('我是tag')
    @allure.testcase('https://www.baidu.com/', '我是testcase')
    def test_02(self):
        allure.dynamic.mro()
        allure.dynamic.title('我是修改后的title')
        allure.dynamic.link('https://www.baidu.com/', LinkType.LINK, '我是修改后的link')
        allure.dynamic.label('我是修改后的label')
        allure.dynamic.issue('https://www.baidu.com/', '我是修改后的issue')
        allure.dynamic.description('我是修改后的description')
        allure.dynamic.severity('我是修改后的severity')
        allure.dynamic.tag('我是修改后的tag')
        allure.dynamic.testcase('https://www.baidu.com/', '我是修改后的testcase')
        assert 1 > 1

生成的报告如下

case1: test_01

 case2: test_02


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐