国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
TestNG @Factory與 @DataProvider 結(jié)合使用進(jìn)行參數(shù)化測(cè)試

簡(jiǎn)介

TestNG是一個(gè)設(shè)計(jì)用來(lái)簡(jiǎn)化廣泛的測(cè)試需求的測(cè)試框架,從單元測(cè)試到集成測(cè)試,這個(gè)是TestNG設(shè)計(jì)的出發(fā)點(diǎn),不僅僅是單元測(cè)試,而且可以用于集成測(cè)試。設(shè)計(jì)目標(biāo)的不同,對(duì)比junit的只適合用于單元測(cè)試,TestNG無(wú)疑走的更遠(yuǎn)。可以用于集成測(cè)試,這個(gè)特性是我選擇TestNG的最重要的原因。

 

先了解這兩個(gè)注解的意思

@DataProvider    標(biāo)記一個(gè)方法用于為測(cè)試方法提供數(shù)據(jù)。被注釋的方法必須返回Object[][], 其中每個(gè)Object[]可以指派為這個(gè)測(cè)試方法的參數(shù)列表。

                         從這個(gè)DataProvider接收數(shù)據(jù)@Test方法需要使用一個(gè)dataProvider名稱(chēng)等于這個(gè)注解的名字。

 
@Factory    標(biāo)記方法作為一個(gè)返回對(duì)象的工廠,這些對(duì)象將被TestNG用于作為測(cè)試類(lèi)。這個(gè)方法必須返回Object[]。

 

代碼

文件結(jié)構(gòu)

├── src/main/java/test/demo/TestFactory.java├── src/main/java/test/demo/LoginPageTest.java│── src/main/java/test/demo/HomePageTest.java└── src/test/resources/smokeTest.xml

 

 1 package test.demo; 2  3 import org.testng.annotations.DataProvider; 4 import org.testng.annotations.Factory; 5  6 /** 7  * @Description: Demo 8  * @author wadexu 9  * 10  * @updateUser11  * @updateDate12  */13 public class TestFactory {14 15     @DataProvider(name = "datasource")16     public Object[][] datasource() {17 18         // Creating and filling result array19         Object[][] credentials = new Object[2][2];20 21         credentials[0][0] = "User1";22         credentials[0][1] = "WadeXu";23 24         credentials[1][0] = "User2";25         credentials[1][1] = "JamesBond";26 27         return credentials;28     }29 30     @Factory(dataProvider = "datasource")31     public Object[] createTest(String userID, String userName) {32 33         Object[] tests = new Object[2];34 35         tests[0] = new HomePageTest(userID, userName);36         tests[1] = new LoginPageTest(userID, userName);37 38         return tests;39     }40 41 42 }

TestFactory工廠類(lèi),在帶有@Factory注解的方法中調(diào)用被執(zhí)行的測(cè)試類(lèi),TestNg會(huì)自動(dòng)調(diào)用被執(zhí)行類(lèi)中帶有@Test注解的方法,被執(zhí)行的測(cè)試類(lèi)為:HomePageTest , LoginPageTest

使用@DataProvider作為數(shù)據(jù)注入的方式,向Factory中注入數(shù)據(jù),并執(zhí)行測(cè)試。

##轉(zhuǎn)載注明出處:http://www.cnblogs.com/wade-xu/p/4761275.html 

 

 1 package test.demo; 2  3 import org.testng.annotations.Test; 4  5 /** 6  * @Description: Demo Login Page 7  * @author wadexu 8  *  9  * @updateUser10  * @updateDate11  */12 public class LoginPageTest {13 14     private String userID;15     private String userName;16 17     public LoginPageTest(String userID, String userName) {18         this.userID = userID;19         this.userName = userName;20     }21 22     @Test23     public void testLogin() {24         // for demo purpose only25         System.out.println(userID + " - " + userName + " is testing Login page");26     }27 28 }

 

 1 package test.demo; 2  3 import org.testng.annotations.Test; 4  5 /** 6  * @Description: Demo Home Page 7  * @author wadexu 8  *  9  * @updateUser10  * @updateDate11  */12 public class HomePageTest {13 14     private String userID;15     private String userName;16 17     public HomePageTest(String userID, String userName) {18         this.userID = userID;19         this.userName = userName;20     }21 22     23     @Test24     public void testHomePage() {25         System.out.println(userID + " - " + userName + " is testing Home page");26     }27 28 }

##轉(zhuǎn)載注明出處:http://www.cnblogs.com/wade-xu/p/4761275.html 

 

TestNG xml配置文件如下

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><!--<suite name="DMP_Test_Suite" --><suite name="Demo_Test_Suite" parallel="false">    <test name="Demo_Test">        <classes>            <class name="test.demo.TestFactory" />        </classes>    </test> </suite>

 

右擊xml文件Run as TestNG

Test Result:

 

Console output:

User1 - WadeXu is testing Home pageUser2 - JamesBond is testing Home pageUser1 - WadeXu is testing Login pageUser2 - JamesBond is testing Login page

 

注意測(cè)試方法將被一共執(zhí)行的次數(shù),@DataProvider屬于循環(huán)測(cè)試的類(lèi)型。

 

TestNG更多功能請(qǐng)參考官方站點(diǎn)

 

感謝閱讀,如果您覺(jué)得本文的內(nèi)容對(duì)您的學(xué)習(xí)有所幫助,您可以點(diǎn)擊右下方的推薦按鈕,您的鼓勵(lì)是我創(chuàng)作的動(dòng)力。

##轉(zhuǎn)載注明出處:http://www.cnblogs.com/wade-xu/p/4761275.html 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于TestNG+Mockito及自動(dòng)裝配注解的Spring MVC集成測(cè)試
VS2010 C#創(chuàng)建ActiveX控件
java結(jié)合testng,利用XML做數(shù)據(jù)源的數(shù)據(jù)驅(qū)動(dòng)示例
Testng之使用@DataProvider注解做數(shù)據(jù)驅(qū)動(dòng)
基于cucumber二次開(kāi)發(fā)的測(cè)試框架整理
TestNG入門(mén)到
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服