接口工具postman02-功能使用

server/2024/9/18 12:32:23/ 标签: 开发语言, postman, 功能测试, 集成测试

2 功能

2.1 断言
  • Check if response body contains a string (检查响应主体是否包含字符串)
pm.test("响应正文包含", function () {pm.expect(pm.response.text()).to.include("add-successful");
});
  • Check if response body is equal to a string (检查响应主体是否等于一个字符串)
// 响应正文为:add-successful
pm.test("响应正文等于", function () {pm.response.to.have.body("successful");
});// 断言失败,报错如下
// 响应正文等于 | AssertionError: expected response body to equal 'successful' but got 'add-successful'
  • responseTime小于
pm.test("响应时间小于", function () {pm.expect(pm.response.responseTime).to.be.below(200);
});
  • js中常见的pm.response
// 返回的响应对象
pm.response // 返回的头信息
pm.response.headers// 返回的状态码
pm.response.code// 返回的文本内容
pm.response.text// 返回的响应时间
pm.response.responseTime// 返回的json串
pm.response.json()
2.2 上传文件

使用案例woniusales的批次导入功能,抓包数据如下:

  • headers
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqCWG6rRC5rcNBGUr
  • body

image-20210927110132265

因为content-type的类型是multipart/form-data,所以请求数据的传输类型应该为form-data:

image-20210927110314376

接下来就可以开始填写body的数据了:

image-20210927110639297

在发送请求之前,最好检查一下cookie是否有值:

image-20210927110714364

可以看到cookie是有值的,但是这次不用他了,我们手动在header中添加一下cookie:

image-20210927110930134

现在就可以点击发送了:

image-20210927111405163

2.3 全局变量

全局变量:作用于所有的测试集,host域名

环境变量:作用于某个测试集

文件变量:postman外部创建一个csv或者txt的文件,变量放进去

设置变量的位置在postman的右上角有一个眼睛图标,点击后弹出的窗口可以设置全局变量:

image-20210927115544318

点击globals区域右侧的edit,弹出窗口如下:

image-20210927115917225

点击save保存全局变量的值,接下来就是引用了,引用规则为{{全局变量名字}}:

image-20210927120116820

2.4 环境变量

作用域生效为某个测试集

进入设置环境变量的页面:

image-20210927120346790

点击上半截的edit只能对当前选择的环境进行更新,如果要添加新的环境变量,需要点击右上角的齿轮:

image-20210927120535246

点击齿轮:

image-20210927120639188

点击add:

image-20210927120750652

image-20210927121039411

请求界面如下:

image-20210927143603158

2.5 参数化

数据驱动:ddt

把数据放到代码的外面,让测试根据数据的走向而走下去

在woniusales上面,准备一个txt的文件,文件中存放新增会员变量,然后我在读取这个txt从而实现脚本的参数化。

  1. 准备txt或者csv文件,用来存放测试数据

image-20210927145925380

  1. 创建一个测试集,添加一个请求add_customer,请求数据如下:

image-20210927150029003

  1. 在测试集右侧点击箭头,打开run界面:

image-20210927150120122

  1. 点击run:

image-20210927150401339

  1. 点击选择文件:

image-20210927150513277

  1. 预览测试数据:

image-20210927150538237

  1. 确认数据没有问题,点击run开始执行:

image-20210927150610819

2.6 接口关联

A接口响应结果中包含B接口的请求数据

login接口的响应结果中有cookie,add_customer中请求头里面需要有一个cookie,这个cookie正好是login响应的那个cookie

构造一个场景:

  • 先发送一个登录的请求
  • 在tests窗口获取登录请求输出的headers
  • 通过js的代码解析出headers中的cookie
  • 把cookie的值存为一个环境变量
  • 再发送一个添加会员的请求,该请求中使用环境变量来获取cookie

接下来我们完成具体工作:

  1. 创建一个login的请求,请求头和请求数据都是一般数据,清除cookie内容,tests的内容如下:
