使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言

当我们使用 Postman 进行接口测试时,对于简单的不需要处理的接口,直接请求即可,但是对于需要处理的接口,如需要转码、替换值等,则就麻烦一些,一般我们都是先手动把修改好的值拷贝到请求里再进行请求接口,这也是大多数测试人员进行接口测试时这么做的。

其实 Postman 有一个 Pre-request Script 功能,即在接口请求前测试人员可自定义编写函数等对请求参数进行处理,本篇将举例来介绍这个功能。

2、简介

Pre-request Script

1、Pre-request Script 是集合中请求发送之前需要执行的代码片段。

2、使用场景为请求参数中包含一个随机数或者请求 header 中包括一个时间戳,或者你的请求参数需要加密等。

3、示例

以作者所在的项目为示例

如图所示,是一个 POST 请求的接口,接口特点为请求值必须转码才可以请求成功,如果不转码直接请求的话,就没有返回值,从图中可以看到请求后的返回值是空白的。

那么手动操作时,选中需要转码的数据,右键选择 Encode URI Component,即可把数据转码完成。

EncodeURIComponent:可把字符串作为 URI 组件进行编码。其返回值 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

转码后,再次请求,可以看到请求成功。

那么不手动转码,该如何使用 Pre-request Script ?

Postman 提供了 encodeURIComponent 函数,可以直接进行转码。

那么参数值该如何定位到,使用 pm.request.url.query 的 get 方法来获取指定的参数值。

之后将原有的参数与值删除,再添加参数与转换后的值就可以了。

console.log 方法为控制台打印日志。

代码如下:

python 复制代码
encodevalue = encodeURIComponent(pm.request.url.query.get("p")) // 将参数值进行转换
console.log("p="+encodevalue)

pm.request.url.query.remove("p") // 删除请求参数和值
console.log(pm.request.url.query)

pm.request.url.query.add("p="+encodevalue) // 添加参数与转换后的参数值
console.log(pm.request.url.query)

将已转码的参数值更改回原值后,再次执行此接口。

不需要手动转码,就可以执行成功了。

控制台打印的信息。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
007张三丰5 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
小欣加油6 小时前
leetcode56 合并区间
c++·算法·leetcode·职场和发展
漫友也是程序猿9 小时前
ddraw.dll异常排查:旧游戏图形接口、兼容性模式和DirectX组件检查
程序人生·游戏·电脑
8Qi89 小时前
LeetCode 516:最长回文子序列
算法·leetcode·职场和发展·动态规划
测试199815 小时前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
我的xiaodoujiao16 小时前
API 接口自动化测试详细图文教程学习系列25--继续处理testCase中的数据
python·学习·测试工具·pytest
漫友也是程序猿16 小时前
wintrust.dll 异常排查:签名校验、安装包验证和系统信任链
程序人生·电脑·信任链
moeyui70516 小时前
LeetCode 380:Insert Delete GetRandom O(1) 题解和一些延伸
算法·leetcode·职场和发展
郝学胜-神的一滴16 小时前
Python 高级编程 019:类变量与实例变量彻底解析
开发语言·python·程序人生·软件构建