温馨提示×

Linux Postman如何使用Tests脚本

小樊
54
2025-09-22 16:17:17
栏目: 智能运维

Linux环境下Postman Tests脚本使用指南

1. 准备工作:安装Postman并配置环境

在Linux系统上使用Postman前,需先完成安装:

  • 下载安装包:访问Postman官方网站,下载适用于Linux的压缩包(如.tar.gz格式);
  • 解压与安装:通过终端导航至下载目录,执行tar -xvf Postman-linux-x64-*.tar.gz解压;将解压后的Postman文件夹移动至/opt目录(sudo mv Postman /opt);创建全局符号链接(sudo ln -s /opt/Postman/Postman /usr/local/bin/postman),实现终端直接输入postman启动应用。
  • 启动与验证:终端输入postman,若成功弹出图形界面则表示安装完成。

2. 编写Tests脚本的基本步骤

2.1 创建请求与集合

  • 打开Postman,点击左上角“+”按钮→选择“HTTP Request”,填写请求方法(GET/POST等)、URL、Headers(如Content-Type: application/json)和Body(如需发送JSON数据,切换至“Body” tab选择rawJSON格式输入);
  • 保存请求:点击“Save”按钮,选择或创建一个Collection(如命名为“User APIs”),将请求添加至集合中(集合用于批量管理请求及脚本)。

2.2 添加Tests脚本

  • 选中需添加脚本的请求,点击编辑器顶部的Tests tab(位于“Headers”“Body” tab右侧);
  • 点击“New Script”按钮(若有),直接在代码编辑框中编写JavaScript脚本(Postman支持JavaScript语法,内置ChaiJS断言库)。

3. 常见Tests脚本示例

Tests脚本主要用于验证响应的正确性,以下是常用场景的示例:

3.1 状态码验证

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); // 断言响应状态码为200(成功)
});

3.2 响应时间验证

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200); // 断言响应时间小于200毫秒
});

3.3 JSON响应体验证

pm.test("Response body contains expected data", function () {
    const jsonData = pm.response.json(); // 解析JSON响应体
    pm.expect(jsonData).to.have.property("token"); // 断言响应体包含"token"字段
    pm.expect(jsonData.token).to.be.a("string"); // 断言"token"字段为字符串类型
});

3.4 环境变量设置与使用

// 设置环境变量(如将响应中的token存入环境变量)
pm.test("Set environment variable", function () {
    const jsonData = pm.response.json();
    pm.environment.set("auth_token", jsonData.token); // 将token存入环境变量"auth_token"
});

// 使用环境变量(如在后续请求的Headers中添加Authorization)
pm.request.headers.add({
    key: "Authorization",
    value: `Bearer ${pm.environment.get("auth_token")}` // 获取环境变量"auth_token"的值
});

3.5 XML响应体转换与验证

pm.test("Parse XML response", function () {
    const xmlData = pm.response.text(); // 获取XML响应体
    const jsonObj = xml2Json(xmlData); // 转换为JSON对象(Postman内置xml2Json函数)
    pm.expect(jsonObj).to.have.property("root.user.name"); // 断言XML中存在"user.name"节点
});

3.6 断言响应头包含特定字段

pm.test("Response header contains Content-Type", function () {
    pm.expect(pm.response.headers).to.have.property("Content-Type"); // 断言响应头包含"Content-Type"
    pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json"); // 断言"Content-Type"包含"application/json"
});

4. 执行与查看测试结果

  • 发送请求:点击请求编辑器顶部的“Send”按钮,Postman会向目标API发送请求;
  • 查看结果:请求发送后,底部会显示Test Results tab(若未显示,可点击“View”→“Show Test Results”);
  • 结果解读:Test Results tab会列出所有测试用例的执行结果(Passed/Failed),包括测试名称、执行时间、错误信息(若测试失败)。

5. 高级用法

5.1 批量运行测试(Newman命令行工具)

若需批量执行Collection中的所有请求及脚本,可使用Postman的命令行工具Newman

  • 安装Newman:终端执行npm install -g newman(需提前安装Node.js);
  • 运行Collection:执行newman run /path/to/collection.json -e /path/to/environment.jsoncollection.json为集合文件路径,environment.json为环境变量文件路径);
  • 输出报告:可添加--reporters cli,html参数生成命令行报告或HTML报告(如newman run collection.json -e environment.json --reporters cli,html)。

5.2 调试脚本

  • 控制台输出:使用console.log()函数输出调试信息(如console.log("Response body:", pm.response.json())),可在Postman底部的“Console” tab查看;
  • 错误排查:若脚本执行失败,Test Results tab会显示错误原因(如语法错误、断言失败),结合控制台输出可快速定位问题。

6. 脚本管理

  • 集合级脚本:在Collection编辑页面(点击Collection名称→“Edit”),切换至“Tests” tab,添加的脚本会在集合中每个请求之后运行;
  • 文件夹级脚本:右键点击Collection中的文件夹→“Edit”,同样可添加“Tests”脚本,该脚本会在文件夹内每个请求之后运行;
  • 请求级脚本:直接在单个请求的“Tests” tab中编写的脚本,仅对该请求生效。
    脚本执行顺序:集合级脚本→文件夹级脚本→请求级脚本(适用于需要复用通用测试逻辑的场景)。

0