TestNg+Allure框架搭建


一、本地Allure安裝

1、Allure安裝包下載

百度網盤鏈接: https://pan.baidu.com/s/1sYWTYSbz5ahT5-MCwELpRA 提取碼: 6ywd
下載后放置安裝路徑解壓即可,例:D:\Program Files\allure-2.7.0

2、Allure環境變量配置

環境變量Path增加allure安裝路徑\allure-2.7.0\bin,例:D:\Program Files\allure-2.7.0\bin;

3、驗證Allure是否安裝成功

cmd命令輸入 allure --version,顯示版本信息則安裝成功

二、增加TestNg.xml

在對應模塊與pom文件同目錄下增加TestNg.xml文件,如下所示:

TestNg.xml內容如下,若有新增其他測試類需在classes節點下增加對應的class路徑文件:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
    <test name="Test">
        <classes>
            <class name="demo.testng.MethodTest"/>
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

三、配置pom.xml

1、 節點下增加以下內容:

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!--TestNg Aullre Report使用-->
    <aspectj.version>1.9.2</aspectj.version> <!--AspectJ是一個基於Java語言的AOP框架-->
    <allure.version>2.13.0</allure.version>
    <xmlFileName>TestNg.xml</xmlFileName>
</properties>

2、 節點下增加以下內容:

<!--TestNg-->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
</dependency>
<!--Allure報告依賴包-->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-testng</artifactId>
    <version>${allure.version}</version>
    <scope>test</scope>
</dependency>
<!--Allure報告生成插件依賴包-->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>${aspectj.version}</version>
</dependency>

3、 節點下增加build插件內容:

<build>
    <finalName>${project.name}</finalName>
    <plugins>
        <!--Allure報告構建生成-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <!--生成allure-result的目錄-->
                <systemProperties>
                    <!--是否忽略html,解釋見下圖。與之后在reportNg報告上顯示截圖相關。當前已經使用allure了,這里可以直接去掉啦-->
                    <!--<org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output>-->
                    <!--定義輸出在項目 target 目錄-->
                    <property>
                        <name>allure.results.directory</name>
                        <value>target/allure-results</value>
                    </property>
                </systemProperties>
                <!--測試失敗后,是否忽略並繼續測試-->
                <testFailureIgnore>true</testFailureIgnore>
                <argLine>
                    -Dfile.encoding=UTF-8
                </argLine>
                <suiteXmlFiles>
                    <!--該文件位於工程根目錄時,直接填寫名字,其它位置要加上路徑-->
                    <suiteXmlFile>${xmlFileName}</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

四、TestNg測試用例編寫

應用場景:對獲取身份證年齡方法進行測試
增加測試類如下:

public class MethodTest {
    /**
     * 測試場景:根據身份證獲取年齡
     * 多個用例數據,驗證是否計算正確
     * 測試數據(身份證)+ 預期結果(年齡)
     */
    @DataProvider
    public Object[][] data(){
        return new Object[][]{
                {"350421201707052265",2,"生日小於當前月日"},//臨界點
                {"350421201707032265",3,"生日等於當前月日"},//臨界點
                {"350421201907042265",1,"未滿1歲"}//不滿一歲按一歲算

        };
    }

    @Test(dataProvider = "data",description = "根據身份證獲取年齡")
    //輸入參數值需按順序一一對應dataprovider填寫的數據內容順序
    public void testIdcardUtil(String testData,int expectedResult,String message){
        int testResult = IdcardUtil.getAgeByIdCard(testData);
        Assert.assertEquals(testResult,expectedResult,message);
    }
}

方法類如下:

public class IdcardUtil {
    public static int getAgeByIdCard(String idCard) {
        int iAge = 0;
        String year = idCard.substring(6, 10);
        Calendar cal = Calendar.getInstance();
        int iCurrYear = cal.get(Calendar.YEAR);
        iAge = iCurrYear - Integer.valueOf(year);
        return iAge;
    }
}

五、TestNg測試用例集執行

運行maven test執行測試用例。
操作步驟:Idea右側窗口點開Maven Projects,找到對應模塊點擊test,執行完成后即可在模塊目錄下找到target/allure-results

allure報告文件:

六、查看allure報告

方法1:allure serve target/allure-results直接查看報告

1)cmd命令進入到target所在目錄
例:本次的duceap-boot-test-starter-metadata
2)執行命令查看報告
allure serve target/allure-results
命令說明:該命令啟動的端口是隨機分配,若需要使用固定端口可加入-p 2020,例:allure serve -p 2020 target/allure-results
3)命令執行時會自動使用默認瀏覽器打開地址,需要使用谷歌瀏覽器才能正常展示。

方法2:allure生成報告並打開查看

1)allure生成報告命令
allure generate target/allure-results/(源文件夾路徑) -o target/allure-reports/(目標文件夾路徑,需是空文件夾,無需手動創建,生成會自動創建)
2)打開生成的報告
有3種方式打開生成報告:allure open命令、tomcat啟動應用、開發工具打開(idea或pycharm),具體操作如下:
1、Allure打開報告命令
allure open allure-reports

2、tomcat啟動應用
報告放入tomcat的webapps中,執行bin\startup.bat啟動應用,訪問對應路徑端口即可

3、開發工具打開(例:idea)
打開文件夾,右擊index.html>Open in Browser>Chrome


七、Spring整合testng

1、加入@SpringBootTest
2、AbstractTestNGSpringContextTests:測試類只有繼承了該類才能擁有注入實例能力,否則注入報錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM