软件测试 | Header cookie处理

134 阅读1分钟

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()
   }
}

搜索微信公众号:TestingStudio霍格沃兹的干货都很硬核