您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們?cè)谧鲎詣?dòng)化測(cè)試時(shí),是需要對(duì)用例進(jìn)行管理的,比較常用的方案是(以java為例)
一個(gè)project對(duì)應(yīng)一個(gè)產(chǎn)品;
一個(gè)package對(duì)應(yīng)產(chǎn)品中的一個(gè)模塊;
一個(gè)class對(duì)應(yīng)模塊中的一個(gè)場(chǎng)景;
一個(gè)測(cè)試方法對(duì)應(yīng)場(chǎng)景中的一個(gè)測(cè)試點(diǎn);
最后,通過suite,定義組織要執(zhí)行的class。
如下圖所示,TestNGDemo定義為一個(gè)產(chǎn)品、包c(diǎn)om.my.case1、com.my.case2和com.my.case3代表產(chǎn)品中的3個(gè)模塊,而MyCase1、MyCase2等6個(gè)類代表6個(gè)測(cè)試場(chǎng)景。
我們可以在類中設(shè)計(jì)具體的測(cè)試點(diǎn),如下圖所示,類MyCase5中的方法f9和f10代表兩個(gè)測(cè)試點(diǎn)(基于Testng)
Testng通過配置文件來對(duì)測(cè)試用例進(jìn)行管理,具體規(guī)則如下:
一個(gè)suite里面可以定義要執(zhí)行的test,可以包括多個(gè)test;
一個(gè)test里面可以定義要執(zhí)行的package和class(可以同時(shí)定義package和class,二者是并列關(guān)系)
一個(gè)class可以設(shè)置要執(zhí)行的method,具體組織形式如下:
Suite里定義了兩個(gè)test: Simpletest和advancedtest;
在Simpletest中定義了要執(zhí)行的package:com.my.case1和class: com.my.case2.MyCase4;
在類MyCase4中定義了要執(zhí)行的方法f7和不執(zhí)行的方法f8;
在advancedtest中定義了要執(zhí)行的class:com.my. case3.MyCase5
運(yùn)行結(jié)果如下:
com.my.case1包下的類MyCase1和類MyCase2中的所有方法都運(yùn)行了,f1、f2、f3和f4;
類MyCase4中只運(yùn)行了方法f7;
類MyCase5中的所有方法都運(yùn)行了,f9和f10。
TestNG可以執(zhí)行復(fù)雜的測(cè)試方法分組進(jìn)而把測(cè)試用例進(jìn)行分類。可以通過@Test(groups = { "組1","組2" })進(jìn)行標(biāo)識(shí);
分組可以作用在具體的類和方法上,作用在類上表示類里的所有方法都屬于該分組;而作用在方法上則表示只有該方法屬于該分組。
具體代碼如下:
MyCase1類具備smoketest標(biāo)簽 @Test(groups = { "smoketest" }) public class MyCase1 { @Test public void f1() { System.out.println("MyCase1 f1"); assertEquals("a","b"); } @Test public void f2() { System.out.println("MyCase1 f2"); assertEquals("a","a"); } } MyCase2類只有f3方法具備smoketest標(biāo)簽 public class MyCase2 { @Test(groups = { "smoketest" }) public void f3() { System.out.println("MyCase2 f3"); assertEquals("a","b"); } @Test public void f4() { System.out.println("MyCase2 f4"); assertEquals("a","a"); } } MyCase3類具備performancetest標(biāo)簽 @Test(groups = { "performancetest" }) public class MyCase3 { @Test public void f5() { System.out.println("MyCase3 f5"); assertEquals("a","b"); } @Test public void f6() { System.out.println("MyCase3 f6"); assertEquals("a","a"); } } MyCase4類只有f8方法具備performancetest標(biāo)簽 public class MyCase4 { @Test public void f7() { System.out.println("MyCase4 f7"); assertEquals("a","b"); } @Test(groups = { "performancetest" }) public void f8() { System.out.println("MyCase4 f8"); assertEquals("a","a"); } } MyCase5類具備securitytest 和performancetest標(biāo)簽 public class MyCase5 { @Test(groups = { "securitytest","performancetest" }) public void f9() { System.out.println("MyCase5 f9"); assertEquals("a","b"); } @Test public void f10() { System.out.println("MyCase5 f10"); assertEquals("a","a"); } } MyCase6類具備securitytest標(biāo)簽 @Test(groups = { "securitytest" }) public class MyCase6 { @Test public void f11() { System.out.println("MyCase6 f11"); assertEquals("a","b"); } @Test public void f12() { System.out.println("MyCase6 f12"); assertEquals("a","a"); } }
設(shè)置配置文件,如下所示:
其中define標(biāo)簽部分定義了需要的組分類,該部分可以省略,但個(gè)人建議保留,使用define可以清晰的看到現(xiàn)有的group結(jié)構(gòu);
run標(biāo)簽帶表了需要運(yùn)行的group信息,我們可以通過include和exclude對(duì)需要執(zhí)行的分組和不需要執(zhí)行的分組進(jìn)行設(shè)置,方法非常簡單,如下所示:
<run> <include name="group1" /> <exclude name="group2" /> </run>
上圖中通過include來設(shè)置運(yùn)行securitytest組標(biāo)識(shí)的用例。
運(yùn)行結(jié)果如下:可以看到securitytest標(biāo)簽下的用例都運(yùn)行了
@BeforeGroups注解的方法將在本組內(nèi)任何測(cè)試方法執(zhí)行前被執(zhí)行一次,可用于執(zhí)行初始化操作。類似的@AfterGroups 注解的方法將在本組內(nèi)任何測(cè)試方法執(zhí)行后被執(zhí)行,可用于關(guān)閉資源。@Test(groups = { "smoketest" })
public class MyCase1 { @BeforeGroups(groups = { "smoketest" }) public void setup() { System.out.println("smoketest setup"); } @AfterGroups(groups = { "smoketest" }) public void teardown() { System.out.println("smoketest teardown"); } @Test public void f1() { System.out.println("MyCase1 f1"); assertEquals("a","b"); } @Test public void f2() { System.out.println("MyCase1 f2"); assertEquals("a","a"); } }
代碼執(zhí)行如下:可以看到@BeforeGroups和@AfterGroups在組smoketest
的運(yùn)行前后分別執(zhí)行。
以上就是TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。