什么是 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. h2database BTree 设计实现与查询优化思考

    h2database 是使用Java 编写的开源数据库,兼容ANSI-SQL89. 即实现了常规基于 BTree 的存储引擎,又支持日志结构存储引擎.功能非常丰富(死锁检测机制.事务特性.MVCC.运 ...

  2. Taurus .Net Core 微服务开源框架:Admin 插件【3】 - 指标统计管理

    前言: 继上篇:Taurus .Net Core 微服务开源框架:Admin 插件[2] - 系统环境信息管理 本篇继续介绍下一个内容: 1.系统指标节点:Metric - API 界面 界面图如下: ...

  3. Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法

    Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法 摘要 前几天验证了 线程组内的-监听器 jp@gc 相关的组件 以及验证了 server-age ...

  4. Go 匿名返回值的坑——这道题据说 90% 的同学都答错了!

    今天分享的内容比较基础,准确地说是 Go 的语言特性--命名.匿名返回值. 先看下面的例子,猜测会输出什么? package main func main() { println(A()) print ...

  5. win10使用Docker Desktop启动mysql报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306:

    问题描述 今天上班用wind10电脑启动Docker Desktop使用MySQL,突然间报了一个错,错误如下: Error response from daemon: Ports are not a ...

  6. Oracle批量处理SQL

    批量更新且更新字段数字需要递增 示例: DECLARE n int; -- 定义变量 BEGIN n:=1000010; --为n 赋值 FOR i IN (SELECT AGENCY.ID FROM ...

  7. Spring-Bean实例化三种的方式

    Bean实例化三种方式 无参构造实例化(重点) 工厂静态方法实例化 工厂实例方法实例化 工厂静态方法实例化 1.编写接口 package com.my; public interface UserDa ...

  8. 2022-1-10 控件学习1 TextBlock、Lable、TextBox

    TextBlock LineBreak:在指定位置手动换行和<br/>类似 TextTrimming: CharacterEllipsis没有足够空间时显示...,WordEllpsis以 ...

  9. 2021-7-6 vue和axios使用get请求api实例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  10. ABC274 题解

    A 题目:给定 \(A,B\) 输出 \({B}\over{A}\) 保留 \(3\) 位小数. 简答题,和A+B problem 一样,除一除,保留一下小数. B 题目:给定一个 \(n\) 行 \ ...