日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gtest测试框架使用详解_测试框架TestNG使用介绍

發(fā)布時(shí)間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gtest测试框架使用详解_测试框架TestNG使用介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

近期接觸到了一個(gè)比較全面的基于Java的接口自動(dòng)化測(cè)試框架,作為一名Java小白,所以打算研究一下,順帶學(xué)習(xí)學(xué)習(xí)Java,該測(cè)試框架的邏輯控制層使用的HttpClient + TestNG。

在本期中,給大家分享一下TestNG測(cè)試框架的基礎(chǔ)知識(shí),使用TestNG的優(yōu)點(diǎn),TestNG的基本注解如何使用,套件、忽略、異常、依賴、參數(shù)化、超時(shí)等測(cè)試該如何進(jìn)行。

一、TestNG基本介紹

TestNG是Java中的一個(gè)測(cè)試框架,是一個(gè)目前很流行實(shí)用的單元測(cè)試框架,有完善的用例管理模塊,配合Maven能夠很方便管理依賴第三方插件。使用TestNG可以做功能、接口、單元、集成的自動(dòng)化測(cè)試,最常見的是結(jié)合selenium做功能自動(dòng)化測(cè)試,它使用Java注釋去寫測(cè)試方法。

測(cè)試人員一般用TestNG來寫自動(dòng)化測(cè)試,開發(fā)人員一般用Junit寫單元測(cè)試,TestNG適合測(cè)試人員使用的原因:

  • 比Junit涵蓋功能更全面的測(cè)試框架;

  • Junit更適合隔離性比較強(qiáng)的單元測(cè)試;

  • TestNG更適合復(fù)雜的集成測(cè)試。

編寫一個(gè)測(cè)試的過程包含以下步驟:

  • 編寫測(cè)試的業(yè)務(wù)邏輯并在代碼中插入TestNG annotation;

  • 將測(cè)試信息添加到testng.xml文件或build.xml中;

  • 運(yùn)行TestNG。

二、TestNG使用

TestNG應(yīng)用上相對(duì)來說比較簡(jiǎn)單,把它的注解理解了,相當(dāng)于會(huì)了一大半了。

1. 在Maven中引用TestNG

使用Maven作為項(xiàng)目管理工具,需要在pom.xml中添加以下依賴,將groupId、artifactId和version引進(jìn)來后,就可以使用Maven框架進(jìn)行自動(dòng)下載和使用。

? ? ? ? org.testng

? ? ? ? testng

? ? ? ? 6.10

2. 在IDEA中創(chuàng)建module

新建一個(gè)文件夾用于該項(xiàng)目:AutoTest。使用IntelliJ IDEA打開該文件夾(File—>open),在該文件夾上面點(diǎn)擊右鍵—>New—>module(module意思是它都?xì)w這個(gè)工程管)—>選擇Maven點(diǎn)擊Next—>填寫GroupId和ArtifactId,點(diǎn)擊Next—>創(chuàng)建了一個(gè)module,點(diǎn)擊Finished(GroupId:一般是域名的反寫,也作為項(xiàng)目中類的包名,是main目錄里java的目錄結(jié)構(gòu);ArtifactId:工程名,也就是根文件夾名)

創(chuàng)建了一個(gè)module,被認(rèn)為工程的標(biāo)志,根文件夾名前右下角為藍(lán)色的,java前也是藍(lán)色的,resources資源目錄文件是圖中的文件標(biāo)志,工程目錄結(jié)構(gòu)如圖所示:

3. 最基本的注解@Test

Module已創(chuàng)建完畢后,就可以開始了解TestNG的基本注解啦。

1)在java文件上右擊—>new—>Package,創(chuàng)建一個(gè)包,包名:com.test.testng。(在公司,開發(fā)一個(gè)項(xiàng)目的時(shí)候每個(gè)功能模塊肯定是放在某個(gè)包下,一般包名是以:最高域名.公司名/個(gè)人名.模塊名)

2)在包中創(chuàng)建一個(gè)類,這個(gè)類就是為了運(yùn)行TestNG里的代碼創(chuàng)建的。點(diǎn)擊包右鍵—>new—>Java Class,輸入類名:BasicAnnotation—>OK

