关于请求数据的设置,前面我们零散地学习到了请求头的设置,这一篇,我们主要来看看GET和POST两种请求数据的设置,在Rest Assured中如何使用。
1.GET请求数据设置之queryParam()方法
前提是GET请求,请求参数都是拼接在Url后面,如果你看到类似这样请求 http://localhost:8080/api?user=tom&pwd=123456
那么你就第一选择使用queryParam()这个方法来封装数据。
/**
* get请求参数数据设置:queryParam
*/
@Test
public void testQueryParam() {
given().
queryParam("userId", "3").
when().
get("http://jsonplaceholder.typicode.com/posts/").
then().
statusCode(200);
}
测试通过,你可以手工查询下这个请求,在浏览器中。http://jsonplaceholder.typicode.com/posts?userId=3
如果请求有多个参数,可以这么写。
@Test
public void testQueryParam() {
given().
queryParam("userId", "3").
queryParam(key2, key2-value).
queryParam(key3, key3-value).
when().
get("http://jsonplaceholder.typicode.com/posts/").
then().
statusCode(200);
}
哪怕参数有10个以上,你也可以采用这个queryParam()方法。
2.POST请求参数设置之formParam()
看完GET请求,我们立马来看一个POST请求。
/**
* POST请求参数设置:formParam()
*/
@Test
public void testFormParam() {
given().
formParam("name", "Tom1").
formParam("job", "Tester").
when().
get("https://reqres.in/api/users").
then().
statusCode(200).log().all();
}
我这边运行是可以通过,这个接口返回数据我们这个case不关心,只关心formParm()方法,看方法名称也看出来了,就是表单参数提交,对不对,一般POST请求参数都是以表单提交。如果有多个参数,可以写多个formParam()方法,里面参数是左边是key,右边是value.
3.POST和GET方法通用的请求数据设置之param()--推荐方式
我前面文章介绍过一个post请求的代码是这样的。
@Test
public void testAPostMethod() {
given().
param("name", "Anthony123").
param("job", "tester").
header("Content-Type", "text/html").
when().
post("https://reqres.in/api/users").
then().statusCode(201).log().all();
}
不管是get还是post请求,参数设置都可以使用param(key,value)这个方法,而且推荐这样写。因为,如果是get请求,这个时候param()会被当做queryParam()对待,如果是post请求,param()会被当做formParam()对待。
4.多参数多值的情况下param()的使用
有时候我们不止有多个参数,而且其中部分参数有些是一个值,有些是空值,有些值是一个集合。下面代码来演示下,这个代码运行不了,我们主要看param()方法的使用
/**
* 请求参数设置:多参数
*/
@Test
public void testMulParams() {
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
given().
param("key1", "val1","val2","val3").
param("B").
param("C", list).
when().
get("https://xxxx/api/users").
then().
statusCode(400);
}
下一篇继续介绍请求参数的设置,这一篇只是基础的部分。