TestNg測試框架使用筆記


Gradle支持TestNG

test { useTestNG(){//指定testng配置文件 suites(file('src/test/resources/testng.xml'))}}

Maven支持TestNG

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.16</version><configuration><suiteXmlFiles><suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles></configuration></plugin>

查看Gradle生成測試報告

\target\reports\buildDashboard\index.html 測試結果公告頁面,包括(junitXml)testng(html)的結果鏈接。

配置TestNg suite

<suitename="waptestng"><!--enabled="true"讓測試生效,可根據情況開啟或關閉某些測試--><testname="service"enabled="true"><!--指定參數--><parametername="accesskey"value="f0af8e412cef7e5058beeb6df2012e1e"/><!--指定測試包,注意加 .* --><packages><packagename="b2gonline.wap._systembase.service.*"/></packages><!--指定測試類--><classes><classname="test.sample.ParameterSample"/><!--過濾測試類的方法--><classname="test.IndividualMethodsTest"><methods><includename="testMethod"/></methods></class></classes><!--指定測試分組--><groups><run><!--包含--><includename="checkintest"/><!--排除--><excludename="broken"/></run></groups></test></suite>

常用TestNg注解

@Test(//在指定的時間內啟用3個線程並發測試本方法10次 threadPoolSize =3, invocationCount =10, timeOut =10000,//等待測試方法t0測試結束后開始本測試 dependsOnMethods ={"t0"},//指定測試數據源CLASS和數據源名稱(參考注解@DataProvider),返回是一個數組,返回幾條數據會跑測試方法幾次 dataProvider ="testUser", dataProviderClass =MockUser.class,//分組名稱 groups ={"checkin-test"})//讀取配置文件中的參數,配置如上,用@Optional設置默認值@Parameters({"accesskey"})publicvoid t1(User u,@Optional("xxx")String accesskey){...}

使用TestNg參數

在做單元測試的時候會有一些不固定因素,TestNg支持從配置文件或數據類中提供參數配置,通過注解很方便的引入或批量生成使用。

注解@Parameters
從XML配置文件中讀取, 如上面示例:@Parameters({ "accesskey" })

注解@Test(dataProvider)
如上示例:@Test(dataProvider = "testUser", dataProviderClass = MockUser.class)

MockUser.class

publicclassMockUser{@DataProvider(name ="testUser")publicstaticObject[][] testUser(){User u =newUser(); u.setId("SJDK3849CKMS3849DJCK2039ZMSK0001"); u.setName("admin-test");//測試找不到用戶User u2 =newUser(); u2.setId(""); u2.setName("");returnnewObject[][]{{u},{u2}};}}

使用Factories
功能:通過Factory和參數配置動態批量生成測試方法
示例:

publicclassWebTestFactory{@FactorypublicObject[] createInstances(){Object[] result =newObject[10];for(int i =0; i <10; i++){ result[i]=newWebTest(i *10);}return result;}}
publicclassWebTest{privateint m_numberOfTimes;publicWebTest(int numberOfTimes){ m_numberOfTimes = numberOfTimes;}@Testpublicvoid testServer(){for(int i =0; i < m_numberOfTimes; i++){// ...}}}

然后在XML配置中指定測試類 <class name="WebTestFactory" />

更多參考

  1. TestNg官方文檔:http://testng.org/doc/documentation-main.html
  2. Gradle-Test插件配置說明:http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
  3. TestNg和JUnit4對比:http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/


免責聲明!

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



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