3)在pom中引用TestNG。TestNG與IDEA集成的比較好的一點(diǎn)是:假設(shè)在pom中沒引用TestNG,也會(huì)進(jìn)行提示。

4)創(chuàng)建一個(gè)方法:testCase1,在方法前加“@Test”,是最基本的注解,用來把方法標(biāo)記為測(cè)試的一部分。

在@Test為紅色時(shí),說明沒有import對(duì)應(yīng)的方法,在此我們可以進(jìn)行設(shè)置一下自動(dòng)優(yōu)化導(dǎo)入包:

File—>settings—>Editor—>General—>Auto Import,將下圖中1和2 進(jìn)行勾選,1:IDEA將在我們寫代碼的時(shí)候自動(dòng)棒我們導(dǎo)入需要用到的包,但是有多個(gè)同名的類調(diào)用不同的包,還是需要手動(dòng)(Alt+Enter)設(shè)置。2:IDEA將在我們寫代碼的時(shí)候自動(dòng)幫我們優(yōu)化導(dǎo)入的包,比如自動(dòng)去掉一些沒有用的包。

4. 注解之@BeforeMethod和@AfterMethod

除了最基本的注解外,還有標(biāo)簽可以進(jìn)行標(biāo)注在這個(gè)方法之前或者之后運(yùn)行。

創(chuàng)建兩個(gè)方法:beforeMethod和afterMethod, 同時(shí)再創(chuàng)建一個(gè)testCase2方法—>Run類,輸出內(nèi)容可以更直觀理解。注:輸入sout回車,即可輸出System.out.println()。

可以看到,BeforeMethod/AfterMethod在每個(gè)方法運(yùn)行之前/之后都會(huì)運(yùn)行一次。在以后寫測(cè)試用例時(shí),在測(cè)試方法之前/之后必須要運(yùn)行的都可以寫到BeforeMethod/AfterMethod里。

5. 注解之@BeforeClass和@AfterClass

@BeforeClass和@AfterClass是在類運(yùn)行之前和之后的注解。

創(chuàng)建兩個(gè)方法:beforeClass和afterClass—>Run類,如下圖所示:

@BeforeClass和@AfterClass使用場(chǎng)景舉例:在類運(yùn)行前,是否需要變量賦值、初始化對(duì)象等,寫完后其它方法里就都可以使用了。

6. 注解之@BeforeSuite和@AfterSuite

在注解中,執(zhí)行順序非常非常重要。測(cè)試套件注解:創(chuàng)建兩個(gè)方法beforeSuite和afterSuite—>Run類,結(jié)果如下圖所示。

根據(jù)結(jié)果可以看到:Suite把class包裹起來了,說明類在運(yùn)行之前運(yùn)行了Suite,Suite可以包含多個(gè)Class,類是屬于某個(gè)套件之下的。

7. 套件測(cè)試

舉例講解一下TestNG里的套件測(cè)試,雖然在TestNG里套件測(cè)試用到的相對(duì)較少,但是也要了解下滴,步驟如下:

1)?之前在java文件中創(chuàng)建了一個(gè)包c(diǎn)om.test.testng,現(xiàn)在在該包里新建一個(gè)包,管理所有套件測(cè)試代碼(New—>PacKage,包名可以起為:suite)

2)?在suite里創(chuàng)建一個(gè)類(New—>Java Class:SuiteConfig-配置類),SuiteConfigs 為了進(jìn)行所有測(cè)試套件的配置,在這兒寫測(cè)試的套件之前需要運(yùn)行的方法。

3)?再在suite包中創(chuàng)建一個(gè)類,以登錄測(cè)試為例,(New—> Java Class:LoginTest-登錄成功-邏輯控制類),在這兒寫測(cè)試主要Test標(biāo)簽下面包含的那些方法。

4)?在resources目錄下創(chuàng)建testng.xml配置文件,一般來說配置文件叫tesng.xml,但是不是必須的,也可以叫其它名。testing.xml其實(shí)是標(biāo)準(zhǔn)的xml文件,實(shí)際上與SuiteConfig和LoginTest是有關(guān)聯(lián)關(guān)系的。

