在 REST Assured 的官方 GitHub 上有这样一句简短的描述: Java DSL for easy testing of REST services 简约的 REST 服务测试 Java DSL
REST Assured 官方的 README 第一句话对进行了一个优点的概述,总的意思表达的就是简单好用。那么 REST Assured 有哪些优点,又该如何使用呢?
用 Java 做接口自动化测试首选 REST Assured,具体原因如下:
- 开源
-
- 简约的接口测试 DSL
-
- 支持 xml json 的结构化解析
-
- 支持 xpath jsonpath gpath 等多种解析方式
-
- 对 spring 的支持比较全面
添加 maven 依赖
- 对 spring 的支持比较全面
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>4.0.0</version>
<scope>test</scope>
</dependency>
我们对接口进行测试一般由三步曲:传参、发请求、响应结果断言,REST Assured给我们提供了清晰的三步曲,以given、when、then的结构来实现,基本写法如下:
//使用参数
given().
param("key1", "value1").
param("key2", "value2").
when().
post("/somewhere").
then().
body(containsString("OK"))
//使用X-Path (XML only)
given().
params("firstName", "John", "lastName", "Doe").
when().
post("/greetMe").
then().
body(hasXPath("/greeting/firstName[text()='John']"))
请求体body如下
{
"password": "elcrD28ZSLLtR0VLs/jERA\u003d\u003d\n",
"grant_type": "password",
"scope": "server",
"userType": 1,
"username": "xxx"
}
Request Header 如下:
Headers: Authorization=Basic c3lzdGVtxxxRlbQ==
Host=47.103.xxx.133
Accept=*/*
Content-Type=application/json; charset=ISO-8859-1