Pytest+Allure 环境的搭建

1. pytest 的安装:

1.1. windows 下:

pip install pytest

1.2. Linux 下:

pip install pytest

2. 安装 pytest-allure-adaptor 插件

2.1. windows 下:

pip install pytest-allure-adaptor

3. allure 的安装:

3.1. windows 下:

前情提示: allure 是基于 Java 的一个程序,需要 Java1.8 的环境,没有安装需要去安装一下。

Windows 下不能直接安装,点击此链接下载压缩包

下载之后,将压缩包解压到一个磁盘中,我这里用的是 F

image

3.2. 配置 allure 的环境变量

image

image

点击确定,保存。这样就可以通过 CMD 使用 allure 命令

3.3. 编写测试文件

pycharm 新建一个 test_demo.py 文件,代码如下:

import allure


@allure.MASTER_HELPER.feature("测试Dome")
class TestDome(object):

    @allure.MASTER_HELPER.step("定义被测函数")
    def func(self, x):
        return x+1

    @allure.MASTER_HELPER.story("被测场景")
    @allure.MASTER_HELPER.severity("blocker")
    @allure.MASTER_HELPER.step("断言结果")
    def test_func(self):
        # with allure.MASTER_HELPER.step("断言结果"):
        allure.MASTER_HELPER.attach("预期结果", "{}".format(self.func(3)))
        allure.MASTER_HELPER.attach("实际结果", "{}".format(5))
        assert self.func(3) == 5

3.4. 生成测试报告

pycharm 中打开 terminal

image

输入命令 pytest -s --alluredir=report,会遇到以下这个错误:

image

进入 allure 下面的 utils 文件,修改以下代码:

# utils文件,可以通过from allure import utlis进入

for suitable_name in suitable_names:
            # markers.append(item.get_marker(suitable_name))
            markers.append(item.get_closest_marker(suitable_name))

image

修改之后,再次运行 pytest -s --alluredir=report 命令:

image

运行后,无上述错误,同时会生成一个 report 文件。其中会有一个 xml 格式的报告:

image

image

当然 XML 格式的报告不够直观,我们需要通过 allure 将它转成 HTML 格式的报告。通过 cmd 命令 cdreport 的根目录下,执行 allure generate --clean report

image

回到根目录下,会生成一个 allure-report 的文件夹,在 pycharm 中打开文件夹,点击 index.html 运行

image

ok,到此为止。可以看到我们的精美的测试报告了

image

image

5 回帖
请输入回帖内容 ...
  • huahua

    😍 大家好发布这个文章的,是我的爱徒所以我决定给他加精!!

  • huahua
  • pangluo
    Pytest是一个python的测试框架吗
    allure是基于Java的一个程序生成测试报告的?
    两个结合就是基于 python+allure
    请问楼主有没有基于java+allure
    \*这里不会显示斜体\*
    


    BAIDU
    ![baidu]
    [baidu]:http://www.baidu.com/img/bdlogo.gif "百度 Logo"
    单行文本


    ## 基本的 PHP 语法
    [TOC]
    这是一级标题

    这是二级标题

    [TOC]

    这是一级引用

    这是二级引用

    这是三级引用

    这是二级引用

    这是一级引用

    这是 javascript 代码

    Markdown
    ## 例 1:有序列表

    1. 第一点
    2. 第二点
    3. 第三点

    ## 例 2:无序列表

    • 呵呵
    • 嘉嘉
    • 嘻嘻
      • 吼吼
      • 嘎嘎
    • 桀桀
    • 哈哈

    ##1.8 粗体和斜体
    粗体 1 粗体 2
    斜体 1 斜体 2
    ##1.10 分割线




    虎绿林

    这就是我们常用的地址:Baidu

    *这里不会显示斜体*

    这是一条删除线

    这是一个注脚测试1

    这是一个锚

    标签: 数学 英语
    Tags: 数学 英语


    1. 这是一个测试,用来阐释注脚。

  • xiaojian

    再补充一下与 jenkins 的集成,就更完美了哦。。

  • zjing306 1 赞同

    图片都打不开