日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
測(cè)試驅(qū)動(dòng)技術(shù)(TDD)系列之2:詳解TestNG參數(shù)化

 上一篇文章介紹了測(cè)試驅(qū)動(dòng)的相關(guān)概念,并以junit4為例,帶大家了解如何在測(cè)試框架中實(shí)現(xiàn)測(cè)試驅(qū)動(dòng)。詳情:

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的永川網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

測(cè)試驅(qū)動(dòng)技術(shù)系列之1:一文帶你上手測(cè)試數(shù)據(jù)驅(qū)動(dòng)

大家會(huì)發(fā)現(xiàn)Junit4在同一個(gè)測(cè)試類中實(shí)現(xiàn)多組數(shù)據(jù)的數(shù)據(jù)驅(qū)動(dòng),不是很方便,需要我們自己解決!我也說過在TestNG中這個(gè)問題很容易搞定!給自己挖了個(gè)坑!自己挖的坑總要填上,那么今天就給大家講解一下數(shù)據(jù)驅(qū)動(dòng)在TestNG中的應(yīng)用。本篇文章只重點(diǎn)講解TestNG參數(shù)化相關(guān)知識(shí),關(guān)于TestNG的環(huán)境配置以及基礎(chǔ)使用不在本文的討論范圍!TestNG中使用DataProvider實(shí)現(xiàn)參數(shù)化功能,在執(zhí)行用例的時(shí)候dataProvider迭代中的每組數(shù)據(jù)都是作為一個(gè)用例執(zhí)行。

一組參數(shù)化數(shù)據(jù)

定義參數(shù)化數(shù)據(jù),代碼如下:

 
 
 
 
  1. @DataProvider 
  2.       public Object[][] dp1() { 
  3.         return new Object[][] { 
  4.           new Object[] { 1, 1,0 }, 
  5.           new Object[] { 2, 1,1 }, 
  6.           new Object[] { 2, 1,2 }, 
  7.         }; 
  8.       } 

 用例中使用參數(shù)化數(shù)據(jù)(dp1定義的),代碼如下:

 
 
 
 
  1. @Test(dataProvider = "dp1") 
  2.   public void f1(Integer n1, Integer n2, Integer n3) { 
  3.      Integer result=n2+n3; 
  4.      assertEquals(n1,result); 
  5.   } 

 多組參數(shù)化數(shù)據(jù)

在一個(gè)測(cè)試類中,可以定義多組參數(shù)化數(shù)據(jù)(參數(shù)化數(shù)據(jù)個(gè)數(shù)不同,dp1三個(gè),dp2二個(gè)),代碼如下:

 
 
 
 
  1. @DataProvider 
  2.      public Object[][] dp2() { 
  3.        return new Object[][] { 
  4.          new Object[] { 1, 1}, 
  5.          new Object[] { 2, 1}, 
  6.          new Object[] { 2, 1}, 
  7.        }; 
  8.      } 

 用例中使用參數(shù)化數(shù)據(jù)(dp2定義的),代碼如下:

 
 
 
 
  1. @Test(dataProvider = "dp2") 
  2.   public void f2(Integer n1, Integer n2) { 
  3.        assertEquals(n1,n2); 
  4.   } 

 測(cè)試方法通過DataProvider引用

我們可以自定義一些方法,對(duì)外部文件進(jìn)行讀取,然后把讀取的數(shù)據(jù)作為參數(shù)在TestNG中引用,具體方法如下:

寫一個(gè)讀取各類文件的方法(txt、excel、db)具體代碼就不給出了,但是一定注意方法的返回值必須是Object[][](關(guān)于操控excel的知識(shí)會(huì)在后面的文章中介紹)

 
 
 
 
  1. public Object[][] readfile(String p_file){ 
  2.          return  new Object[][] {{ 1, 1},{ 1, 2}}; 
  3.      } 

 在@DataProvider修飾的方法中調(diào)用該方法(也可以直接實(shí)現(xiàn))

 
 
 
 
  1. @DataProvider(name = "dp_func") 
  2.        public Object[][] testData(Method testMethod) { 
  3.          return readfile(""); 
  4.        } 

 用例中使用參數(shù)化數(shù)據(jù)(dp_func),代碼如下:

 
 
 
 
  1. @Test(dataProvider = "dp_func") 
  2.   public void f3(Integer n1, Integer n2) { 
  3.         assertEquals(n1,n2); 
  4.   } 

 完整代碼

 
 
 
 
  1. import org.testng.annotations.DataProvider; 
  2. import org.testng.annotations.Test; 
  3. import static org.testng.Assert.assertEquals; 
  4. import java.lang.reflect.Method; 
  5. public class NewTest { 
  6.  
  7.       @DataProvider 
  8.       public Object[][] dp1() { 
  9.         return new Object[][] { 
  10.           new Object[] { 1, 1,0 }, 
  11.           new Object[] { 2, 1,1 }, 
  12.           new Object[] { 2, 1,2 }, 
  13.         }; 
  14.       } 
  15.  
  16.       @DataProvider 
  17.       public Object[][] dp2() { 
  18.  
  19.         return new Object[][] { 
  20.           new Object[] { 1, 1}, 
  21.           new Object[] { 2, 1}, 
  22.           new Object[] { 2, 1}, 
  23.         }; 
  24.       } 
  25.  
  26.       @DataProvider(name = "dp_func") 
  27.         public Object[][] testData(Method testMethod) { 
  28.           return readfile(""); 
  29.         } 
  30.  
  31.      //讀取各類文件,返回值是Object[][] 
  32.  
  33.       public Object[][] readfile(String p_file){ 
  34.           return  new Object[][] {{ 1, 1},{ 1, 2}}; 
  35.       } 
  36.  
  37.   @Test(dataProvider = "dp1") 
  38.   public void f1(Integer n1, Integer n2, Integer n3) { 
  39.       Integer result=n2+n3; 
  40.       assertEquals(n1,result); 
  41.   } 
  42.  
  43.   @Test(dataProvider = "dp2") 
  44.   public void f2(Integer n1, Integer n2) { 
  45.      assertEquals(n1,n2); 
  46.   } 
  47.  
  48.   @Test(dataProvider = "dp_func") 
  49.   public void f3(Integer n1, Integer n2) { 
  50.       assertEquals(n1,n2); 
  51.   } 

 運(yùn)行測(cè)試用例,可以看到用例成功地進(jìn)行了參數(shù)化,f1執(zhí)行了3次,f2執(zhí)行了3次,f3執(zhí)行了2次,如下圖所示:


當(dāng)前文章:測(cè)試驅(qū)動(dòng)技術(shù)(TDD)系列之2:詳解TestNG參數(shù)化
網(wǎng)頁網(wǎng)址:http://m.5511xx.com/article/dpdijdp.html