目录
- 请求参数简介
- 请求参数构造
- RESTAssured 的基本使用
课程目标
- 掌握请求参数的概念。
- 掌握如何设置请求参数。
- 了解 RESTAssured 的基本结构与基本的使用方法。
思考
同样都是“参数”,这两者之间有什么区别?
请求参数简介
- 接口请求中携带的,会在路径之后使用
?
代表客户端向服务端传递的参数。 - 使用
key=value
形式拼接在 URL 中。 - 如果有多个,则使用
&
分隔
应用场景
- 条件查询接口。
- 鉴权接口。
- 其他接口(具体依据接口文档)。
携带请求参数的方式
- 方式一:直接拼接在 URL 中:
?username=Hogwarts&id=666
- 方式二:通过
given()
的queryParam()
传递:-
queryParam()
:单个URL参数。 -
queryParams()
:多个URL参数
-
package com.ceshiren.params;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.when;
public class TestParams {
@Test
void getURLReq(){
when()
.get("https://httpbin.ceshiren.com/get?name=ad&scholl=hogwarts")
.then()
.log().all();
}
@Test
void getQueryParamReq(){
given().log().all()
.queryParam("name", "ad")
.queryParam("school", "hogwarts")
.when()
.get("https://httpbin.ceshiren.com/get")
.then()
.log().all();
}
@Test
void getQueryParamsReq(){
// 构造请求参数
HashMap<String, Object> query = new HashMap<>();
query.put("name", "ad");
query.put("school", "hogwarts");
// 在请求中携带参数信息
given().log().all()
.queryParams(query)
.when()
.get("https://httpbin.ceshiren.com/get")
.then()
.log().all();
}
@Test
void postQueryParamsReq(){
// 构造请求参数
HashMap<String, Object> query = new HashMap<>();
query.put("name", "ad");
query.put("school", "hogwarts");
// 在请求中携带参数信息
given().log().all()
.queryParams(query)
.when()
.post("https://httpbin.ceshiren.com/post")
.then()
.log().all();
}
}
接口测试框架基本使用
title 向女友表白
actor 彭于晏 as p
participant 环球影城 as h
actor 女神 as n
group 准备
p → h: 去环球影城准备表白现场
end
group 执行
h → n: 开始表白
end
group 反馈
n → n: 同意
n ->x n: 或者拒绝
end
title RESTAssured 三剑客
participant “given()” as p
participant “when()” as h
participant “then()” as n
group 准备
p → h: 设置测试预设
end
group 执行
h → n: 所要执行的请求动作
end
group 反馈
n → n: 解析结果、断言成功
n ->x n: 解析结果、断言失败
end
示例代码
given()
// given 设置测试预设
.header(“Hello”, “Hogwarts”)
.when()
// when 所要执行的请求动作
.get(“https://httpbin.ceshiren.com/get”)
.then()
// then 解析结果、断言
.log().all(); // 打印全部响应信息(响应头、响应体、状态等等)
准备数据:given()
- 打印请求全部日志:
log().all()
- URL请求参数:
queryParam()
- 设置 Content-Type(后面具体学习):
contentType()
- 添加 header(后面具体学习):
headers()
- 添加cookie(后面具体学习):
cookie()
- 请求体(后面具体学习):
body()
- 其他:…
发送请求:when()
- get请求:
get()
。 - post请求:
post()
。 - put请求:
put()
。 - delete请求:
delete()
。
验证返回结果:then()
- 打印全部日志:
log().all()
- 验证响应(后面具体学习):
body()
- 验证响应状态码(后面具体学习):
statusCode()
- 其他(后面具体学习):…