基於RestAssured實現接口自動化


RestAssured是一款強大的接口自動化框架, 旨在使用方便的DSL,簡化接口自動化。 

下面是基於RestAssured擴展的一個簡單框架示例, 先看看用例的風格:

package testcases

import models.Create_Post
import models.Info_Post
import models.List_Get
import org.testng.annotations.Test
import settings.Givens
import settings.RetryStrategy
import test.TestBase

class TestCase extends TestBase {
    @Delegate
    Givens givens = new Givens() // 可以放到新建的測試基類中

    @Test(description = '創建並獲取用戶', retryAnalyzer = RetryStrategy)
    void testcase_01() {
        use(categories) {
            given_host() // 此處只有一個host,如果有多個host 交互,可以在Givens中新建另一個host, 如 given_host_a()
                .use(Create_Post) { it.name = 'Zack' } //修改請求體里面的值
                .when().call('創建用戶,並校驗接口結果')
                .then().assertThat()
                .statusCode(200)
                .body { assert it.status == 'Awesome!' }
                .extract().store('id', this) { it.id } // 將id 存起來

            given_host()
                .use(List_Get)
                .when().call('獲取所有用戶')
                .then().assertThat()
                .statusCode(200)
                .body {
                    assert it.data.id.contains(get_store('id')) //驗證新建的id存在
                    assert it.data.name.contains('Zack') //驗證第一步的用戶名存在
                }

            given_host()
                .use(Info_Post)
                .queryParams("id": get_store('id')) //獲取ID對應用戶的詳細信息
                .when().call('獲取所有用戶')
                .then().assertThat()
                .statusCode(200)
                .body { assert it.info == 'my name is Zack' }
        }
    }
}

 

下面是此框架用到的一些技術:

  1. RestAssured
  2. TestNG
  3. AllureReport
  4. Groovy(MOP)
  5. Gradle

項目結構:

 

 

 

最終的測試報告示例:

 

 

 

代碼位置 :  https://github.com/ZackZhou/zrest

構建方法如下:

clone 到本地后,命令行運行

  1. ./gradlew User
  2. ./gradlew allureReport
  3. ./gradlew allureServe

 

后期詳細介紹實現方式。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM