Allure工具 -Allure安装和执行命令

文章目录

  • [1. Allure 介绍](#1. Allure 介绍)
    • [1.1 Allure特点:](#1.1 Allure特点:)
  • [2. Allure 安装](#2. Allure 安装)
    • [2.1 安装Java环境](#2.1 安装Java环境)
    • [2.2 下载Allure](#2.2 下载Allure)
  • [3. Allure插件安装](#3. Allure插件安装)
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. Allure 介绍

Allure 是一款灵活的测试报告工具,用 Java 语言开发。它可以生成详尽的测试报告,包括测试类别、步骤、日志、图片等,并生成高水准的统计报告。

Allure2官网:https://github.com/allure-framework/allure2

1.1 Allure特点:

Allure 是由 Java 语⾔开发的⼀个轻量级,灵活的测试报告⼯具。

Allure 多平台的 Report 框架。

Allure ⽀持多语⾔,包括 python、JaveScript、PHP、Ruby 等。

可以为开发/测试/管理等人员提供详尽的的测试报告,包括测试类别、测试步骤、日志、图片、视频等。

可以为管理层提供高水准的统计报告。

可以集成到 Jenkins 生成在线的趋势汇总报告。

2. Allure 安装

2.1 安装Java环境

根据自己电脑系统安装Java/python环境

2.2 下载Allure

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

国内下载路径:https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/

mac/linux: 下载 tar

windows: 下载 zip

配置环境变量:解压后将 bin 目录加入 PATH 环境变量

bash 复制代码
# 安装验证
allure --version

3. Allure插件安装

python:

bash 复制代码
# 项目环境安装
pip install allure-pytest

java: pom依赖导入(maven)

xml 复制代码
<properties>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <maven.compiler.version>3.10.1</maven.compiler.version>
        <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <!-- 对应junit Jupiter的版本号;放在这里就不需要在每个依赖里面写版本号,导致对应版本号会冲突 -->
        <junit.jupiter.version>5.9.2</junit.jupiter.version>
        <!-- log日志 -->
        <slf4j.version>2.0.6</slf4j.version>
        <logback.version>1.4.5</logback.version>
        <!-- yaml对应解析 -->
        <jackson.version>2.14.2</jackson.version>
        <!-- hamcrest断言 -->
        <hamcrest.version>2.2</hamcrest.version>
        <!-- allure报告 -->
        <allure.version>2.21.0</allure.version>
        <allure.maven.version>2.12.0</allure.maven.version>
        <aspectj.version>1.9.19</aspectj.version>
        <allure.cmd.download.url>
            https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline
        </allure.cmd.download.url>
    </properties>

    <!--    物料清单 (BOM)-->
    <dependencyManagement>
        <dependencies>
            <!--当使用 Gradle 或 Maven 引用多个 JUnit 工件时,此物料清单 POM 可用于简化依赖项管理。不再需要在添加依赖时设置版本-->
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit.jupiter.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!-- junit5 -->
        <!-- 创建 Junit5 测试用例的 API-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <!--对应添加的依赖的作用范围-->
            <scope>test</scope>
        </dependency>
        <!-- 兼容 JUnit4 版本的测试用例-->
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <!--suite套件依赖 -->
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- log日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>compile</scope>
        </dependency>

        <!--        allure报告-->
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit5</artifactId>
            <version>${allure.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectj.version}</version>
        </dependency>

        <!--        yaml文件解析-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>${jackson.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.version}</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <!-- 设置编码为 UTF-8 -->
                    <encoding>${maven.compiler.encoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                    <includes>
                        <!--  <include>**/*Test</include>-->
                        <!--  <include>**/Test*</include>-->
                    </includes>
                    <systemProperties>
                        <property>
<!--                            配置Allure结果存储路径-->
                            <name>allure.results.directory</name>
                            <value>${project.build.directory}/allure-results</value>
                        </property>
                    </systemProperties>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>${junit.jupiter.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                        <version>${junit.jupiter.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
<!--                Allure报表依赖-->
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>${allure.maven.version}</version>
                <configuration>
                    <reportVersion>${allure.version}</reportVersion>
                    <allureDownloadUrl>${allure.cmd.download.url}/${allure.version}/allure-commandline-${allure.version}.zip</allureDownloadUrl>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

3.1 验证Allure安装

在当前项目下载allure相关的jar包,在项目下生成一个.allure的文件夹

bash 复制代码
mvn clean allure:report 

执行测试用例

bash 复制代码
# 运行所有测试用例,生成原始数据到 target/allure-results
mvn clean test 

在项目target/allure-results路径下,生成测试结果报告

bash 复制代码
mvn allure:report 

【注】如果用IDEA执行测试用例,则结果是在项目的allure-results目录路径下生成中间结果json文件

查看allure渲染报告,自动打开浏览器查看

bash 复制代码
mvn allure:serve

【注】运行mvn命令没有在target下面生成allure-results目录,需要在src/test/resources路径下配置allure配置文件allure.properties,指名allure报告生成路径。

bash 复制代码
# 静态资源文件中,配置allure报告生成路径
allure.results.directory=target/allure-results

3.2 测试报告生成的流程

  1. 通过测试框架Junit,Pytest运行测试用例,生成包含测试数据的"中间"测试结果(JSON,Text格式)。
  2. 通过命令解析中间结果,生成在线版本或静态资源报告。
    执行allure serve命令:生成在线报告
    执行allure generate命令:生成静态报告

allure命令生成在线报告

  1. 执行测试用例
bash 复制代码
mvn clean test
  1. 查看在线报告,会直接打开默认浏览器展示当前报告(读取的是 IDEA 直接运行测试 生成的结果)
bash 复制代码
allure serve ./allure-results
  1. 打开的是执行mvn clean test命令的测试结果报告
bash 复制代码
# 读取的是Maven命令行 (mvn clean test) 运行测试 生成的结果。
 allure serve target/allure-results 

【注】./allure-results 是 IDEA 默认输出路径,target/allure-results 是 Maven 默认输出路径。

对应了两种不同的测试执行方式

在 pom.xml 中统一配置 Allure 结果输出路径到 target/allure-results

xml 复制代码
<plugin>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-maven</artifactId>
    <version>2.12.0</version>
    <configuration>
        <!-- 显式指定结果目录为 target/allure-results -->
        <resultsDirectory>${project.build.directory}/allure-results</resultsDirectory>
    </configuration>
</plugin>

生成静态文件报告

  1. 生成带有index.html 的结果报告
bash 复制代码
allure generate ./target/allure-results 
# 项目下会自动生成一个allure-report目录

【注】allure generate 可以指定输出路径,也可以清理上次的报告记录。

bash 复制代码
# 生成报告,指定输出路径,清理报告
allure generate ./result -o ./report --clean
# -o / --output 输出报告的路径。
# -c / --clean 如果报告路径重复。 
  1. 打开报告
bash 复制代码
# 打开报告
allure open ./allure-report
# 打开报告,指定IP地址和端口
allure open -h 127.0.0.1 -p 8088 ./report/
# -h / --host 主机 IP 地址,此主机将用于启动报表的 web 服务器。
# -p / --port 主机端口,端口将用于启动报表的 web 服务器,默认值:0。

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
其实秋天的枫7 小时前
【2026年5月】初级会计师考试真题试卷及答案PDF
经验分享·pdf
测试员周周7 小时前
【AI测试路线图2】功能测试转 AI 测试:4~5 个月,一条最稳的路
开发语言·人工智能·python·功能测试·测试工具·单元测试·pytest
xuhaoyu_cpp_java8 小时前
Git学习(一)
经验分享·笔记·git·学习
Tutankaaa8 小时前
2025年知识竞赛行业趋势报告:智能化、场景化与生态融合
经验分享
小+不通文墨9 小时前
树莓派接温湿度传感器显示温度湿度
经验分享·笔记·单片机·嵌入式硬件·学习
小矮强9 小时前
飞马SLAM手持激光扫描仪数据处理
经验分享·测绘
我的xiaodoujiao9 小时前
API 接口自动化测试详细图文教程学习系列19--添加封装其他的方法
开发语言·python·学习·测试工具·pytest
上海光华专利事务所9 小时前
哪家美国专利申请代理机构专业?2026年4月服务领先应对USPTO审查意见严苛
经验分享