本文共 1827 字,大约阅读时间需要 6 分钟。
这篇开始来学习下响应中的校验,断言场景,主要有状态码,响应Header断言,响应content type断言和响应正文内容断言。其中响应正文内容断言是最难也是最复杂,接口的响应数据就在正文。
1.状态码断言
/** * 状态码断言 */ @Test public void testStatusInResponse() { given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusCode(200).log().all(); given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusLine("HTTP/1.1 200 OK"); given().get("http://jsonplaceholder.typicode.com/photos/").then().assertThat().statusLine(containsString("OK")); }
上面第一个用例是状态码断言,是不是200,然后打印响应内容。第二个用例是响应消息中的响应起始行内容行断言,这个在HTTP协议基础系列文章有介绍过。第三个用例是在响应起始行内容行中部分字符串包含断言。
2.响应header断言
响应头断言场景
上面红圈可以分别一个一个Header去断言,可以可以多个Headers一起断言。
/** * header断言 */ @Test public void testResponseHeader() { given(). get("http://jsonplaceholder.typicode.com/photos"). then(). assertThat().header("X-Powered-By","Express"); given(). get("http://jsonplaceholder.typicode.com/photos"). then(). assertThat().headers("Vary","Origin, Accept-Encoding","Content-Type", containsString("json")); }
上面两个case,第一个是只断言一个Header,key是X-Powered-By,value是Express。
第二个用例是断言了两个Header,第一个是Vary和它的value是不是Origin, Accept-Encoding,第二个Content-Type中包含字符串json。
3.响应Content Type断言
Content Type常见的三种HTML XML和JSON,这个我们在基本功能文章中介绍过,这里复习一下。
/** * Content-type断言 */ @Test public void testContentTypeInResponse() { given(). get("http://jsonplaceholder.typicode.com/photos"). then(). assertThat().contentType(ContentType.JSON); }
4.正文文本断言
有时候我们需要对正文文本断言,可以是全部的text,也可以是其中一部分text,下面来举例一个全部text,有一个这个响应内容是xml,text内容不多,我们就直接全部text去断言。
/** * 响应正文 文本断言 */ @Test public void testBodyTextInResponse() { String responseString = get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/").asString(); given().get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/02/"). then().assertThat().body(equalTo(responseString)); }
转载地址:http://fnows.baihongyu.com/