【接口测试】Postman(三)-变量与集合
变量与集合
在Postman中,我们进行接口测试一般是以集合为单位,而在日常应用中,我们会经常使用到变量。下面我们将介绍一下变量和集合的一些用法。
文章目录导航:
一、变量
变量这个概念相信大家都不陌生,因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量,主要包括以下四类:
Global(全局)
Environment(环境)
Local(本地)
Data(数据)
在本文中我们只介绍全局变量与环境变量的用法
1、环境变量
环境变量可以理解为局部变量,他会随着环境的变化而变化。
(1)创建环境变量
我们可以点击右上角的小眼睛,管理环境变量

然后我们点击add

然后输入环境变量的信息完成后Ctrl S保存即可

(2)管理环境变量
在添加环境变量界面,我们除了可以在创建环境变量,我们还能共享、复制、导出、删除以及导入环境变量JSON文件等操作。这里就不详细介绍了,操作比较简单。
(3)选择与编辑环境变量
既然我们创建了环境变量,那么我们就要选择使用他,选择非常简单点击我们小眼睛旁边的下拉框选中所创建的环境变量即可

至于编辑环境变量,进入界面方式与创建一样,只不过add变成了edit,只不过你需要先选择你需要编辑的环境变量

2、全局变量
全局变量顾名思义是可以在所有范围内被引用的一种变量
(1)管理全局变量
全局变量的管理其实与环境变量一样,都是点击小眼睛后点击add或edit


二、集合
Postman中集合是用来存放多个请求。这里意思比较通俗易懂,我们不详细介绍了,直接进入正题吧。
我们为什么要使用集合呢?
- 将请求保存到集合中,能够结构化保存我们的请求,方便后面重复使用
- 方便我们构成集成测试套件,类似与我们Junit中的Test Suite
- 方便使用脚本在接口之间传递数据,构建实际用例的流
1、创建集合
选中侧边栏【Collections】,这里根据版本不同可能长得不一样,不过基本都是在左边

点击+或者点击new都可(点击new的话需要选择Collections),然后输入集合名即可

2、保存请求到集合
这个其实非常的简单,我们在需要保存的请求点击保存按钮或者直接Ctrl S会弹出保存弹窗,在下面选择要保存到的集合就可以了

或者我们可以直接右键集合,然后点击添加请求也可以

同时我们还可以再左侧History中保存之前运行过的请求到集合

我们还可以右键集合对集合进行复制

3、分享集合
这里我们有两种分享方式,一种需要登录账号通过在线方式分享,一种通过导出集合文件进行分享,这里我们只介绍后者
右键需要分享的集合,选择Export

然后直接导出就行

至于导入的话,在我们创建的时候,new旁边有个import,对,没错,就是点击它
三、集合执行
既然我们有了集合,我们就需要去执行他,接下来我们介绍一下集合执行的一些操作
1、集合运行参数
我们可以点击集合进入集合,然后点击Run(这里版本不同操作不一样,有的版本直接右键集合就可以Run)


我们来介绍一下一些参数吧
首先左侧是选择我们需要执行的脚本,这个不解释了
主要我们看右边
- Environment:就是选择我们需要使用的环境变量
- lterations:迭代次数,也就是我们集合运行的次数
- Delay:设置发送每个请求之间的间隔,这个比较好理解
- Data:这里是为集合提供运行的数据文件,一般用来设置文件参数化用。
2、使用数据文件
这里我们编写一个示例
请求方式:POST
Body:
| KEY | VALUE |
|---|---|
| foo | {{value}} |
{{value}}表示引用了value这个变量
然后我们在Tests中编写脚本设置检查点验证我们的请求
var jsonData = JSON.parse(responseBody);
tests['Response has datan value'] = jsonData.form.foo === data.value
然后我们参数化的文件可以采用CSV或者JSON文件,在这里我们采用CSV,CSV文件如下
path,value
post,'1'
post,'2'
post,'3'
post,'4'
大家在创建CSV文件的时候,如果带有中文需要注意一下我们字符集的问题
直接在runner界面选择文件即可

选择之后可以手动设置格式以及预览文件


然后我们运行,全部通过(记得勾选save response)


3、创建工作流
在集合当中,各个请求的执行顺序是可以控制的,在这里我们采用setNextRequest()方法来控制下一个执行的请求,我们直接上样例:
首先我们先创建四个请求:
https://postman-echo.com/get?foo1=bar1
另外三个参数分别为foo2=bar2;foo3=bar3;foo4-bar4

接下来我们在Request 1请求的Tests编写代码:
postman.setNextRequest("Request 4")
执行集合,我们会发现运行完Request 1后直接运行Request 4而不会运行中间的两个请求

