什么是 Cookie ?

Cookie是一种在网站之间传递的小型文本文件,用于存储用户的个人信息和偏好设置。当您访问一个网站时,网站会将Cookie存储在您的浏览器中,并在您下次访问该网站时读取该Cookie。这样,网站可以记住您的登录状态、购物车内容以及其他个性化设置。

在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证码会比较复杂,比如有些图形验证码,难以通过接口的方式去处理;再者,每次请求接口前如果都需要先去登录一次,这样不仅效率低,还耗费资源。

有些网站是使用cookie辨别用户身份的,此时我们便可以先登录一次,拿到登录成功后的cookie,后续请求时在请求头中加入该cookie,便可保持登录状态直接请求。

cookie绕过登录其实是登录状态保持,而不是真的不需要登录。

cookie 管理

项目地址:https://www.eolink.com/apikit

1、快速编辑 cookie

我们调试时会经常试用cookie值,除了可以在请求头中直接输入cookie外,也可以通过cookie管理工具把cookie值保存起来。后续测试时可针对不同的域名调用不用的cookie值。

  1. 选择某个文档进入测试TAB,点击最右侧的cookie按钮,即可打开cookie管理工具。

  1. 在cookie管理工具中,可输入需要存储cookie的域名及编辑对应的cookie值。

2、基于函数自定义 cookie

当您想对cookie的值进行自定义时,可以通过 Eolink 的函数做到;

//设置cookie值
eo.cookieStorage.set("hostname",[]) //获取 cookie 存储对象,返回为 object
eo.cookieStorage.all() //获取某个域名的 cookie 存储,传参为 hostname:域名,返回为 array
eo.cookieStorage.get("hostname") //删除某个域名下的cookie字段
eo.cookieStorage.remove("hostname")

️注意:hostname示例格式:www.eolink.com,前面不需要加http://或https://

3、相同域名不同步骤间 cookie 传递

  1. 如下图所示,步骤一与步骤二的域名相同,在Eolink中,步骤一API的返回头会返回set-cookie,步骤二的请求头会自动带上这个cookie。

  1. 测试后如下图报告所示,步骤一响应头返回set-cookie,步骤二继承步骤一的cookie信息

4、需要改变 cookie 的值

在步骤一的后置脚本中通过eo.cookieStorage.set()改变cookie的值,以下为具体示例:

var tmp_host="域名" //需要改变cookie值的域名

eo.cookieStorage.set(tmp_host,["123456"])//修改tmp_host的cookie为123456

  1. 在步骤一的后置脚本中修改cookie的值:

  1. 步骤一修改后,步骤二中继承的是修改后的cookie值,如下图报告所示:

5、需要获取域名和 cookie 的值

可以用eo.cookieStorage.all()函数来获取当前步骤的域名以及cookie值,如下图所示:用eo.cookieStorage.all()获取域名,并输出cookie的值

6、获取某个域名下的 cookie 存储

可以用 eo.cookieStorage.get()函数获取指定域名下的cookie值,如下图所示:

测试后,报告中输出该域名的 cookie 值:

7、 删除某个域名下的 cookie 字段

可以使用eo.cookieStorage.remove("域名")函数清除某个域名的cookie值,如下图所示,在步骤一的后置脚本中清除域名的cookie:

在步骤2中不会再带上步骤一请求返回的cookie

Eolink Apikit = API 管理 + Mock + 自动化测试 + 异常监控 + 团队协作,是一个强大的跨平台(Windows、Mac、Linux、Browsers...)的 API 开发测试工具,支持 REST、Websocket、gRPC、TCP、UDP、SOAP等协议,结合 API 设计、文档管理、自动化测试、监控、研发管理和团队协作的一站式 API 生产平台。

【接口测试】如何在 Eolink Apilkit 中使用 cookie ?的更多相关文章

  1. 在ASP.NET Core 中使用Cookie中间件

    在ASP.NET Core 中使用Cookie中间件 ASP.NET Core 提供了Cookie中间件来序列化用户主题到一个加密的Cookie中并且在后来的请求中校验这个Cookie,再现用户并且分 ...

  2. postman中添加cookie信息

    日常测试中有部分接口请求需要有登录信息,否则调用报错,那如何在postman中添加用户的cookie呢,主要分2个步骤: 第一步: Charles抓包获取Headers信息,拷贝Headers中的Co ...

  3. 在ASP.NET Core 中使用Cookie中间件 (.net core 1.x适用)

    在ASP.NET Core 中使用Cookie中间件 ASP.NET Core 提供了Cookie中间件来序列化用户主题到一个加密的Cookie中并且在后来的请求中校验这个Cookie,再现用户并且分 ...

  4. 如何在Spring Boot中使用Cookies

    一. 导读 本文大纲 读取HTTP Cookie 设置HTTP Cookie 读取所有Cookie[] 为Cookie设置过期时间 Https与Cookie HttpOnly Cookie 删除Coo ...

  5. 『政善治』Postman工具 — 10、Postman中对Cookie的操作

    目录 1.往常的Cookie处理方式 2.Postman中的Cookie管理机制 3.自定义Cookie管理内容 在接口测试中,某些接口的调用,需要带入已有Cookie,比如有些接口需要登陆后才能访问 ...

  6. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

  7. Javascript中关于cookie的那些事儿

    Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...

  8. 如何在Linux服务器中隐藏PHP版本

    通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此, ...

  9. 在iframe中使用cookie需要注意

    cookie的使用早已不新鲜了,但是最近在做项目时还是被坑了一把. 那么接下来让我们来看一下这个"坑"是个什么情况! 前提: 1.现在有两个页面A.html, B.html,同时, ...

  10. [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger

    如何在 Laravel 项目中使用 Swagger http://swagger.io/getting-started/ 安装依赖 swagger-php composer require zirco ...

随机推荐

  1. 计算机网络那些事之 MTU 篇 pt.2

    哈喽大家好,我是咸鱼 在<计算机网络那些事之 MTU 篇 >中,咸鱼跟大家介绍了 MTU 是指数据链路层能够传输的最大数据帧的大小 如果发送的数据大于 MTU,则就会进行分片操作(Frag ...

  2. 2023-06-29:redis中什么是热点Key?该如何解决?

    2023-06-29:redis中什么是热点Key?该如何解决? 答案2023-06-29: 在Redis中,经常被访问的key被称为热点key. 产生原因和危害 原因 热点key问题产生的原因可以归 ...

  3. iOS CoreData总结

    相关主要类: NSManagedObjectContext 管理对象,上下文,持久性存储模型对象,处理数据与应用的交互 NSManagedObjectModel 被管理的数据模型,数据结构 NSPer ...

  4. 零基础如何自学C#?

    前言 本文来源于知乎的一个提问,提问的是一个大一软件工程专业的学生,他想要自学C#但是不知道该怎么去学,这让他感到很迷茫,希望有人能给他一些建议和提供一些学习方向. 个人建议 确认目标:自学C#首先你 ...

  5. C语言基础-结构体基础

    文章目录 前言 1.结构体的创建 1.1 第一种方法 1.2 第二种方法 1.3 全局结构体和局部结构体的声明 2.结构体的使用 2.1 局部结构体的声明 & 初始化 2.1.1 指针方法 2 ...

  6. Ubuntu 20.04使用 VNC远程桌面连接避坑指南

    Ubuntu 20.04使用 VNC远程桌面连接避坑指南 自从开始使用Ubuntu 20.04搭建深度学习服务器,就想到使用VNC远程桌面连接使用.可是之前一直使用的是Ubuntu18.04,心里想着 ...

  7. 【ElasticSearch】大数据量情况下的前缀、中缀实时搜索方案

    简述 业务开发中经常会遇到这样一种情况,用户在搜索框输入时要实时展示搜索相关的结果.要实现这个场景常用的方案有Completion Suggester.search_as_you_type.那么这两种 ...

  8. 树形DP + 换根DP

    树形DP--基础 P1352 没有上司的舞会 设 \(f[i][0/1]\) 表示第 \(i\) 个人不去或者去. 如果第 \(i\) 个人没去,那么下属可去可不去,所以 \(f[i][0] = \s ...

  9. sql-lab通关

    page1-less1-22 联合查询 第一关 发现是有回显的,且传入的参数是通过'1'包裹的,所以我们的payload,如下 测试列数 ?id=1' order by 3 --+ //超过第一条语句 ...

  10. Django创建数据库时设置字符集

    在控制台输入一下命令: create database 数据库名 charset=utf8;