此篇主要详细讲解关于响应信息的验证,主要包括,响应状态码,响应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的内容以什么开始或者以什么结束
}
网友评论