91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TestNG使用總結

發布時間:2020-02-27 08:17:03 來源:網絡 閱讀:2676 作者:一劍圍城 欄目:移動開發

        TestNG是誕生于JUnit3和JUnit4之間的一個測試框架,雖然在JUnit4之前誕生,但被認為更先進,NG是Next Generation的意思。TestNG擁有諸多新特性,以及消除了JUnit中的許多限制,更適合于大型項目的測試。


常用注解:

@BeforeSuiteThe annotated method will be run before all tests in this suite have run. 
@AfterSuiteThe annotated method will be run after all tests in this suite have run. 
@BeforeClassThe annotated method will be run before the first test method in the current class is invoked. 
@AfterClassThe annotated method will be run after all the test methods in the current class have been run. 
@BeforeTestThe annotated method will be run before any test method belonging to the classes inside the <test> tag is run.
@AfterTestThe annotated method will be run after all the test methods belonging to the classes inside the <test> tag have run. 
@BeforeMethodThe annotated method will be run before each test method. 
@AfterMethodThe annotated method will be run after each test method.
@BeforeGroupsThe list of groups that this configuration method will run before. This method is guaranteed to run shortly before the first test method that belongs to any of these groups is invoked. 
@AfterGroupsThe list of groups that this configuration method will run after. This method is guaranteed to run shortly after the last test method that belongs to any of these groups is invoked. 
@TestA Test Case


注解使用示例:

public class OrderTest {
    @BeforeSuite
    public void testBeforeSuite(){System.out.println("BeforeSuite");}
    @AfterSuite
    public void testAfterSuite(){System.out.println("AfterSuite");}
    @BeforeTest
    public void testBeforeTest(){System.out.println("BeforeTest");}
    @AfterTest
    public void testAfterTest(){System.out.println("AfterTest");}
    @BeforeClass
    public void testBeforeClass(){System.out.println("BeforeClass");}
    @AfterClass
    public void testAfterClass(){System.out.println("AfterClass");}
    @BeforeGroups(groups = "data")
    public void testBeforeGroups(){System.out.println("BeforeGroups");}
    @AfterGroups(groups = "data")
    public void testAfterGroups(){System.out.println("AfterGroups");}
    @BeforeMethod
    public void testBeforeMethod(){System.out.println("BeforeMethod");}
    @AfterMethod
    public void testAfterMethod(){System.out.println("AfterMethod");}
    @Test(groups = "data")
    public void testGroup1(){System.out.println("1、Belong to group data");}
    @Test(groups = "data")
    public void testGroup2(){System.out.println("2、Belong to group data");}
}

執行順序:
    BeforeSuite
    BeforeTest
    BeforeClass
    BeforeGroups
    BeforeMethod
    1、Belong to group data
    AfterMethod
    BeforeMethod
    2、Belong to group data
    AfterMethod
    AfterGroups
    AfterClass
    AfterTest
    AfterSuite
    
備注:
    其中BeforeGroups和AfterGroups會在指定組的所有方法執行之前和之后執行。



超時測試:

@Test(timeOut = 1000)


忽略測試:

@Test(enabled = false)


異常測試:

@Test(expectedExceptions = ArrayIndexOutOfBoundsException.class)


用例分組:

@Test(groups = {"group_one", "group_two"})


依賴測試:

@Test

public void testOne(){}

@Test(dependsOnMethods = "testOne")

public void testTwo(){}


多次執行以及使用線程池:

@Test(invocationCount = 5, threadPoolSize = 5)

用例執行5次,使用5個線程并行執行



套件測試

需要借助XML文件,運行時需要指定XML才能正確執行

//測試整個NewTest以及OldTest中的testThird方法
<suite name="Method Suit" verbose="1">
    <test name="includedGroupsInAPackage">
        <classes>
            <class name="com.me.hello.NewTest"/>
            <class name="com.me.hello.OldTest">
                <methods>
                    <include name="testThird"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

//測試指定兩個package里的所有測試類
<test name="tttt">
<packages>
    <package name="com.me.hello"/>
    <package name="com.me.chat"/>
</packages>
</test>
        
//指定package中的分組測試,以及指定class測試。
<suite name="Group Suit" verbose="10">
<test name="tttt">
    <groups>
        <run>
            <include name="slow"/>//分組測試
            <include name="fast"/>
        </run>
    </groups>
    <packages>
        <!--<package name="com.me.good"/>-->
        <!--<package name="com.me.hello"/>-->
        <package name="com.me.*"/>
    </packages>
</test>
<test name="next test">
    <classes>
        <class name="com.me.hello.NewTest"/>//指定類
    </classes>
</test>
</suite>

備注:
   IDEA的套件測試需要在Run-Edit Configurations中配置運行條件以及指定xml文件,或者直接命令行執行。



參數化測試:

1、通過xml文件(基本數據類型)

2、代碼中使用@DataProvider(復雜數據類型)

@DataProvider(name = "getData")
public Object[][] getDataFromFile(){
    return new Object[][]{{1,2},{3,4},{5,6}};
}

@Test(dataProvider = "getData")
public void testCalc(int a, int e){
    Assert.assertEquals(a+1, e);
}

1、聲明一個方法給定名字,返回數組數據。
2、Test方法根據DataProvider方法返回的數據,設定參數列表。
3、按照參數列表順序操作參數。


斷言

       TestNG的斷言總體和JUnit相似,大體上區別只是把提示消息位置放在后面而已。


總結:

      相比JUnit,TestNG的參數化測試,依賴測試,分組測試都更方便使用。另外套件測試使用XML和代碼實現數據和測試邏輯的分離,并且方便定制分類邏輯更復雜的測試。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

手游| 昌邑市| 信宜市| 南充市| 诏安县| 涞水县| 阿拉善右旗| 太仆寺旗| 平利县| 岑巩县| 客服| 孟村| 共和县| 拜泉县| 昌吉市| 深圳市| 承德市| 合山市| 津南区| 台东县| 泊头市| 内乡县| 贵德县| 紫金县| 顺昌县| 即墨市| 同心县| 澜沧| 凌云县| 丘北县| 沭阳县| 芜湖县| 昆明市| 贵德县| 阿勒泰市| 南通市| 沧源| 海阳市| 喜德县| 烟台市| 花莲县|