1. 程式人生 > >testng-xslt美化testng測試報告

testng-xslt美化testng測試報告

TestNg測試結束後,會自動生成html測試報告但是顯示不夠美觀,可以說比較醜的(個人觀點^_^)。我們可以使用testng-xslt來對TestNg生成的Hhtml測試報告進行重寫、美化。

1.從官網下載testng-xslt並解壓,解壓後的目錄:


2.新建一個Java Project:


專案新建後,在src下新建一個class來編寫測試用例,示例程式碼:

package test;

import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Ignore;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

public class TestCase {

	@BeforeMethod
	public void BeforeMethod() {
		
	}
	
	@BeforeClass
	public void setUp() throws Exception{
		System.out.println("測試開始前的初始化!");
	}
	
	@Test
	public void test1() throws Exception{
		System.out.println("this is test method1.");
	}
	
	@Test
	public void test2() throws Exception{
		System.out.println("this is test method2.");
	}
	
	@Test
	public void add() throws Exception{
		int a=5;
		int b=25;
		System.out.println("j" + "= " + a + "+" + b);
	}
	
	@Test
	public void test3() throws Exception{
		System.out.println("Keydom is the best company!!");
	}
	
	@Ignore
	public void Ignore() throws Exception{
		System.out.println("this method do not run!");
	}
	
	@AfterMethod
	public void AfterMethod() {
		
	}
	
	@AfterClass
	public void tearDown() throws Exception{
		System.out.println("測試結束後還原測試環境!");
	}
}
3.測試用例新建好後,先執行一次,生成testng自帶的html測試報告。生成的html測試報告在專案根目錄的test-output檔案下,點選index.html就可以查看了


testng生成的html報告展現介面:


4.接下來開始使用testng-xslt來重寫測試報告:

(1)把 testng-xslt目錄的 lib 檔案下的saxon-8.7.jar 和 SaxonLiason.jar 拷貝到專案的lib資料夾(若沒有則新建)下

建立lib檔案時,一般在test-output的根目錄下


(2)把  testng-xslt目錄的 /src/main/resources/目錄下的 testng-results.xsl 放到專案的test-output資料夾根目錄下(若沒有則新建)


(4)在test-output根目錄下新增一個xml檔案:


{name} :是專案的名字
{in}和{style}:對應的是testng生成報告的xml和xsl
{out}:是要用testNG-xslt生成報告的檔名和路徑
{expression}:是要用testNG-xslt生成報告的路徑

Note:{out}設定測試報告輸出時,最好生成一個新的html(即:index1.html/indenewhtml)檔案來展示測試報告,如程式碼中所示,否者build檔案在編譯的時候呈現的結果就是:ant編譯成功,但是沒有執行結果(如圖所示)。


<?xml version="1.0" encoding="UTF-8"?>

<project name="SandyTestNg" basedir=".">
    <property name="lib.dir" value="lib"/>

    <path id="test.classpath">
        <!-- adding the saxon jar to your classpath -->
      <fileset dir="${lib.dir}" includes="*.jar"/>
    </path>

    <target name="transform">
        <property name="dir" value=""/>

        <!-- <mkdir dir="F:/eclipse-workspace-2/SandyTestNg/test-output/"/> -->

        <xslt in="F:/eclipse-workspace-2/SandyTestNg/test-output/testng-results.xml"
              style="F:/eclipse-workspace-2/SandyTestNg/test-output/testng-results.xsl"
              out="F:/eclipse-workspace-2/SandyTestNg/test-output/index1.html"
              classpathref="test.classpath" processor="SaxonLiaison">
            <param name="testNgXslt.outputDir" expression="F:/eclipse-workspace-2/SandyTestNg/test-output" />
        </xslt>
    </target>
</project>
(5)執行build檔案:右鍵→Run As →Ant build→Run

build檔案執行成功後的提示:

走到這一步,那麼恭喜,testng重寫完成,點選test-output檔案下的index.html就可以看到美美的測試報告了