Rest Assured (2) -- 响应信息验证

此篇主要详细讲解关于响应信息的验证,主要包括,响应状态码,响应Header,响应Cookie,响应Content Type以及响应体。

一下示例都使用 http://jsonplaceholder.typicode.com/posts 接口进行测试。

1.响应状态码,响应Header,响应Cookie,响应Content Type

下边是一些示例,可以多去试试不同的场景。

    @Test
    public void testResponse() {
        given()
                .queryParam("userId", 1).
        when()
                .get("http://jsonplaceholder.typicode.com/posts").
        then().log().all()
                .statusCode(200)   //状态码
                .headers("Proxy-Connection","keep-alive","Vary","Origin, Accept-Encoding")  // header
                .contentType("application/json")  // content type
                .cookie("__cfduid","d4eb57be1eeb2781c8f1f864b04c6ba741563591180");  //cookie, 只是栗子
    }

2.响应体

响应体的验证基本都使用Hamcrest matchers方法,所以一开始需要引入 import static org.hamcrest.Matchers.*;包。以下是一些最基本的示例,仅供参考,举一反三。

想要了解更多的Hamcrest方法,可以参考:org.hamcrest.Matchers 类的方法签名

    @Test
    public void testResponse() {
        given()
                .queryParam("userId", 1).
        when()
                .get("http://jsonplaceholder.typicode.com/posts").
        then().log().all()
                .statusCode(200)   //状态码
                .body("id[0]", is(1))  //第一个id的值
                .body("id[0]", equalTo(1))  //第一个id的值
                .body("id", hasItem(3))  //所有id值是否包含3
                .body("id", hasItems(1,3))  //所有id值是否包含1和3
                .body("id[0]", lessThan(3))   //第一个id值是否小于3
                .body("id[9]", greaterThan(9))   //第十个id值是否大于9
                .body("body[1]", containsString("est rerum tempore"))   //第二个body的内容是都包含某些内容
                .body("title[2]", allOf(startsWith("ea molestias"), endsWith("ipsa sit aut")))  //第三个title的内容以什么开始并且以什么结束
                .body("title[2]", anyOf(startsWith("ea molestias"), endsWith("123")));  //第三个title的内容以什么开始或者以什么结束
    }

你可能感兴趣的:(Rest Assured (2) -- 响应信息验证)