溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

發(fā)布時(shí)間:2021-09-14 15:54:21 來源:億速云 閱讀:158 作者:柒染 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

自動(dòng)化測(cè)試的用例設(shè)計(jì)通用策略

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

我們?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)景。

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

我們可以在類中設(shè)計(jì)具體的測(cè)試點(diǎn),如下圖所示,類MyCase5中的方法f9和f10代表兩個(gè)測(cè)試點(diǎn)(基于Testng)

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

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

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

運(yùn)行結(jié)果如下:

com.my.case1包下的類MyCase1和類MyCase2中的所有方法都運(yùn)行了,f1、f2、f3和f4;

類MyCase4中只運(yùn)行了方法f7;

類MyCase5中的所有方法都運(yùn)行了,f9和f10。

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

TestNG中g(shù)roup的應(yīng)用

Group的基礎(chǔ)使用

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è)置配置文件,如下所示:

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

其中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)行了

TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些

@BeforeGroups和@AfterGroups的應(yīng)用

@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ì)與管理的通用策略有哪些

以上就是TestNg中自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI