当前位置: 首页 > news >正文

PostMan加载三方JS

PostMan加载三方JS

1. 背景

在Postman中做接口测试时,需要使用第三方js包或者自己封装的js工具处理接口参数.此时需要在执行脚本前加载外部js文件
,并且注入运行环境.目前动态执行js文件,可以使用eval或者使用 new Function()方式加载.这里优先考虑第二种方式.
以下介绍四种方法

  • 通过集合参数或者环境变量添加
  • 通过请求响应添加
  • 直接在脚本中添加
  • 通过pm.require添加npm包

动态添加的脚本如果不能访问注入的对象,可以在调用前添加this.xxx试下.

以下测试代码,均在Pre-request Script页签中执行

测试方式为在在Postman中添加一个GET请求

请求地址为https://www.小游戏.地心侠士.com

虽然地址不存在,但是依然可以测试脚本加载情况.

2. 通过参数添加

(function(){
var script = pm.collectionVariables.get("dayjs_code");
(new Function(script))();
console.log("加载dayjs后,获取当前时间: "+ dayjs().format('YYYY-MM-DD HH:mm:ss SSS')) 
})()  

在左下角的Console面板中输出的内容如下:

加载dayjs后,获取当前时间: 2025-12-30 19:14:14 949
GET https://www.小游戏.地心侠士.com

3. 通过网络添加

pm.sendRequest("https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.18/dayjs.min.js",(error,resp)=>{let script = resp.text();(new Function(script))()console.log("加载dayjs后,获取当前时间: "+ dayjs().format('YYYY-MM-DD HH:mm:ss SSS'))    
})

在左下角的Console面板中输出的内容如下:

GET https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.18/dayjs.min.js加载dayjs后,获取当前时间: 2025-12-30 19:05:09 506GET https://www.小游戏.地心侠士.com

4. 使用eval方式加载

以上的示列,都是是通过Function()方式加载.使用eval方式,参考如下

(function(){
var script = pm.collectionVariables.get("dayjs_code");
eval(script)
console.log("使用eval初始脚本,获取当前时间: "+ dayjs().format('YYYY-MM-DD HH:mm:ss SSS')) 
})()

在左下角的Console面板中输出的内容如下:

使用eval初始脚本,获取当前时间: 2025-12-31 09:26:56 460
GET https://www.小游戏.地心侠士.com

5. 直接复制到脚本中

直接下载dayjs.min.js文件,复制到Pre-request Script内容区域.然后再写具体测试脚本

这里需要注意的是,在调用是需要使用this.dayjs(),不能直接使用dayjs(),可能和postman执行环境没有window对象有关

console.log("加载dayjs后,获取当前时间: "+this.dayjs().format('YYYY-MM-DD HH:mm:ss SSS')) 

在左下角的Console面板中输出的内容如下:

加载dayjs后,获取当前时间: 2025-12-30 19:21:46 064
GET https://www.小游戏.地心侠士.com

6. 使用pm.require添加npm包

在高级版本中,或者直接在官网云环境可以是使用

const dayjs = pm.require('npm:dayjs@1.11.19');
console.log("加载dayjs后,获取当前时间: "+ dayjs().format('YYYY-MM-DD HH:mm:ss SSS'))

在左下角的Console面板中输出的内容如下:

加载dayjs后,获取当前时间: 2025-12-30 19:33:07 825
GET https://www.小游戏.地心侠士.com

7. 总结及扩展

总之,在postman的沙箱环境中,加载三方JS主要是两个路径

  • 中JS动态执行能力,使用eval(scriptContent)new Function(scriptContent)
  • 使用Postman内置的包管理能力 pm.require('npm:dayjs@1.11.19'); 可能会有版本要求

内置Web Crypto objects对象,比如Crypto CryptoKey SubtleCrypto crypto property

比如,在Postman脚本中,需要实现AES加密代码如下:

var ciphertext = CryptoJS.AES.encrypt('小游戏地心侠士', '微信').toString();
console.log("AES加密内容 "+ ciphertext)

在左下角的Console面板中输出的内容如下:

AES加密内容  U2FsdGVkX1/N/cvcwUkO1F+V66VM/XFfkBnAJUPk20TpE5Db2+H+lSa2xOx1yAeI
GET https://www.小游戏.地心侠士.com

PostMan内置对象参考地址如下:
https://www.cnblogs.com/yfrs/p/19425003/postman_inner_object

原文地址:https://mp.weixin.qq.com/s/EO5lJEskAWGq1DotIVx6Ig

http://www.jsqmd.com/news/170511/

相关文章:

  • 2025年终GEO公司推荐:主流服务商横向测评与5家高口碑榜单深度解析 - 十大品牌推荐
  • 突破平台界限:在macOS上畅玩热门动漫游戏的终极方案
  • 盲水印终极指南:DWT-DCT-SVD技术实现抗攻击图片版权保护
  • 高效B站视频下载神器bilidown:构建你的私人视频库
  • 2025年北京活动策划公司排行榜,新测评精选活动策划机构推荐 - myqiye
  • 2025实战指南:Jetson平台动作识别从零到精通的5大突破
  • 2025年北京公司团建策划公司排行榜,推荐一下实力强的公司团建策划品牌企业 - 工业品牌热点
  • 2025年石墨匀质板厂家权威推荐榜单:固态静芯板/硅墨烯免拆模板/石墨门芯板/石墨一体板/石墨复合保温板源头厂家精选。 - 品牌推荐官
  • Unity游戏开发终极选择:TypeScript vs C深度对比指南
  • Mac CLI终极指南:5个必备命令快速优化你的macOS系统
  • BERT-Large模型实战避坑指南:从零基础到生产部署的最佳实践
  • HTML表格展示TensorFlow训练指标变化趋势
  • 2025年靠谱的日本旅行机场大巴权威口碑榜 - 品牌宣传支持者
  • 2025年全封闭管教学校排名,全封闭式管教学校选哪家好全解析 - 工业品网
  • Bilidown技术解析:B站多媒体内容离线管理解决方案
  • 基于微信小程序的体育用品羽毛球购物商城
  • Qwen-Image多环境部署实战:从零配置到高效图像生成
  • 前端 + AI 进阶 Day 15:项目整合、部署与开源
  • 复习知识,防止变傻第一集
  • Linux动漫游戏启动器Yaagl:一站式管理你的二次元游戏世界
  • Flipper Zero硬件故障快速诊断与专业修复指南
  • 基于微信小程序的中小型企业员工电子档案借阅管理系统的设计与实现php
  • 《Vue3-uniapp-template》终极指南:5步实现跨平台应用快速开发
  • 2025年终防护网厂家推荐:生产能力与资质认证双维度实测TOP5排名。 - 十大品牌推荐
  • EinkBro浏览器全面配置指南:为电子墨水屏量身打造的阅读利器
  • 深入Tart日志系统:虚拟机监控与故障排查实战指南
  • Godot开源RPG框架:零基础构建你的专属游戏世界
  • 快速掌握Mycat2:数据库中间件的完整使用指南
  • Whisper-CTranslate2:革命性的高性能语音识别与翻译解决方案
  • USB 设备的远程唤醒