1.Header cookie简介
Header cookie是某些网站为了辨别用户身份而储存在用户本地终端上的数据。在接口测试过程中,如果网站采取了cookie认证的方式,那么发送的请求需要附带cookie,才能够得到正常的响应结果。同理,接口自动化测试也需要在构造接口测试用例时附带cookie的相关信息。
2.实战演示
实战演示代码如下(Python版和Java版)。
(1)Python演示代码
用Python编程实现的测试用例对雪球App发起请求,通过关键字参数cookie传递正确的cookie数据,即可得到正常的响应信息。
>>> import requests
>>>
>>> url="https://xueqiu.com/stock/search.json"
>>> params={"code":"sogo","size":"3","page":"1"}
>>> header={ "Accept":"application/json",
... "User-Agent":"Mozilication/json",
(Macintosh; Intel Mac OS X 10_14_6)\
AppleWebKit/537.36 (KHTML,like Gecho)\
Chrome/77.0.3865.90 Safari/537.36",
... }
>>> cookies={
"xq_a_token":"省略..."
}
>>> requests.get(url,
params=params,header=header, cookies=cookies).text
'{"q":"sogo","page":1,"size:3,"stocks":
[{"code":"SOGO","name":"搜狗",
"enName":"","hasexist":"false","flag":null,
"type":0,"stock_id":1029472,"ind_id":0,
"nd_name":"通信业务","ind_color":null,
"_source":"sc_1:1:sogo"}]}'
(2)Java演示代码
用Java编码实现的测试用例对雪球App发起请求,程序中可以使用cookie()方法传入所需要的cookie数据信息。
import static io.restassured.RestAssured.*;
public class Requests{
public static void main(String[] args){
givern().
Parames("code","sogo","size",3,"page",1).
Cookie("xp_a_token","省略...")。
when().
get("https://xueqiu.com/stock/search.json").
then().statusCode(200).log().all()
}
}