上一篇文章说明了Postman中关于Cookie的相关操作,还是以Cookie举例,来说明下一在Postman中测试关联接口。

1、关联接口说明

例如:有可能存在部分任务场景,或者部分API接口必须登录后才能访问。

设想一下,现在后端基本都是热更新框架,每次热更新都会清除Session,边开发边测试时,每次热更新后,都要先访问一下登录接口,再访问其他接口,有点繁琐。

下面我们使用电商一个项目进行演示,在登录接口完成登录之后,通过查看购物车接口获取该用户购物车中的信息。

2、测试关联接口实现步骤

那么按照一个标准的流程来说,我们应先去调用登陆接口,获取到对应的Cookie之后存入环境变量中,再来进行后续查看购物车的请求。

步骤1:创建登陆请求并执行成功。

登陆接口地址:http://www.testingedu.com.cn:8000/index.php?m=Home&c=User&a=do_login&t=0.3508523582926

步骤2:编写登陆请求中的Tests脚本。

目的:把上面登陆请求的响应头中,目标Cookie内容存储到环境变量中,供后续接口使用。

// 获取相应体全部信息
// var jsonData = pm.response.json();
// console.log(jsonData) // 获取响应头的全部信息,获得的是一个数组
// Server: nginx/1.14.1
// Date: Sat, 20 Feb 2021 09:50:16 GMT
// Content-Type: text/html; charset=UTF-8
// Transfer-Encoding: chunked
// Connection: keep-alive
// X-Powered-By: PHP/7.0.33
// Set-Cookie: is_mobile=0; expires=Sat, 20-Feb-2021 10:50:16 GMT; Max-Age=3600; path=/
// Set-Cookie: PHPSESSID=54i0ralr3p7473himrr1tblpr0; path=/
// Set-Cookie: user_id=8; path=/
// Set-Cookie: is_distribut=0; path=/
// Set-Cookie: uname=summer; path=/
// Set-Cookie: cn=0; expires=Sat, 20-Feb-2021 08:50:16 GMT; Max-Age=0; path=/
// Expires: Thu, 19 Nov 1981 08:52:00 GMT
// Cache-Control: no-store, no-cache, must-revalidate
// Pragma: no-cache
const headerData = pm.response.headers;
console.log(headerData) // 转换成json格式数据
// var jsonData = JSON.stringify(headerData);
// 转换成数组对象
// var result = JSON.parse(jsonData); // 定义一个存储cookie的变量
var cookieData = ""; // 遍历响应头信息
for(var i in headerData.members){
// 删选出Set-Cookie开头的响应头信息
if(headerData.members[i].key=='Set-Cookie'){
// 调试代码
console.log(headerData.members[i].value) // 如果是PHPSESSID的cookie信息
if(headerData.members[i].value.substring(0, 9) == "PHPSESSID"){
//console.log(true);
// 存储目标cookie
cookieData = headerData.members[i].value;
break;
}
}
} // 获取到PHPSESSID=akf4tpeu6satce3bft0giq9uj5
var cookievalue = cookieData.split(";")[0];
console.log(cookievalue) // 以上信息就是为例获取必要的数据,然后需要把这些数据存入环境变量中
// 把关于登陆认证的cookie信息存储到环境变量中
pm.environment.set("cookie", cookievalue);

执行完登陆接口后,环境变量中会添加一个Cookie变量。

总结:意思就是把登陆成功后所返回的Cookie信息存储到环境变量中,提供给后续的接口使用。

步骤3:调用查看购物车接口

请求头中的Cookie配置,去调用环境变量中的Cookie信息。

查看购物车接口地址:http://www.testingedu.com.cn:8000/index.php?m=Home&c=Cart&a=header_cart_list

总结

Postman对关联接口的测试步骤如下:

  1. 先获取前一个接口的返回json数据。
  2. 提取json数据中需要的数据,并保存到环境变量/全局变量中。
  3. 在下一个接口中,使用{{变量名}}的方式,将环境变量/全局变量写入到下一个接口的请求中。

提示:我们也可以在Pre-request Script中写一个测试集脚本,每次使用接口前,先调用一次登录接口进行登陆,然后将cookie信息存入环境变量(也可以不存,因为Postman会自动存储),这样我们可以直接调用后续接口了。

3、补充:Postman中将请求转换成代码

有些时候,我们在Postman进行请求的测试后,需要转换成代码,此时我们可以直接通过Code将Postman 实现的接口,转为任意的语言的代码,如:Java语言的OkHttp或者Python语言的Requests库等代码。

例如:我们选择一个Post请求,点击Save按钮下面的Code

然后会弹出如下界面:

例如我们在左侧选择Python-Requests,在右侧面板中,会把该测试接口用requests库的代码展示出来。

