testng筆記

1、常用的註解

使用testng需要在pom文件中引入的依賴

<dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.11</version>
            <scope>compile</scope>
        </dependency>
  1. @Test 表示這是一個測試方法
  2. beforeSuit:測試套件在beforeClass之前執行
    beforeClass:這是在類執行之前執行
    beforeMethod:這是在方法執行之前運行的
    Test:這是第一個測試方法
    afterMethod:這是在方法執行之後運行的
    beforeMethod:這是在方法執行之前運行的
    Test這是第二個測試方法
    afterMethod:這是在方法執行之後運行的
    afterClass:這是在類執行之後執行
    afterSuit:測試套件在afterClass之後執行
    在這裏插入圖片描述

2、套件測試testsuit

1、最重要創建一個xml文件名字隨意,最後運行的時候運行的是這個文件,文件就是簡單的xml文件;

<?xml version="1.0" encoding="utf-8" ?>
<!--執行的是suit中的內容,並且是按照test的順序-->
<suite name="test">
    <test name="login">
<!--        執行的類按照順序執行,並且其中包含同一個SuitConfig-->
        <classes>
            <class name ="com.course.testng.suit.SuitConfig"/>
            <class name ="com.course.testng.suit.LoginTest"/>
        </classes>
    </test>
    <test name="pay">
        <classes>
            <class name ="com.course.testng.suit.SuitConfig"/>
            <class name ="com.course.testng.suit.PayTest"/>
        </classes>
    </test>
</suite>

SuitConfig代碼

public class SuitConfig {
    @BeforeSuite
    public void beforeSuit(){
        System.out.println("before Suit運行了");
    }
    @AfterSuite
    public void afterSuit(){
        System.out.println("after Suit運行了");
    }
    @BeforeTest
    public void beforeTest(){
        System.out.println("beforeTest執行");
    }
    @AfterTest
    public void afterTest(){
        System.out.println("afterTest執行");
    }
}

兩外兩個就是一個@test的方法
執行結果
在這裏插入圖片描述

3、忽略測試ignore

在這裏插入圖片描述

4、testng組測試

1、把方法級別分組測試,只針對某些相同分組方法生效。例子如圖
public class GroupsOnMethoud {

 public class GroupsOnMethoud {

    @Test(**groups = "server"**)
    public void test1(){
        System.out.println("這是服務端組的測試方111");
    }

    @Test(groups = "server")
    public void test2(){
        System.out.println("這是服務端組的測試方2222");
    }

    @Test(groups = "client")
    public void test3(){
        System.out.println("這是客戶端組的測試方333");
    }

    **@BeforeGroups("server")**
    public void beforeGrouponserver(){
        System.out.println("在服務端組運行之前運行");
    }

    @AfterGroups("server")
    public void afterGrouponserver(){
        System.out.println("在服務端組運行之後運行");
    }
}

在服務端組運行之前運行
這是服務端組的測試方111
這是服務端組的測試方2222
在服務端組運行之後運行
這是客戶端組的測試方333

2、類分組測試,把類文件分組測試
創建幾個類在類中標註是哪些分組@Test(groups = “stu”)
然後創建xml文件控制執行哪些分組也就是這些分組下的類

**@Test(groups = "stu")**
public class GroupOnclass1 {
    public void stu1(){
        System.out.println("GroupOnclass1中的stu1");
    }
    public void stu2(){
        System.out.println("GroupOnclass1中的stu2");
    }

}
**@Test(groups = "teacher")**
public class GroupOnclass3 {
    public void teacher1(){
        System.out.println("GroupOnclass3中的teacher1");
    }
    public void teacher2(){
        System.out.println("GroupOnclass3中的teacher2");
    }
}
**<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >**
<suite name="suitname">
    <test name="onlyRunStu">
        **<groups>
            <run>
                <include name="stu"/>
            </run>
        </groups>**
        <classes>
            <class name="com.course.testng.groups.GroupOnclass1" />
            <class name="com.course.testng.groups.GroupOnclass2" />
            <class name="com.course.testng.groups.GroupOnclass3" />
        </classes>

    </test>
</suite>

5、testng異常測試

什麼時候用到異常測試?就是當我們的期望結果是一個異常的時候
在這裏插入圖片描述
6、依賴測試
如果依賴的方法異常了則該方法就沒辦法執行了
在這裏插入圖片描述

7、傳參測試

1、首先創建一個方法使用參數,然後創建xml文件爲參數傳值
在這裏插入圖片描述
在這裏插入圖片描述
2、使用dataaprovider屬性傳值如圖
在這裏插入圖片描述
dataaprovider支持根據方法來進行傳參
在這裏插入圖片描述

8、多線程測試

1、使用註解的方式實現,如果參數不與其他方法關聯建議使用,如果關聯不建議使用

public class MulitThreadAnnotion {
    //invocationCount是線程數,其中默認的線程池是1;threadPoolSize是指定的線程池數
    @Test(invocationCount = 10,threadPoolSize = 3)
    public void test1(){
        System.out.println("線程執行");
        System.out.printf("線程id:%s%n",Thread.currentThread().getId());
    }
}

2、使用xml實現多線程
首先創建需要測試的方法,然後創建控制線程的xml文件
在這裏插入圖片描述
在這裏插入圖片描述

9、超時測試timeout

響應超過了設置的時間就會拋出異常
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章