当然在现实运用中我们肯定不会这么简单的,我们经常会使用循环和分支语句来控制工作流,例如在本例中,我们可以进行略微修改一下:
if (responseCode.code === 401) {
postman.setNextRequest("Request 4");
}
当请求报401的时候,我们跳过中间两个请求,如果请求为200,那么正常执行。
以上就是这节的全部内容,如有错误,还请各位指正!
【接口测试】Postman(三)-变量与集合的更多相关文章
- 接口测试postman深度挖掘应用③--postman终结篇
上一章节我们介绍了postman的变量测试以及导入数据测试基本上技术性的东西已经差不过了,这篇文章再系统性的介绍一下. 一.下载 官网:https://www.postman.com 1.选择需要下载 ...
- 接口测试-postman,JMeter与LoadRunner比较
postman是一个谷歌出的轻量级的专门测试接口的小工具~(PS:postman包括两种:Chrome浏览器插件和postman客户端,我使用的是postman客户端)虽然不如firefox的post ...
- postman Variables变量的详解与应用
变量 变量类型(按照作用域划分) 全局变量(全局环境里面的变量) 集合变量(请求集合里声明的变量) 自定义环境变量 数据变量(在runner时文件变量) 本地变量 变量权重类型 全局变量 < 集 ...
- C#基础第三天-作业-集合-冒泡排序-模拟名片
1.名片:用两种集合(ArrayList/List<>)去输出余下信息.身份证号码,电话号码,性别,姓名,身高,年龄,体重.需求:根据 姓名 去查询某一行数据.如果集合中不存在提示(“自定 ...
- 关于a和b不用第三变量交换值的问题
今天在如鹏网(不是发广告)上看到一道题,题目很难就不说了,但是老师给的提示的题目却让我感兴趣,就是标题的内容. 题目是把a与b做异或比较从而实现不通过第三变量来交换a和b的数值答案是这样的: a=a^ ...
- S2 深入.NET和C#编程 三:使用集合组织相关数据
三:使用集合组织相关数据 集合概念: ArrayList:非常类似于数组,也有人称他为数组的列表.ArrayList可以动态维护,数组的容量是固定的 和数组类似,ArrayList中存储的是数据成为元 ...
- JAVA交换两个变量的值-(不使用第三变量)
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析——灰蓝
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较
1. 用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式. SoapUI的组织方式如下图,最上层是WorkSpace,每个 ...
随机推荐
- jQ-DOM属性的操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Lombok首字母小写,第二个字母大写,jackson反序列化失败
记一次接口调用字段映射失败问题排查 在写接口的时候遇到一个很神奇的问题,编写一个post接口,在使用包装类接收body的时候发现有个字段映射不上.代码如下 @RestController public ...
- 学习httprunner遇到的问题记录
今天研究httprunner遇到了几个问题 1.问题1: 最新的版本4.3.0已经舍弃了locusts,har2case这两个东西 导致运行的时候,出现har2case不是内部命令 一开始以为是没有配 ...
- python中socket使用UDP协议简单实现服务端与客户端通信
UDP为不可靠传输,也就是发送方不关心对方是否收到消息,一般用于聊天软件.但现在的聊天软件虽然使用的是UDP协议,但已从代码层面上解决了丢失信息的问题. 下面使用python代码简单实现了服务端与客户 ...
- Proxmox VE镜像分析与定制
Proxmox VE(Proxmox Virtual Environment,简称PVE)是一个开源的服务器虚拟化环境Linux发行版,基于Debian,使用给予Ubuntu的定制内核.相比于其他虚拟 ...
- github打不开或者打开慢方法
github最近打不开,很久之前遇到过,但是忘记怎么解决了,查找相关资料后,今天记录在此,以备不时之需. 记住3个关键网址 github网址查询:The world's leading softwar ...
- MySQL之 InnoDB 内存结构
从MySQL 5.5版本开始默认 使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛 下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分. ...
- SSM整合的所有配置(配置文件)
mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE co ...
- 用 Gaussian Process 建模 state-action 空间相关性,加速 Multi-Fidelity RL
目录 全文快读 1 intro 3 背景 4 method 4.1 model-based 算法:GP-VI-MFRL 4.2 model-free 算法:GPQ-MFRL 5 experiment ...
- Cron表达式介绍与示例
1. 概念介绍 Cron表达式是一个具有时间含义的字符串,字符串以5~6个空格隔开,分为6~7个域,格式为X X X X X X X.其中X是一个域的占位符.最后一个代表年份的域非必须,可省略.单 ...