温馨提示×

在Linux上Postman如何使用脚本

小樊
50
2025-09-26 22:34:26
栏目: 智能运维

在Linux上使用Postman脚本的完整流程

一、准备工作:安装必要工具

在Linux系统上使用Postman脚本,需先安装以下工具:

  1. Postman应用:从官方网站下载Linux版本(如.deb或.rpm包),通过包管理器安装(如sudo dpkg -i Postman-linux-x64-*.deb);
  2. Node.js与npm:Postman CLI(Newman)依赖Node.js环境,通过包管理器安装(如Ubuntu下sudo apt install nodejs npm);
  3. Newman工具:Postman的命令行接口,用于批量执行脚本,通过npm全局安装(npm install -g newman)。

二、编写Postman脚本(核心步骤)

Postman脚本分为预请求脚本(请求发送前执行,用于设置变量、参数化请求)和测试脚本(请求响应后执行,用于验证结果、处理数据),均使用JavaScript编写。

1. 预请求脚本(Pre-request Script)

用于在请求发送前准备数据,例如设置环境变量、生成签名等。
示例:设置一个全局变量authToken,用于后续接口的身份验证。

// 在请求的"Pre-request Script"标签页编写 pm.globals.set("authToken", "Bearer " + CryptoJS.MD5("username:password").toString()); 

说明:通过pm.globals.set()方法设置全局变量,可在后续请求的URL、Headers或Body中引用(如{{authToken}})。

2. 测试脚本(Tests)

用于验证响应数据的正确性,是API测试的核心。常用断言包括状态码、响应时间、正文内容等。
示例:验证登录接口的响应状态码为200,且返回的token字段存在。

// 在请求的"Tests"标签页编写 pm.test("Status code is 200", function () { pm.response.to.have.status(200); // 断言状态码为200 }); pm.test("Response contains token", function () { const jsonData = pm.response.json(); // 解析响应正文为JSON pm.expect(jsonData.token).to.exist; // 断言token字段存在 }); 

说明:使用pm.test()定义测试用例,pm.response.to提供链式断言方法(如have.statushave.jsonBody),pm.expect()用于复杂断言(如字段存在性、值匹配)。

三、运行Postman脚本

1. 图形界面运行(单请求/单集合)

  1. 打开Postman应用,创建或选择请求;
  2. 编写预请求脚本(可选)和测试脚本(必选);
  3. 点击顶部导航栏的Send按钮,发送请求;
  4. Test Results标签页查看脚本执行结果(绿色表示通过,红色表示失败)。

2. 命令行运行(批量/自动化)

使用Newman工具批量执行Postman集合(JSON格式),适合CI/CD流程。
基本命令

newman run /path/to/your/collection.json 

常用选项

  • -e /path/to/environment.json:指定环境变量文件(如包含baseUrlapiVersion等变量);
  • -g /path/to/globals.json:指定全局变量文件(如包含authToken等变量);
  • -r htmlextra,json:指定报告格式(如htmlextra生成可视化HTML报告,json生成原始JSON报告);
  • --iteration-count 5:指定迭代次数(如循环执行5次)。
    示例:执行集合并生成HTML报告,同时使用环境变量和全局变量。
newman run /path/to/collection.json -e /path/to/environment.json -g /path/to/globals.json -r htmlextra,json --iteration-count 3 

说明:集合文件需通过Postman导出(点击集合右上角的三个点→Export),环境变量和全局变量文件同理。

四、脚本进阶技巧

  1. 变量使用
    • 环境变量:通过pm.environment.set()设置,pm.environment.get()获取(仅当前环境有效);
    • 全局变量:通过pm.globals.set()设置,pm.globals.get()获取(全局有效);
    • 集合变量:通过pm.collectionVariables.set()设置,pm.collectionVariables.get()获取(仅当前集合有效)。
  2. 异步请求:使用pm.sendRequest()发送异步HTTP请求,例如获取用户信息后再获取订单信息。
    pm.sendRequest("GET", "https://api.example.com/users/1", function (err, response) { if (!err) { const userId = response.json().id; pm.sendRequest("GET", `https://api.example.com/orders?userId=${userId}`, function (err, orderResponse) { console.log(orderResponse.json()); }); } }); 
  3. 调试脚本
    • 使用console.log()输出变量值到Postman控制台(点击顶部导航栏的ViewShow Postman Console);
    • 使用Postman的Debugger工具(点击脚本编辑器右上角的Debug按钮)逐行调试。

五、注意事项

  1. 脚本兼容性:确保Postman版本与Newman版本兼容(建议使用最新稳定版);
  2. 敏感信息保护:避免在脚本中硬编码敏感信息(如密码、API密钥),应使用环境变量或全局变量;
  3. 报告管理:定期清理Newman生成的HTML报告,避免占用过多磁盘空间。

0