之后可以把以上内容编辑到测试框架中。

参考:https://www.cnblogs.com/Mkkk/p/14399523.html

『政善治』Postman工具 — 11、Postman中对Cookie的操作的更多相关文章

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

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

  2. 『政善治』Postman工具 — 1、Postman介绍与安装

    目录 一.Postman介绍 二.Postman下载与安装 1.Postman下载 2.Postman安装 3.为什么要注册Postman账号 一.Postman介绍 Postman是一款非常流行的H ...

  3. 『政善治』Postman工具 — 2、Postman主界面详细介绍

    目录 1.Postman菜单栏 (1)File 菜单 (2)Edit 菜单 (3)View 菜单 (4)Help 菜单 2.Postman工具栏 3.Postman工具栏中的系统设置 4.Postma ...

  4. 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)

    目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...

  5. 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用

    目录 1.Pre-request Script介绍 2.常用SNIPPETS(片段)说明 (1)获取变量脚本: (2)设置变量脚本: (3)清空变量脚本: (4)Send a request代码片段 ...

  6. 『政善治』Postman工具 — 12、Postman中实现数据驱动

    目录 1.什么是数据驱动? 2.测试集说明 3.创建请求与准备数据文件 (1)新增学院结果文档内容如下 (2)编写数据文件 (3)在Postman中创建请求 4.实现Postman中的数据驱动 步骤1 ...

  7. 『政善治』Postman工具 — 13、Postman接口测试综合练习

    目录 (一)项目接口文档 1.鉴权接口 2.注册接口 3.登录接口 4.用户信息接口 5.注销接口 (二)网站上手动验证 (三)Postman测试实现 1.准备工作 (1)创建一个Collection ...

  8. 『政善治』Postman工具 — 14、NewMan工具的使用详解

    目录 1.NewMan工具的介绍 2.NewMan的安装 (1)安装 (2)验证NewMan环境: (3)NewMan卸载命令 3.NewMan执行Postman测试集 (1)导出collection ...

  9. 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍

    目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...

随机推荐

  1. 基于开源的GOCW和Directshow.net,实现摄像头预览、采集、录像等操作

    本文基于开源的GOCW和Directshow.net,实现图像采集等操作.最为关键的部分在于可以实现摄像头的控制,同时关于视频采集进行了实现. 具体的内容请关注首发于51CTO的课程<基于Csh ...

  2. elasticsearch 7.7 配置文件:elasticsearch.yml

    # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticse ...

  3. 免费开源的客服系统 Linux 服务器环境安装部署过程

    最近因为项目需要,要找一款在线客服系统集成在 APP 中使用,而且涉及到生意开单,客服系统必须稳定可靠.另外甲方要求,必须支持 Linux 服务器环境. 我们以 Ubuntu 18.04 为例把安装部 ...

  4. mysql大于当前时间置顶并按升序排序,小于当前时间的置尾并按降序排序

    现在用id来代替时间这样好测试 看一下测试表数据 执行按需求规则排序的sql SELECT * FROM number_generator ORDER BY id < 16 , IF(id &l ...

  5. MySQL-索引简介

    一.索引是什么? 索引是本质是一种数据结构,索引的目的在于提高查询效率.[排好序的快速查找的数据结构] 每个节点包含索引键值和一个指向对应数据记录物理地址的指针. 索引往往以索引文件的形式存储在磁盘. ...

  6. python工业互联网应用实战13—基于selenium的功能测试

    本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...

  7. 002-Java的标识符和关键字

    目录 一.标识符 1.什么是标识符 2.标识符的命名规则 3.标识符的命名规范 二.关键字 1.什么是关键字 2.Java中的关键字 一.标识符 1.什么是标识符   标识符就是程序员自己规定的代表一 ...

  8. Json文件转换为Excel文件!涉及读文件,时间戳转化,写文档

    一. 思路 今天接到个小任务,让把json文件转换成excel文件,按照列展开. 思路:既然json已经都已经是现成的,那直接将json文件做读操作,在通过不同的key,找到对应的信息,在存到单元格中 ...

  9. 幻读:听说有人认为我是被MVCC干掉的

    @ 目录 前言 系列文章 一.我是谁? 二.为什么有人会认为我是被MVCC干掉的 三.我真的是被MVCC解决的? 四.再聊当前读.快照读 当前读 快照读 五.告诉你们吧!当前读的情况下我是被next- ...

  10. Java中常见方法详解合集(方法的定义及语法结构)

    Java的方法定义 1.方法的定义 方法是控制对象的动作行为方式与准则,在Java中方法位于类体下又有另一种含义. 普通的方法在类中称为"实例方法",因为方法的调用需要创建对象,而 ...