本文共 2684 字,大约阅读时间需要 8 分钟。
接着学习Rest Assured这个接口测试工具,本篇继续介绍在请求过程中的一些请求数据的设置。例如本篇学习的path parameters和Headers和Cookies的设置。
1.Path Parameters
还是介绍如何设置在请求的Url中的参数使用。这个path parameters就是先用变量去表示key,然后通过函数pathParam()给key设置value,最后在请求的url中,用变量名称拼接在整个完整的请求URL。
下面是一个模板方法。
/** * path parameters type1 */ @Test public void testPataParametersType1() { given(). pathParam("type","json"). pathParam("section","Domains"). when(). get("https://xxxx/api/{type}/{section}/"). then(). statusCode(400); }
上面是一个模板方法,不能跑起来,我们找一个实际例子来测试下。
@Test public void testPataParametersType1() { given(). pathParam("section","posts"). pathParam("id","3"). when(). get("http://jsonplaceholder.typicode.com/{section}/{id}"). then(). statusCode(200); }
这个case是可以运行通过的,大家可以参考下,对照浏览器和代码中get中的地址,就明白pathParam()是一个什么作用的函数。
2.在请求中设置Cookies
接下来看看如何在请求中设置Cookies。下面是一个模板,没有实际可以跑的例子。
/* * set cookies */ @Test public void testSetCookiesInRequest() { given(). cookie("__utmt","1"). when(). get("http://xxxxx.com/globalweather.asmx?op=GetCitiesByCountry"). then(). statusCode(404); }
3.设置多个Cookies
下面给一个模板,也是不太好找例子实战。
/* * set mul cookies */ @Test public void testMulCookiesInRequest() { // 设置多个value given().cookie("key", "va1", "va2"); // 会创建两个cookies, key=va1, key=va2 // 通过创建cookies对象设置详细cookies信息 Cookie cookie = new Cookie.Builder("some_cookie", "some_value") .setSecured(true).setComment("some comment").build(); given().cookie(cookie).when().get("/xxx/xxx").then().assertThat().body(equalTo("xxx")); // 设置多个详细cookies Cookie cookie1 = new Cookie.Builder("some_cookie", "some_value") .setSecured(true).setComment("some comment").build(); Cookie cookie2 = new Cookie.Builder("some_cookie", "some_value") .setSecured(true).setComment("some comment").build(); Cookies cookies = new Cookies(cookie1, cookie2); given().cookies(cookies).when().get("xxx/xx").then().body(equalTo("xxx")); }
4.设置Headers
在请求头部分,我们可以设置一个header也可以设置多个header,或者使用Headers来设置多个Key和value.
/** * set Header or Headers */ @Test public void testSetHeader() { given(). header("key", "value"). header("key2","va1","va2"). headers("k1","va1","k2","va2","k3","va3"). when(). get("http://xxx/xxx"). then(). statusCode(404); }
5.设置Content Type
在请求中也可以设置Content Type
/** * set content type */ @Test public void testSetContentType() { given(). contentType(ContentType.JSON). contentType("applicatipn/json;charset=UTF-8"). when(). get("http://xxx/xxx"). then(). statusCode(404); }
例如
@Test public void testSetContentType() { given(). contentType(ContentType.JSON). contentType("applicatipn/json;charset=UTF-8"). when(). get("http://jsonplaceholder.typicode.com/photos"). then(). statusCode(200); }
转载地址:http://ynows.baihongyu.com/