TestNG是一個功能強大的測試框架,是Junit的一個增強版本,Junit在使用多年之前,TestNG才生效存在。NG 代表“下一代”。
TestNG框架提供了以下功能和解答我們的問題:“為什么我們需要TestNG”?
注釋可以幫助我們來組織使測試更容易。
靈活的測試配置。
測試例可以更容易地進行分組
可以使用TestNG實現(xiàn)測試并行
支持數(shù)據(jù)驅(qū)動測試
內(nèi)置的報告
第1步:啟動Eclipse,選擇“Install New Software”。
第2步:輸入網(wǎng)址為“http://beust.com/eclipse”,然后單擊“Add”。
第3步:打開添加存儲庫對話框輸入名稱為“TestNG”,然后點擊“OK”
第4步:點擊“全Select All”和“TestNG”將被選擇,如圖所示。
第5步:點擊“Next”繼續(xù)。
第6步:檢查被選中項目,然后單擊“Next”。
第7步:“Accept the License Agreement”,然后單擊“Finish”。
步驟8:TestNG開始安裝并且將示出進度如下。
第9步:安全警告彈出的軟件的有效性不能成立。單擊“Ok”。
第10步:安裝程序彈出的重啟。單擊“Yes”。
注釋被正式添加到Java語言中JDK5和TestNG作出的選擇使用注解來注解測試類。以下是一些使用注釋的優(yōu)點。更多關于TestNG可以在這里找到 www.yiibai.com/testng/index.html
TestNG識別是通過查找注釋感興趣的方法。因此,方法的名稱不局限于任何模式或格式。
我們可以通過額外的參數(shù)來說明。
注釋是強類型,所以編譯器會標志任何錯誤。
測試類不再需要擴展什么(如測試用例,選擇JUnit3)。
| Annotation | 描述 |
|---|---|
| @BeforeSuite | 被注釋的方法將只在這個套件中的所有測試運行之前運行一次。 |
| @AfterSuite | 被注釋的方法將只在這個套件中的所有測試都運行后,運行一次。 |
| @BeforeClass | 帶注釋的方法將只調(diào)用在當前類中的第一測試方法之前運行一次。 |
| @AfterClass | 帶注釋的方法將僅在當前類中的所有的測試方法已經(jīng)被執(zhí)行之后運行一次。 |
| @BeforeTest | 屬于類<測試>中的任何測試方法標記運行之前被注釋的方法將被運行。 |
| @AfterTest | 被注釋的方法都將屬于該類別的<測試>標簽內(nèi)的測試方法運行后運行。 |
| @BeforeGroups | 這種配置方法,將之前運行的組的列表。此方法是保證屬于任何這些基團的被調(diào)用的第一測試方法之前短暫運行。 |
| @AfterGroups | 這種配置方法,將后運行的組的列表。這個方法保證了屬于任何這些基團的被調(diào)用的最后一個測試方法之后不久運行。 |
| @BeforeMethod | 被注釋的方法將每個測試方法之前運行。 |
| @AfterMethod | 被注釋的方法將每個測試方法之后運行。 |
| @DataProvider | 標記的方法為測試方法提供數(shù)據(jù)。被注釋的方法必須返回一個Object[] [],其中每個Object []對象可以分配的測試方法的參數(shù)列表。想從這個DataProvider接收數(shù)據(jù)的@Test方法需要使用dataProvider名稱等于這個注解的名字。 |
| @Factory | 將方法標記為一個工廠,返回將使用了TestNG作為測試類的對象。該方法必須返回一個Object[]。 |
| @Listeners | 定義了一個測試類監(jiān)聽器。 |
| @Parameters | 介紹了如何將參數(shù)傳遞到一個方法@Test。 |
| @Test | 標志著一個類或方法作為測試的一部分。 |
第1步:啟動Eclipse,并創(chuàng)建一個“New Java Project”,如下圖所示。
第2步:輸入項目名稱,然后單擊“Next”。
第3步:找到“Libraries”選項卡,并單擊添加Selenium遠程控制服務器的JAR文件“Add External JAR's”,如圖所示。
第4步:添加JAR文件,如下圖所示,然后單擊“Add Library”。
第5步:“Add Library”對話框打開。選擇“TestNG”,然后點擊“Next”在“Add Library”對話框。
第6步:添加“TestNG”類庫加入如下圖所示它顯示出來。
步驟7:當創(chuàng)建項目的結(jié)構(gòu)將在下面所示的項目。
第8步:右鍵點擊“src”文件夾并選擇“New”和“other”。
第9步:選擇“TestNG”,然后點擊“Next”。
第10步:選擇“Source Folder”名稱,并單擊“Ok”。
第11步:選擇“Package name”,類名,然后單擊“Finish”。
步驟12:在Package Explorer和創(chuàng)建的類將可以顯示出來給用戶。
現(xiàn)在讓我們使用TestNG啟動腳本。為我們理解webdriver使用相同的示例腳本。我們將利用演示應用程序,www.calculator.net并執(zhí)行%的計算器。
在下面的測試,你會發(fā)現(xiàn),沒有main方法,如TestNG將驅(qū)動程序的執(zhí)行流程。初始化驅(qū)動程序后,它將執(zhí)行“@BeforeTest'方法,其次是”@Test',然后'@AfterTest“。請注意,可以在一個類中的任何數(shù)量“@Test”注解,但是“@BeforeTest'和'@AfterTest”只能出現(xiàn)一次。
package TestNG;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class TestNGClass
{
WebDriver driver = new FirefoxDriver();
@BeforeTest
public void launchapp()
{
//Puts a Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Launch website
driver.navigate().to("http://www.calculator.net");
driver.manage().window().maximize();
}
@Test
public void calculatepercent()
{
// Click on Math Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
// Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
// Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10");
// Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50");
// Click Calculate Button
driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
// Get the Result Text based on its xpath
String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
//Print a Log In message to the screen
System.out.println(" The Result is " + result);
if(result.equals("5"))
{
System.out.println(" The Result is Pass");
}
else
{
System.out.println(" The Result is Fail");
}
}
@AfterTest
public void terminatetest()
{
driver.close();
}
}
通過在創(chuàng)建的XML執(zhí)行右鍵單擊并選擇 "Run As" >> "TestNG Suite"進行測試執(zhí)行
輸出被丟到了控制臺,它會出現(xiàn)如下圖所示??刂婆_輸出也有執(zhí)行摘要。
TestNG的結(jié)果也可以看出在不同的標簽。點擊“HTML Report View”按鈕,如下圖所示。
如下所示的HTML結(jié)果將被顯示。