rest-assured用法
导入:
import static io.restassured.RestAssured.*;
使用
请求四要素:请求方式,请求路径,请求参数,请求头
在什么场景下(请求头,请求参数,cookies等等)
- given()
-
- 执行什么操作(get,post)
- when()
- then()
-
- 判断结果(显示日志,返回接口的结果)
(1)发送一个GET请求
(2)发送一个POST请求
表单参数
JSON参数
文件上传
(2)获取响应结果
then().extract().response()
- 提取响应体中的特定字段: 使用
.extract().path("jsonPathExpression")
可以提取响应体中的特定字段。例如,如果你想提取 JSON 响应中的user_id
字段,可以这样做:
int userId = given()
.when()
.get("/api/endpoint");
then()
.statusCode(200)
.extract()
.path("data.user_id");
- 将整个响应体作为字符串提取: 使用
.extract().asString()
可以将整个响应体作为字符串提取出来。这在你想要获取响应体中的多个值时非常有用:
String responseBody = given()
.when()
.get("/api/endpoint");
then()
.statusCode(200)
.extract()
.asString();
// 之后可以使用 JsonPath 从 responseBody 中提取需要的数据
- 提取完整的响应对象: 使用
.extract().response()
可以将整个响应对象提取出来,这样你就可以访问响应的任何部分,包括状态码、头部和 cookies:
Response response = given()
.when()
.get("/api/endpoint");
then()
.statusCode(200)
.extract()
.response();
// 之后可以使用 response 对象的各个方法来获取需要的数据
- 获取所有的 Headers: 使用
response.getHeaders()
可以获取所有的响应头信息:
Map<String, String> headers = response.getHeaders();
- 获取特定的 Header 值: 使用
response.getHeader("headerName")
可以获取特定的响应头值:
String contentType = response.getHeader("Content-Type");
- 获取 Status Line: 使用
response.getStatusLine()
可以获取 HTTP 状态行的信息:
String statusLine = response.getStatusLine();
- 获取 Status Code: 使用
response.getStatusCode()
可以获取 HTTP 状态码:
int statusCode = response.getStatusCode();
- 获取 Cookies: 使用
response.getCookies()
可以获取所有的 cookies,或者使用response.getCookie("cookieName")
获取特定的 cookie 值:
Map<String, String> cookies = response.getCookies();
String sessionToken = response.getCookie("SESSION_TOKEN");