我们再回顾一下使用 Rest-Assured 发送 HTTP 请求的步骤:
- 使用 RestAssured 类生成 RequestSpecification 对象
- 设置待测 Restful API 服务器地址 (URL)
- 指定向服务器发送请求的方法类型(get 或 post)
- 向服务器发送 Request 请求
- 获取服务器响应报文,对报文进行响应处理,例如设置检查点进行测试。
这次我们使用敏捷项目中测试案例的描述方式来编写我们的测试案例。假设我们的使用场景是这样的:
用户故事: 查看服务器响应的报文头 场景大纲: 获取目标服务器的服务器类型、返回内容类型和内容长度
- 假如 Restful API 测试服务器搭建完毕正常运行
- 当测试人员向服务器获取一篇文章信息
- 那么服务器返回的报文头部包含了服务器响应信息的服务器类型、内容类型
我们使用浏览器再向目标服务器 http://qatools.cn/demon/api/books 发送一个 http GET 请求,查看服务器返回的报文头。发现里面有很多信息。我们可以任意选取报文头里面的数据进行验证。
服务器返回响应信息头部如图 5-1 HTTP 响应信息头
图 5-1 HTTP 响应信息头
测试代码编写如下:
public void testHTTPHeaders()
{
//设置请求的基准地址
RestAssured.baseURI = "http://qatools.cn/demon/api";
//获取HTTP 请求对象
RequestSpecification httpRequest = RestAssured.given();
//获取响应报文
Response response = httpRequest.get("/books");
// 从服务器返回的报文头中获取 Content-Type并进行验证
String contentType = response.header("Content-Type");
Assert.assertEquals(contentType /* 获得的报文头中内容类型实际值 */, "application/json; charset=utf-8" /*预期服务器返回的报文头中内容类型值*/);
// 获取并验证报文头中包含的服务器类型
String serverType = response.header("Server");
Assert.assertEquals(serverType /*报文头中实际服务器类型 */, "nginx/1.8.1" /* 预期报文头中的服务器类型 */);
}
GitBook: Rest-Assured实战 Rest API
微信公众号: