Pytest+Allure 环境的搭建

本贴最后更新于 1345 天前,其中的信息可能已经东海扬尘

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 赞同

    图片都打不开