TestNG 學習總結 - 套件測試(七)

TestNG套件測試



測試套件的測試是爲了測試軟件程序的行爲或一系列行爲的情況下,是一個集合。在testng,我們不能定義一套測試源代碼,但它代表的套件是一個XML文件執行特徵。這也允許靈活的配置要運行的測試。套件可以包含一個或多個測試和被定義由<suite>標籤。

testng.xml中有<suite>根標籤。它描述了一個測試套件,這反過來又是由多個<test>區段組成。

下表列出了所有的<suite>可接受合法屬性。

屬性 描述
name 此套件的名稱。這是一個強制性的屬性。
verbose 這個運行級別或冗長。
parallel 由TestNG 運行不同的線程來運行此套件。
thread-count 使用的線程數,如果啓用並行模式(忽略其他方式)。
annotations 在測試中使用註釋的類型。
time-out 默認的超時時間,將用於本次測試中發現的所有測試方法。

在本章中,我們會告訴你一個例子,有兩個Test1 & Test2測試類一起運行測試套件。

創建一個類

創建一個Java類進行測試 MessageUtil.java 在 C: > JUNIT_WORKSPACE

/*
* This class prints the given message on console.
*/
public class MessageUtil {
    private String message;

    // Constructor
    // @param message to be printed
    public MessageUtil(String message) {
    	this.message = message;
    }

    // prints the message
    public String printMessage() {
    	System.out.println(message);
    	return message;
    }

    // add "Hi!" to the message
    public String salutationMessage() {
    	message = "Hi!" + message;
    	System.out.println(message);
    	return message;
    }
}

創建測試用例類

創建一個Java類文件名 Test1.java 在C: > TestNG_WORKSPACE

import org.testng.Assert;
import org.testng.annotations.Test;

public class Test1 {
    String message = "Manisha";
    MessageUtil messageUtil = new MessageUtil(message);

    @Test
    public void testPrintMessage() {
        System.out.println("Inside testPrintMessage()");
	Assert.assertEquals(message, messageUtil.printMessage());
    }
}

創建一個Java類文件名 Test2.java 在C: > TestNG_WORKSPACE

import org.testng.Assert;
import org.testng.annotations.Test;

public class Test2 {
    String message = "Manisha";	
    MessageUtil messageUtil = new MessageUtil(message);
	 
    @Test
    public void testSalutationMessage() {
        System.out.println("Inside testSalutationMessage()");
        message = "Hi!" + "Manisha";
        Assert.assertEquals(message,messageUtil.salutationMessage());
    }
}

現在,讓我們編輯寫入testng.xml 在C: > TestNG_WORKSPACE ,將包含<suite>標籤如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
  <test name="exampletest1">
    <classes>
       <class name="Test1" />
    </classes>
  </test>
  <test name="exampletest2">
    <classes>
       <class name="Test2" />
    </classes>
  </test>
</suite>  	

Suite1 包括 exampletest1 和 exampletest2.

所有Java類編譯使用javac。

C:TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java

現在運行 testng.xml,將運行提供的測試用例類中定義的測試用例。

C:TestNG_WORKSPACE>java -cp "C:TestNG_WORKSPACE" org.testng.TestNG testng.xml

驗證輸出。

Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha

===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================

您也可以檢查測試輸出文件夾;下Suite1文件夾中,可以看到兩個HTML創建的exampletest1.html 和 exampletest2.html

發佈了94 篇原創文章 · 獲贊 13 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章