allure report+maven+testng集成使用

之前自动化测试框架用的报告插件一直reportng,但是它已经很久没有更新,而且界面简陋不直观,于是就寻找一款替代品,选择这个allure report,使用起来非常方便,而且界面美观大方,条理清晰,非常值得推荐给大家,于是在这里写一篇使用的教程,供大家参考。

官网地址:http://allure.qatools.ru/

一般测试报告的生成有2步:

1. 在测试执行的时候关联测试框架,保存测试的执行信息到xml文件中
2. 然后将xml文件解析为html报告展示

allure reprot优点:

* 开源,轻量级,多语言支持;
* 支持主流框架集成,testng、junit、pyunit等;
* 支持jenkins集成;
* 强大的注解功能;

本次使用是与testng联合使用集成到maven项目中:

* 与testng、maven结合。
* 也可以下载jenkins插件,直接用jenkins集成。

大致的步骤如下:

主要就是将allure report相关的插件配置直接写到pom文件中做集成,详细配置文件见文末,以下是抽象出来的一个大概步骤。

* 1. 生成test信息
    * - Add AllureTestListener to TestNG settings.
    * - Add AspectJ Weaver dependency and its properties.
    * - Run tests.

* 2. 解析xml文件生成html报告
    * Add allure-maven-plugin to your pom.xml file.
    * http://wiki.qatools.ru/display/AL/Allure+Maven+Plugin

* 3. 总结,执行步骤命令如下:
    * mvn clean,清除构建信息
    * mvn test,开始测试
    * mvn site,生成测试报告,在项目路径./target/site/allure-maven-plugin/index.html,即可浏览测试报告
    * mvn jetty:run,可执行可不执行,启动本地jetty服务,输入地址local host:8080,即可浏览测试报告

常用注解:

使用allure report的自带注解来辅助显示测试报告信息。

* @Step:测试步骤动作,放在具体业务逻辑方法中,可以放在关键步骤中,在报告中显示;
* @Attachments:附件信息,在截图或者其他方法上加上该注解即可(注意图片和文字区别),https://github.com/allure-framework/allure1/wiki/Attachments
* @Features:将case分类到某个feature中,报告中behaviore中显示,可以理解为testsuite,用于组织管理测试用例https://github.com/allure-framework/allure1/wiki/Features-and-Stories
* @Stories:属于feature之下的结构,报告中features中显示,可以理解为testcase,说明此用例是某个feature中的某个story下的用例https://github.com/allure-framework/allure1/wiki/Features-and-Stories
* @Title: 测试用例的标题,报告中stories信息中展示
* @Description: 测试用例的描述,报告中stories信息中展示
* @Issue: 跟测试用例相关的bug Id(这是一个链接,可以配置bug管理系统的URL,直接跳转到bug管理系统中)https://github.com/allure-framework/allure1/wiki/Issues。pom文件中添加配置patterm,见下方
* @TestCaseId:测试用例的id(这是一个连接,可以配置用例管理系统的URL,直接跳转到用例管理系统中)https://github.com/allure-framework/allure1/wiki/Test-Case-ID,pom文件中添加配置patterm,见下方
* ……

pom文件相关配置实例以及注释信息:


<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>aiyoumigroupId>
    <artifactId>autoTestartifactId>
    <version>1.0-SNAPSHOTversion>

    
    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <timestamp>2017-05-16_18_56_43timestamp>
        <allure.version>1.4.23allure.version>
        <aspectj.version>1.7.4aspectj.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.testnggroupId>
            <artifactId>testngartifactId>
            <version>6.9.9version>
        dependency>
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-javaartifactId>
            <version>2.53.0version>
        dependency>
        
        <dependency>
            <groupId>ru.yandex.qatools.alluregroupId>
            <artifactId>allure-testng-adaptorartifactId>
            <version>1.5.2version>
        dependency>
    dependencies>

    <build>
        <plugins>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-surefire-pluginartifactId>
                <version>2.18.1version>
                <configuration>
                    <testFailureIgnore>truetestFailureIgnore>
                    <suiteXmlFiles>
                        <suiteXmlFile>./src/main/java/testng.xmlsuiteXmlFile>
                    suiteXmlFiles>
                    <argLine>
                        -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                    argLine>
                    
                    <systemProperties>
                        <property>
                            <name>allure.results.directoryname>
                            <value>./target/${timestamp}/allure-resultsvalue>
                        property>
                    systemProperties>
                configuration>
                
                <dependencies>
                    <dependency>
                        <groupId>org.aspectjgroupId>
                        <artifactId>aspectjweaverartifactId>
                        <version>${aspectj.version}version>
                    dependency>
                dependencies>
            plugin>

            
            <plugin>
                <groupId>org.eclipse.jettygroupId>
                <artifactId>jetty-maven-pluginartifactId>
                <version>9.2.10.v20150310version>
                <configuration>
                    <webAppSourceDirectory>${project.build.directory}/1234/site/allure-maven-pluginwebAppSourceDirectory>
                    <stopKey>stopstopKey>
                    <stopPort>1234stopPort>
                configuration>
            plugin>
        plugins>
    build>

    
    <reporting>
        <excludeDefaults>trueexcludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.alluregroupId>
                <artifactId>allure-maven-pluginartifactId>
                <version>2.5version>
                <configuration>
                    
                    <resultsDirectory>./${timestamp}/allure-resultsresultsDirectory>
                    
                    <properties>
                        <allure.issues.tracker.pattern>http://122.225.68.74:8082/browse/%sallure.issues.tracker.pattern>
                        <allure.tests.management.pattern>http://122.225.68.74:8082/browse/%sallure.tests.management.pattern>
                    properties>

                configuration>

            plugin>
        plugins>
        
        <outputDirectory>${project.build.directory}/${timestamp}/siteoutputDirectory>
    reporting>
project>

你可能感兴趣的:(UI自动化测试)