Rest-Assured 实战 REST API 自动化测试之验证返回状态

版权声明:时牧敏捷社区 https://blog.csdn.net/winteroak/article/details/80353037

我们先向一个 http 网站发送一个 GET 请求,然后查看返回的报文头。作者本人使用的是 Chrome 浏览器,我们先使用【F12】或【CTL+SHIFT+I】打开开发者工具,我们在浏览器栏输入:

http://toolsqa.cn/demon/api/books

返回的 HTTP 响应报文头如下图:

HTTP服务器响应码图 4-1 HTTP 服务器响应状态码

报文头部的信息太多,我们边讲边解释用到的报文头的含义。由于我们要验证返回状态,因此我们要取报文头中** Status Code:** 项的值。返的状态码是** 200。我们看一下状态码 200** 含义。

HTTP 状态码:200

状态码英文名称为 "OK"。请求成功,一般用于 GET 与 POST 请求。

我们使用 Rest-Assured 编写 Java 代码自动化测试脚本进行测试时,返回的 HTTP 状态码应该是 200。

如果返回的状态码是 304,是因为本地缓存跟服务器数据一致就没有更新。我们使用【CTL+SHIFT+DEL】清除本地缓存后再使用同样的 URL 地址向服务器发起请求。

看一下 HTTP 状态码 304 是什么含义。

HTTP 状态码:304

状态码英文名称为 “Not Modified”。其含义是:“未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。”

我们的测试用例应该这样描述:

案例名称:服务器响应状态 200

案例步骤:使用 GET 方法向服务器发送请求,请求地址为: http://toolsqa.cn/demon/api/book/1

预期结果:服务器返回响应信息,响应状态码应该为 200

测试代码编写如下:

@Testpublic void testServerReponseStatusCode()    {      
        // 设置Restful WebService 服务地址
        RestAssured.baseURI = " http://toolsqa.cn/demon/api";        
        // 获取HttpRequest 请求对象
        RequestSpecification httpRequest = RestAssured.given();        
        // 获取HTTP服务器响应信息
        Response response = httpRequest.get("/book/1");       
         //获取响应信息中的状态码
        int statusCode = response.getStatusCode();        
        // 验证响应信息中的状态码是否为200,如果是200则测试通过,如果不是200则抛出断言失败异常信息。
        Assert.assertEquals(statusCode /*服务器响应的实际值*/, 200 /*事先确定的期望值*/, "返回状态码正确");
}

这就是我们一个完整的测试案例并对这个测试案例编写了接口自动化测试代码。


GITBOOK:

Rest-Assured 实战 REST API 自动化测试

公众号:


阅读更多

扫码向博主提问

时间牧人

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 企业敏捷
  • 敏捷测试
  • DevOps
  • 自动化测试
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页