// step1:获取响应的头文件
var login_headers = pm.response.headers;
console.log(login_headers);// step2:把头信息转换为json串
var json_login_headers = JSON.stringify(login_headers);
console.log(json_login_headers);// step3:把json转换数组
var array_login_headers = JSON.parse(json_login_headers);
console.log(array_login_headers);// step4:获取cookie_data,根据下标从0开始
var cookie_data = array_login_headers[1];// step5:获取JSESSIONID,根据key
var jsessionid_data = cookie_data["value"]
console.log(jsessionid_data);// step6:把JSESSIONID设置为环境变量
pm.environment.set("aaaa", jsessionid_data);

控制台的数据如下:

image-20210927161007945

检查环境变量中是否出现aaa变量:

image-20210927161047005

  1. 创建add_customer请求,请求的数据中需要在头文件中添加cookie:

image-20210927161351963


http://www.ppmy.cn/server/7414.html

相关文章

Linux关闭swap分区操作[适用于CDH报警等]

1.查看swap分区挂载路径(没卵用) swapon -s 2.设置配置文件的swap配置 echo “vm.swappiness 0” > /etc/sysctl.conf 3.设置内存中的swap状态。有时候配置文件为0,但集群或服务仍然使用了swap分区,可能原因就是内存没有同步配置 echo “0” > …

Unity面向切面编程

一直说面向AOP(切面)编程,好久直接专门扒出理论、代码学习过。最近因为某些原因😭还得再学学造火箭的技术。 废话不多说,啥是AOP呢?这里我就不班门弄斧了,网上资料一大堆,解释的肯定…

GaussDB数据库SQL系列-聚合函数

背景 在这篇文章中,我们将深入探讨GaussDB数据库中聚合函数的使用和优化。聚合函数是数据库查询中非常重要的工具,它们可以对一组值执行计算并返回单个值。例如,聚合函数可以用来计算平均值、总和、最大值和最小值。 这些功能在数据分析和报…

Geotrust证书 详细介绍

一、Geotrust是什么 Geotrust,作为全球领先的数字证书提供商之一,致力于为企业和个人提供全面的网络安全解决方案。它的证书服务包括但不限于SSL/TLS证书、代码签名证书、电子邮件证书以及文档签名证书等。这些证书的核心作用是加密网络传输的数据&…

Diamond并联机构运动学

公众号“轻松玩转机器人”,欢迎关注。 1、简介 Diamond机构类似于Delta机构,区别在于Diamond机构是两臂并联机构,如下图所示。特别地,当r1r20时,A点与B点重合,E点与F点重合,机构简化为五杆机构…

vue-treeselect 的基本使用

vue-treeselect 的基本使用 1. 效果展示2. 安装 插件3. 引入组件4. 代码 1. 效果展示 2. 安装 插件 vue-treeselect是一个树形的下拉菜单,至于到底有多少节点那就要看你的数据源有多少层了,挺方便的。下面这个这个不用多说吧,下载依赖 npm in…

边缘计算网关有哪些优势?-天拓四方

随着信息化、智能化浪潮的持续推进,计算技术正以前所未有的速度发展,而边缘计算网关作为其中的重要一环,以其独特的优势正在逐步改变我们的生活方式和工作模式。本文将详细解析边缘计算网关的优势。 首先,边缘计算网关具有显著的…

mysql一些语法记录

count: count(*) 符合条件所有行数; count(列名) 符合条件行数排除null; group by select sum(amount) from test where status 1 group by dept having amount > 100 顺序: group by 对 where过滤后的数据进行分组;(分组字段…

货币银行学-货币政策

货币政策 货币政策目标体系货币政策工具如何通过提高短期货币市场利率来缩减货币供应量?法定存款准备金率的作用是什么?它的调整有哪些影响?在货币政策的操作程序中,如何通过公开市场操作影响基础货币?基础货币的构成是…

系统安全及应用

文章目录 系统账号清理密码安全控制命令历史切换用户 系统账号清理 将非登录用户的Shell设为/sbin/nologin锁定长期不适用的账户删除无用的账户锁定账号文件passwd、shadow 注意:所谓的无法登陆是指这个用户无法登录系统而已,并不是代表这个用户不可以…

wps屏幕录制怎么用?分享使用方法!

数字化时代,屏幕录制已成为我们学习、工作和娱乐中不可或缺的一部分。无论是制作教学视频、分享游戏过程,还是录制网络会议,屏幕录制都能帮助我们轻松实现。WPS作为一款功能强大的办公软件,其屏幕录制功能也备受用户青睐。本文将详…

下载好了annaconda,但是在创建一个新的Conda虚拟环境报错

文章目录 问题描述:解决方案1.生成一个配置文件 问题总结 问题描述: ProxyError(MaxRetryError(“HTTPSConnectionPool(host‘repo.anaconda.com’, port443): Max retries exceeded with url: /pkgs/pro/win-64/repodata.json.bz2 (Caused by ProxyErr…

List<int[]>[] g = new ArrayList[n];

在Java中&#xff0c;List<int[]>[] g new ArrayList[n]; 这行代码定义了一个数组 g&#xff0c;该数组的每个元素都是一个 ArrayList<int[]> 类型的对象。这里&#xff0c;n 是预期图中顶点的数量&#xff0c;因此 g 数组的长度是 n。 List<int[]>&#x…

5、JVM-G1详解

G1收集器 -XX:UseG1GC G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征. G1将Java堆划分为多个大小相等的独立区域&#xff08;Region&#xff09;&#xff0c;JVM目标…

让css失效的方法

刚看到一篇文章介绍某个功能提到让css unmount&#xff0c;心想还有这种操作&#xff1f;于是简单搜寻了一下。 一般能想到的&#xff0c;让css失效的方法&#xff0c;无非就是通过覆盖的方式来解决。 比如 原本.dont样式是 .dont{ color: red; } 增加多个优先级或者覆盖…

基于SpringBoot + Vue实现的奖学金管理系统设计与实现+毕业论文+答辩PPT

介绍 角色:管理员、学院负责人、学校负责人、学生 管理员:管理员登录进入高校奖助学金系统的实现可以查看系统首页、个人中心、学生管理、学院负责人管理、学校负责人管理、奖学金类型管理、奖学金申请管理、申请提交管理、系统管理等信息 学院负责人:学院负责人登录系统后&am…

JavaWeb--前端--03Vue入门

Vue入门 1 Vue概述2 快速入门3 Vue指令3.1 v-bind和v-model3.2 v-on3.3 v-if和v-show3.4 v-for3.5 案例 4 生命周期 1 Vue概述 个完整的html页面包括了视图和数据&#xff0c;数据是通过请求 从后台获取的&#xff0c;那么意味着我们需要将后台获取到的数据呈现到页面上&#…

【AR开发示例】实现AR管线巡检

写在前面的话 这是一篇旧文档&#xff0c;代码仓库见 https://gitee.com/tanyunxiu/AR-pipe 本文档是基于超图移动端SDK的AR模块开发的示例&#xff0c;仅供参考&#xff0c;SDK在持续迭代中&#xff0c;相关描述可能有变化。 示例介绍 这是一个使用AR查看墙内管线的基础示…

春藤实业启动SAP S/4HANA Cloud Public Edition项目,与工博科技携手数字化转型之路

3月11日&#xff0c;广东省春藤实业有限公司&#xff08;以下简称“春藤实业”&#xff09;SAP S/4HANA Cloud Public Edition&#xff08;以下简称“SAP ERP公有云”&#xff09;项目正式启动。春藤实业董事长陈董、联络协调项目经理慕总、内部推行项目经理陈总以及工博董事长…

【正则表达式】正则表达式基本语法元素

目录 字符类量词边界匹配逻辑和分组转义和特殊字符验证正则表达式是否能够成功提取数据 字符类 .&#xff1a;匹配除换行符之外的任何单个字符。 [abc]&#xff1a;匹配方括号内的任何字符。 [^abc]&#xff1a;匹配不在方括号内的任何字符。 [a-z]&#xff1a;匹配任何小写字…