5)?打開SuiteConfig類,創(chuàng)建兩個(gè)方法:beforeSuite和afterSuite。

6)?再在Suite包中創(chuàng)建一個(gè)類:PayTest-支付成功,與LoginTest相當(dāng)于一個(gè)測(cè)試組的,比較好區(qū)分。到此為止:目錄結(jié)構(gòu)如下圖所示:

7)?打開LoginTest,寫入方法:loginSogouMall,登錄成功。

8)?打開PayTest,寫入方法paySuccess,支付成功。

9)?打開配置文件testng.xml,根目錄為suite,寫入內(nèi)容如下圖所示,此處需要注意test標(biāo)簽必須定義一個(gè)名字。Run testing.xml后,根據(jù)運(yùn)行結(jié)果可以看到執(zhí)行順序?yàn)?-2-3-4。

8. 忽略測(cè)試

忽略測(cè)試是指本次測(cè)試執(zhí)行中不想要執(zhí)行的測(cè)試方法,示例如下。

1)在包c(diǎn)om.test.testng中創(chuàng)建一個(gè)類,New-Java Class:IgnoreTest;

2)在IgnoreTest類中創(chuàng)建兩個(gè)方法:ignore1和ignore2,根據(jù)輸出結(jié)果可以看到,在@Test標(biāo)簽后加入屬性(enabled=false),則可以忽略此測(cè)試方法,默認(rèn)情況下enabled為true。

9. 組測(cè)試中的方法分組測(cè)試

首先介紹一下方法上分組,將方法進(jìn)行歸類。

1)?在包c(diǎn)om.test.testng新建一個(gè)包,管理所有套件測(cè)試代碼(New—>PacKage,包名可以起為:groups);

2)在groups包中新建一個(gè)類(New—>Java Class,方法名:GroupsOnMethod);

3)?創(chuàng)建4個(gè)方法,如下圖中所示,注意需要在@Test標(biāo)簽中添加屬性groups;

4)?再創(chuàng)建2個(gè)方法,如下圖所示,在@BeforeGroups和@AfterGroups標(biāo)簽后需要加入分組的名字。

5)?運(yùn)行類,運(yùn)行結(jié)果為:

6)?通過此種做法,可以將很多個(gè)測(cè)試方法歸類到一個(gè)組中,之后進(jìn)行相關(guān)操作。

10. 組測(cè)試中的類分組測(cè)試

上節(jié)說的組分組,本節(jié)介紹一下類分組,將整個(gè)類文件進(jìn)行分組。

1)在groups包中,創(chuàng)建3個(gè)類:GroupsOnClass1;GroupsOnClass2;GroupsOnClass3;

2)在GroupsOnClass1中,創(chuàng)建2個(gè)方法,如下圖所示,此時(shí)需要注意的是@Test標(biāo)簽是寫在類上的(標(biāo)簽也是可以寫在類上面的),之后添加屬性groups;

3)?在GroupsOnClass2中,創(chuàng)建2個(gè)方法,與GroupsOnClass1相似,相當(dāng)于兩個(gè)班的學(xué)生;

4)?在GroupsOnClass3中,創(chuàng)建2個(gè)方法,如下圖所示;

5)在resources目錄中創(chuàng)建一個(gè)xml文件:GroupsOnClass.xml,用該文件進(jìn)行驅(qū)動(dòng),內(nèi)容和運(yùn)行結(jié)果如下圖所示,運(yùn)行了所有的組;

6)?只運(yùn)行一部分組,書寫及配置方法,如下圖所示,結(jié)果只運(yùn)行g(shù)roups名字為stu的類。

11. 異常測(cè)試

在我們期望結(jié)果為某一個(gè)異常的時(shí)候,會(huì)用到異常測(cè)試。比如:傳入某些不合法的參數(shù),程序拋出異常。

1)新建一個(gè)類,ExpectedException;

