博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RestAssured接口自动化从入门到框架搭建-12-请求数据的设置(二) Headers&Cookies
阅读量:4302 次
发布时间:2019-05-27

本文共 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/

你可能感兴趣的文章
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>
开源SoC整理
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>