jck28-lucio-接口响应断言

目录

  • 接口断言介绍
  • 接口断言方式介绍
  • 响应状态码断言

课程目标

  1. 掌握什么是接口断言。
  2. 了解接口断言的多种方式。
  3. 掌握如何对响应状态码完成断言。

思考

这两段代码是完整的接口自动化测试代码吗?
…省略…
when().get(“https://httpbin.ceshiren.com/get?name=ad&scholl=hogwarts”)

…省略…

定义接口的 url 和拼接在 url 中的请求参数

url = “https://httpbin.ceshiren.com/get?get_key=get_value

发出 GET 请求,r 接收接口响应

r = requests.get(url)

接口响应断言

  1. 验证响应状态码。
  2. 验证响应体返回字段信息是否符合业务需求。
  3. 验证响应体字段的数据类型、数据格式。

为什么需要接口断言

  1. 确保接口返回的数据符合预期。
  2. 检测接口是否正常运行。
  3. 提高测试效率

思考

这里的code,是响应状态码吗?

响应状态码简介

《常见的接口协议》

响应报文

< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length: 11390
< Connection: keep-alive

响应断言方式

类型 断言方法
状态码 then().statusCode()
响应头 then().header()
内容 then().body()

image

响应状态码断言

  • then().statusCode()
import static io.restassured.RestAssured.given;
import org.junit.jupiter.api.Test;

public class TestAssertionStatusCode {
    @Test
    void testStatusCode(){
        given()
        .when()
                .get("https://httpbin.ceshiren.com/get")  // 发起GET请求
        .then()
                .log().all()  // 打印响应结果
                .statusCode(200);  // 响应状态码断言
    }

}