allure简介

allure介绍

allure是一个轻量级,灵活的,支持多语言的测试报告工具

多平台的,奢华的report框架

可以为dev/qa提供详尽的测试报告、测试步骤、log

也可以为管理层提供high level统计报告

java语言开发的,支持pytest,javaScript,PHP等

可以集成到jenkins

Allure 报告生成的原理

Allure 报告是基于标准的 xUnit 结果输出,再添加补充数据而生成的,其报告的生成基于如下两个步骤。

1、在测试执行期间,一个名为 Adapter 的小型 library 被连接到测试框架中,并将所有测试执行的信息保存到 XML 文件中。对于大多数编程语言下的流行测试框架(例如 python 语言中的 pytest,Java 中的 jUnit 等),Allure 都默认为其提供了 Adapter。

2、获取 XML 文件后,Allure 会将这些 XML 文件转换为 HTML 报告。这一步骤可以通过持续集成系统的 Allure 插件,或者命令行命令实现。

环境安装

win

前提:安装java环境(建议安装JDK1.8版本,此处不展开说明)

安装allure

下载地址

Central Repository: io/qameta/allure/allure-commandline

下载完成后,解压zip包放到电脑非中文目录下,然后将文件夹中的bin目录配置到环境变量path中

验证:

配置完成后,重新打开dos窗口

执行命令allure --version,查看版本信息

linux

前提:安装好jdk

此处介绍安装2.29.0版本

下载allure-commandline-2.29.0.tgz上传至服务器

解压

tar -xvf allure-commandline-2.29.0.tgz

rm -rf allure-commandline-2.29.0.tgz

添加环境变量

vim /etc/profile

export PATH="/app/allure/allure-2.29.0/bin:$PATH"

source /etc/profile

验证:

allure --version

常用参数

一、查看allure 命令的帮助文档

allure -h

allure 命令的语法格式

allure [options] [command] [command options]

options 列表

options: --help 命令行帮助文档 -q, --quiet 切换至安静模式 Default: false -v, --verbose 切换至冗长模式 Default: false --version 版本信息 Default: false

command 列表

generate serve open plugin

二、generate 命令行参数

作用

生成 allure 的html 报告

语法格式

generate [options] allure结果目录

【注】:allure 结果目录就是运行 pytest 命令时--alluredir 跟的那个目录: pytest -sq --alluredir= ./allure

命令选项

选项 描述

-c , --clean 删除allure报告生成的目录,就是-○跟的目录

--config allure命令行配置路径,如果指定会覆盖--profile和--configDirectory

--configDirectory allure命令行配置目录

--profile allure命令行配置文件

-o, --report-dir,--output 生成allure报告的目录

默认:执行命令当前目录下的 allure-report

没有目录则自动生成

最常用的就是 -o 与 -c 两个命令行参数。

三、open 命令行参数:结合generate 命令行参数一起使用

作用

打开已经生成的 allure 测试报告,就是打开 generate 命令生成的报告。

语法格式

open [options] allure报告目录

【注】:allure 报告目录就是运行 allure generate 命令时-o 跟的那个目录: allure generate -o ./allure-report

命令选项

选项 描述

-h,--host 该host将用于启动报告的Web服务器

-p,--port 该port将用于启动报告的Web服务器

四、serve 命令行参数

作用

启动 allure 服务,打开 allure 报告。【区分与open命令行参数的区别】

语法格式

serve [options] allure结果目录

【注】:allure 结果目录就是运行 pytest 命令,--alluredir 跟的那个目录: pytest -sq --alluredir= ./allure

命令选项

选项 描述

--config allure命令行配置路径,如果指定会覆盖--profile和--configDirectory

--configDirectory allure命令行配置目录

--profile allure命令行配詈文件

-h , --host 该host将用于启动报告的Web服务器

-p , --port 该port将用于启动报告的Web服务器

allure的执行

在测试执行期间收集结果

pytest [测试文件] -s -q --alluredir=./result/ (--alluredir这个选项,用于指定存储测试结果的路径)

python项目下 安装allure

result下生成中间结果

查看测试报告:

方式一:

测试完成后,查看实际报告,在线看报告,会直接打开默认浏览器展示当前报告

allure serve ./result/ (注意这里的serve书写)

使用管理员方式运行即可解决

方式二:

从结果生成报告,这是一个启动tomcat的服务。需要两个步骤,生成报告,打开报告

生成报告:

allure generate ./result/ -o ./report --clean (注意:覆盖路径加--clean)

两种方式的区别:

①第一种方式是将allure测试报告的原始数据(xml/json/text/attach等文件)直接在浏览器打开allure测试报告;而不在本地生成任何文件。

②第二种方式是首先在本地生成allure测试报告。然后在使用命令在浏览器打开allure测试报告。【此时allure测试报告原始数据仍然存在,而且会生成一个生成后的allure测试报告目录】

第二种方式支持直接在pycharm中选择浏览器打开 index.html 同样可以看到allure测试报告。【第一种方式不生成 index.html ,只能通过 allure server 打开测试报告】;但是如果在使用generate的方式生成allure测试报告之后,需要将此报告展示给其他人观看,同样需要 allure open ./allure-report 开启一个web服务供其他主机查看。

打开报告:

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

allure合并测试报告

方式一

allure serve ./result1 ./result2 ./result3

方式二

allure generate -c -o ./report ./result1 ./result2 ./result3

allure open ./report

allure pytest报告中添加用例描述

使用方法

参数值

参数说明

@allure.epic()

epic描述

定义项目、当存在多个项目时使用

@allure.feature()

模块名称

用例按照模块区分,存在多个模块时使用

@allure.story()

用例名称

用例的描述

@allure.title()

用例标题

用例标题

@allure.testcase()

用例相关链接

自动化用例对应的功能用例存放系统的地址

@allure.issue()

缺陷地址

对应缺陷管理系统里面的缺陷地址

@allure.description()

用例描述

对测试用例的详细描述

@allure.step()

操作步骤

测试用例的操作步骤

with allure.step()

@allure.severity()

用例等级

blocker(阻塞)、critical(严重)、normal(一般)、minor(次要)、trivial(轻微)

@allure.link()

定义连接

用于定义一个需要在测试报告中展示的连接

@allure.attachment()

附件

添加测试报告附件

演示实例


import allure
import pytest


@allure.feature("演示实例")
class Testdome:
    a = ["1", "2", "3"]

    # 参数化,ids表示起别名
    @allure.story("测试演示1")
    @pytest.mark.parametrize("sum", a, ids=["test1", "test2", "test3"])
    def test_demo(self, sum):
        with allure.step("步骤1"):
            print(sum)
        with allure.step("步骤2"):
            print("测试步骤展示")

    @allure.severity(allure.severity_level.BLOCKER)
    @allure.story("测试演示2")
    @allure.title("测试标题显示")
    #@allure.link('https://www.baidu.com', name="百度地址")
    @allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")
    @pytest.mark.demo1
    def test_demo1(self):
        pass

测试报告中添加附件

方式一

allure.attach(body, name, attachment_type, extension)

参数解释:

  • body :要写入附件的内容;

  • name :附件名字;

  • attachment_type :附件类型,是 allure.attachment_type 其中的一种;

  • extension :附件的扩展名;

实例演示


@allure.severity(allure.severity_level.CRITICAL)
@allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")
@pytest.mark.demo2
def test_demo2(self):
    with allure.step("测试步骤1"):
        allure.attach("这是一段文本测试信息", name="文本展示")
        print("测试添加附件")
    with allure.step("测试步骤2"):
        allure.attach(
            '<img id="s_lg_img" class="s_lg_img_gold_show" src="//www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" width="270" height="129" onerror="this.src="https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1-66368c33f8.png";this.onerror=null;" usemap="#mp">',
            name="html展示",
            attachment_type=allure.attachment_type.HTML
        )
        pass

方式二

allure.attach.file(source, name, attachment_type, extension)

参数解释:

  • source :文件路径,相当于传一个文件;

  • name :附件名字;

  • attachment_type :附件类型,是 allure.attachment_type 其中的一种;

  • extension :附件的扩展名;


@allure.severity(allure.severity_level.CRITICAL)
@allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")
@pytest.mark.demo2
def test_demo2(self):
    with allure.step("测试步骤1"):
        allure.attach.file('C:/Users/韩寿帅/Desktop/测试截图.jpg', name="截图展示",
                           attachment_type=allure.attachment_type.JPG,
                           extension=".jpg")
        print("测试添加附件")
        pass

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值