偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

干貨!詳解自動(dòng)化測(cè)試用例設(shè)計(jì)與管理的通用策略(基于TestNg)

開發(fā) 前端 自動(dòng)化
我們?cè)谧鲎詣?dòng)化測(cè)試時(shí),是需要對(duì)用例進(jìn)行管理的,比較常用的方案是(以java為例)。

自動(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)景。

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

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中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í);

分組可以作用在具體的類和方法上,作用在類上表示類里的所有方法都屬于該分組;而作用在方法上則表示只有該方法屬于該分組。

具體代碼如下:

  1. MyCase1類具備smoketest標(biāo)簽 
  2. @Test(groups = { "smoketest" }) 
  3. public class MyCase1 { 
  4.  @Test 
  5.  public void f1() { 
  6.      System.out.println("MyCase1 f1"); 
  7.      assertEquals("a","b"); 
  8.       } 
  9.   @Test 
  10.   public void f2() { 
  11.    System.out.println("MyCase1 f2"); 
  12.    assertEquals("a","a"); 
  13.  
  14. MyCase2類只有f3方法具備smoketest標(biāo)簽 
  15. public class MyCase2 { 
  16.  @Test(groups = { "smoketest" }) 
  17.  public void f3() { 
  18.      System.out.println("MyCase2 f3"); 
  19.      assertEquals("a","b"); 
  20.       } 
  21.   @Test 
  22.   public void f4() { 
  23.    System.out.println("MyCase2 f4"); 
  24.    assertEquals("a","a"); 
  25.  
  26. MyCase3類具備performancetest標(biāo)簽 
  27. @Test(groups = { "performancetest" }) 
  28. public class MyCase3 { 
  29.  @Test 
  30.  public void f5() { 
  31.      System.out.println("MyCase3 f5"); 
  32.      assertEquals("a","b"); 
  33.       } 
  34.   
  35.   @Test 
  36.   public void f6() { 
  37.    System.out.println("MyCase3 f6"); 
  38.    assertEquals("a","a"); 
  39.  
  40. MyCase4類只有f8方法具備performancetest標(biāo)簽 
  41. public class MyCase4 { 
  42.  @Test 
  43.  public void f7() { 
  44.      System.out.println("MyCase4 f7"); 
  45.      assertEquals("a","b"); 
  46.       } 
  47.   
  48.   @Test(groups = { "performancetest" }) 
  49.   public void f8() { 
  50.    System.out.println("MyCase4 f8"); 
  51.    assertEquals("a","a"); 
  52.  
  53. MyCase5類具備securitytest 和performancetest標(biāo)簽 
  54. public class MyCase5 { 
  55. @Test(groups = { "securitytest","performancetest" }) 
  56.  public void f9() { 
  57.      System.out.println("MyCase5 f9"); 
  58.      assertEquals("a","b"); 
  59.       } 
  60.   @Test 
  61.   public void f10() { 
  62.    System.out.println("MyCase5 f10"); 
  63.    assertEquals("a","a"); 
  64.  
  65. MyCase6類具備securitytest標(biāo)簽 
  66. @Test(groups = { "securitytest" }) 
  67. public class MyCase6 { 
  68.  @Test 
  69.  public void f11() { 
  70.      System.out.println("MyCase6 f11"); 
  71.      assertEquals("a","b"); 
  72.       } 
  73.   @Test 
  74.   public void f12() { 
  75.    System.out.println("MyCase6 f12"); 
  76.    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è)置,方法非常簡(jiǎn)單,如下所示:

  1. <run> 
  2.  
  3. <include name="group1" /> 
  4.  
  5. <exclude name="group2" /> 
  6.  
  7. </run> 

上圖中通過include來設(shè)置運(yùn)行securitytest組標(biāo)識(shí)的用例。

運(yùn)行結(jié)果如下:可以看到securitytest標(biāo)簽下的用例都運(yùn)行了

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

@BeforeGroups注解的方法將在本組內(nèi)任何測(cè)試方法執(zhí)行前被執(zhí)行一次,可用于執(zhí)行初始化操作。類似的@AfterGroups 注解的方法將在本組內(nèi)任何測(cè)試方法執(zhí)行后被執(zhí)行,可用于關(guān)閉資源。@Test(groups = { "smoketest" })

  1. public class MyCase1 { 
  2.  @BeforeGroups(groups = { "smoketest" }) 
  3.  public void setup() { 
  4.     System.out.println("smoketest setup"); 
  5.      
  6.  } 
  7.  @AfterGroups(groups = { "smoketest" }) 
  8.  public void teardown() { 
  9.     System.out.println("smoketest teardown"); 
  10.      
  11.  } 
  12.  @Test 
  13.  public void f1() { 
  14.      System.out.println("MyCase1 f1"); 
  15.      assertEquals("a","b"); 
  16.       } 
  17.   
  18.   @Test 
  19.   public void f2() { 
  20.    System.out.println("MyCase1 f2"); 
  21.    assertEquals("a","a"); 

 代碼執(zhí)行如下:可以看到@BeforeGroups和@AfterGroups在組smoketest

的運(yùn)行前后分別執(zhí)行。

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2011-09-01 10:05:24

PhoneGap應(yīng)用程序測(cè)試

2022-01-14 11:51:00

測(cè)試工具自動(dòng)化

2011-12-23 17:03:29

性能測(cè)試用例設(shè)計(jì)

2011-10-11 09:56:59

PhoneGapSelenium

2017-04-10 12:25:32

iOS自動(dòng)化測(cè)試

2011-07-04 18:06:52

測(cè)試用例

2023-06-28 15:12:33

2011-06-03 16:58:03

測(cè)試用例

2024-09-29 15:32:13

自動(dòng)化測(cè)試開發(fā)

2025-05-27 01:45:00

DeepSeekPython測(cè)試

2023-04-02 13:48:24

軟件測(cè)試NLP自動(dòng)化測(cè)試

2023-06-30 09:46:00

服務(wù)物理機(jī)自動(dòng)化

2011-05-16 14:54:12

測(cè)試用例

2012-02-27 17:34:12

Facebook自動(dòng)化

2011-08-16 15:36:47

iPhone應(yīng)用測(cè)試

2019-04-02 09:00:00

機(jī)器人人工智能HMI設(shè)計(jì)

2017-12-24 21:00:10

自動(dòng)化測(cè)試測(cè)試框架敏捷

2021-05-26 08:51:50

漏洞漏洞掃描符號(hào)執(zhí)行

2022-02-17 10:37:16

自動(dòng)化開發(fā)團(tuán)隊(duì)預(yù)測(cè)

2019-02-19 15:37:18

自動(dòng)化測(cè)試數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)