当前位置:网站首页>技术分享 | 接口自动化测试如何处理 Header cookie
技术分享 | 接口自动化测试如何处理 Header cookie
2022-08-09 18:34:00 【华为云】
Cookie(复数形态:Cookies)是某些网站为了辨别用户身份而储存在用户本地终端上的数据。在接口测试过程中,如果网站采取了 Cookie 认证的方式,那么发送的请求需要附带 Cookie,才会得到正常的响应的结果。接口自动化测试也是同理,需要在构造接口测试用例时加入 Cookie。
实战练习
对于要对 Cookie 进行验证的网站发起请求,如果在请求过程中没有传递 Cookie 数据,则会返回错误的响应结果。下面的实战以雪球为例。
没有 Cookie 数据的场景
下方示例对雪球的 url 发起一个 get 请求,在请求过程中没有添加 Cookie 数据。
>>> import requests>>>>>> url="https://xueqiu.com/stock/search.json">>> params={"code": "sogo", "size": "3", "page": "1"}>>> header={ "Accept": "application/json",... "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",... }>>> r = requests.get(url, params=params, headers=header)>>> r.text'{"error_description":"遇到错误,请刷新页面或者重新登录帐号后再试",\"error_uri":"/stock/search.json","error_code":"400016"}'>>>由上面的例子可以看到,如果在请求过程中没有添加 Cookie 数据,结果报错,要求登录账号。
添加 Cookie 的场景
接下来,在请求过程中添加正确的 Cookie 信息,即可得到正常的响应信息。
Python 版本
同样访问雪球,通过关键字参数 cookies 传递正确的 Cookie 数据。
>>> import requests>>>>>> url="https://xueqiu.com/stock/search.json">>> params={"code": "sogo", "size": "3", "page": "1"}>>> header={ "Accept": "application/json",... "User-Agent": "Mozilla/5.0 \ (Macintosh; Intel Mac OS X 10_14_6)\ AppleWebKit/537.36 (KHTML, like Gecko) \ Chrome/77.0.3865.90 Safari/537.36",... }>>> cookies={ "xq_a_token":"...省略..." }>>> requests.get(url, params=params, headers=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"}]}'Java 版本
在 Java 中,可以使用 cookie() 方法传入雪球所需要的 Cookie 数据信息。
import static io.restassured.RestAssured.*;public class Requests { public static void main(String[] args) { given(). params("code", "sogo", "size", 3, "page", 1). cookie("xq_a_token", "...省略..."). when(). get("https://xueqiu.com/stock/search.json"). then().statusCode(200).log().all(); }}边栏推荐
- 国产抗新冠口服药每瓶不超300元/ 我国IPv6网络全面建成/ 谷歌入局折叠屏手机...今日更多新鲜事在此...
- 16 张图解 | 淘宝 10年架构演进
- Detailed explanation of VIT transformer
- Start cleaning up the long-term divers in the electronic chart development group again
- 三面(技术 +HR 面试)网易,分享我的面试经验!(已拿 offer)
- 国内市场上的 BI 软件到底有啥区别?
- awk use
- 论文精读:VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
- [免费专栏] Android安全之Android Fragment注入
- 日本著名设计师三宅一生去世:产品曾被国人高价抢 乔布斯也是粉丝
猜你喜欢
随机推荐
2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-RC-u5 树与二分图
Flume (六) --------- Flume 数据流监控
Ng DevUI 周下载量突破1000啦!
论文精读:VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
数据库注入提权总结(一)
单调栈
切绳子【洛谷P1577】【二分】
AWS CodePipeLine deploys ECS across accounts
Codesys结构变量编程应用(STRUCT类型)
uniapp离线推送华为厂商申请流程
An overview of Office 365 Groups and how to create them
Leetcode 739.每日温度 单调栈
qq机器人账号不能发送群消息,被风控
环境:Flink版本:1.15.1jar包:flink-sql-connector-oracle
[] free column Android run Android, her - as command of safety
工大科雅深交所上市:市值45亿 齐承英家族是大股东
Mysql 表结构变更方案对比及分析
C#/VB.NET: Extract text and pictures from PowerPoint document
[免费专栏] Android安全之安卓APK浅析
程序健壮性
![[免费专栏] Android安全之ZIP文件目录遍历漏洞](/img/11/c9116562b0ce57205e73fc442874d3.png)






![[] free column Android dynamic debugging GDB APP of safety](/img/e3/fd096ec64f682348cca9bbab1ec5bb.png)