2)創(chuàng)建2個(gè)方法,如下圖所示,異常測(cè)試中,使用到了@Test標(biāo)簽中的expectedExceptions屬性,根據(jù)結(jié)果可以看到成功了一條(即方法2),需要在方法中加入語句throw new RuntimeException(),需要注意的是,該語句后的內(nèi)容不運(yùn)行,所以一定要注意順序。

12. 依賴測(cè)試

TestNGINX依賴方法是指本個(gè)測(cè)試方法執(zhí)行的時(shí)候依賴于其它方法。舉例說明:

1)創(chuàng)建一個(gè)Java類:DependTest;

2)創(chuàng)建2個(gè)方法:test1和test2,其中test2依賴于test1,即test1要先執(zhí)行,如果test1失敗,則test2不執(zhí)行。此處用到@Test標(biāo)簽的屬性dependsOnMethods,具體寫法如下圖所示,只運(yùn)行test2,結(jié)果可以看到test1也被執(zhí)行了;

3)在test1中加入語句:thrownew RuntimeException(),拋出異常,這時(shí)候再運(yùn)行test2結(jié)果會(huì)提示1 failed,1 ignored。當(dāng)做依賴測(cè)試的時(shí)候,被依賴的方法若執(zhí)行失敗,則依賴的方法就會(huì)被忽略掉不再執(zhí)行,實(shí)際場(chǎng)景中可以做前置條件的時(shí)候使用。

13. 參數(shù)化測(cè)試-xml文件參數(shù)化

TestNGINX允許在TestMethod以及@Before/After類注解、@Factory類注解的方法中傳入?yún)?shù)。參數(shù)傳遞的方式有兩種,一種是借助xml文件配置,另一種是以編碼的方式傳遞參數(shù)。本小結(jié)介紹借助xml文件配置的方式。示例:

1)新建一個(gè)包parameter(New->Package);

2)新建一個(gè)類ParameterTest,類中新建一個(gè)方法parameTest,如下圖所示,此處用到了一個(gè)新標(biāo)簽:@Parameters;

3)在resources目錄下,新建一個(gè)xml配置文件,用于傳參,內(nèi)容如下圖所示,即可運(yùn)行成功。

14. 參數(shù)化測(cè)試-DataProvider參數(shù)化

上小結(jié)講述了如何通過xml傳遞參數(shù),本節(jié)講述另一種方式。

1)?新建一個(gè)類DataProviderTest;

2)?新建兩個(gè)方法,testDataprovide和ProviderData,ProviderData方法提供數(shù)據(jù)來源,返回形式Object。注意testDataprovide方法上@Test標(biāo)簽中dataProvider的屬性值與ProviderData方法上@DataProvider標(biāo)簽中name的屬性值要一致。

以上就是使用DataProvider如何傳數(shù)據(jù),除此之外,DataProvider支持根據(jù)方法進(jìn)行參數(shù)傳遞,通過不同的方法傳遞不同的參數(shù),示例:

新建三個(gè)方法:test1、test2和methodDataTest,methodDataTest方法中必須填入Methodmethod,代表自動(dòng)會(huì)將test1和test2方法傳遞進(jìn)來,針對(duì)不同的方法名傳遞不同的參數(shù)。

15. 超時(shí)測(cè)試

超時(shí)測(cè)試比較簡(jiǎn)單,主要是使用到@Test標(biāo)簽中的timeOut屬性,單位為毫秒,示例:

1)新建一個(gè)類TimeOutTest;

2)新建兩個(gè)方法,testSuccess和testFail,方法一在3000毫秒內(nèi)給予響應(yīng),不拋出異常,運(yùn)行成功,方法2在2000毫秒內(nèi)沒有得到響應(yīng),拋出異常,運(yùn)行失敗。

超時(shí)測(cè)試使用場(chǎng)景,例:在測(cè)試過程中某一段時(shí)間后無反應(yīng),想跳過,則可以使用超時(shí)測(cè)試。

以上就是本次分享的TestNG比較常用的一些知識(shí),希望對(duì)大家有幫助~~


歡迎添加我們的搜狗測(cè)試微信號(hào),與我們一起聊聊測(cè)試。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的gtest测试框架使用详解_测试框架TestNG使用介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。