Ubuntu下Postman的自动化测试如何实现
导读:Ubuntu下Postman自动化测试实现 一 环境准备与安装 在 Ubuntu 上可通过多种方式安装 Postman,任选其一: Snap:sudo snap install postman --classic APT:导入 GPG...
Ubuntu下Postman自动化测试实现
一 环境准备与安装
- 在 Ubuntu 上可通过多种方式安装 Postman,任选其一:
- Snap:sudo snap install postman --classic
- APT:导入 GPG 并添加仓库后安装
- wget -qO - https://dl.postman.co/postman.gpg | sudo apt-key add -
- echo “deb https://dl.postman.co/debian $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/postman.list
- sudo apt update & & sudo apt install postman
- Flatpak:
- sudo apt install flatpak
- flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- flatpak install flathub com.postman.Postman
- 安装完成后可直接启动 Postman 进行接口调试与脚本编写。
二 编写自动化测试脚本
- Postman 脚本基于 JavaScript,在请求前后执行:
- Pre-request Script:请求前设置变量、签名、请求头等
- Tests:响应后做断言与校验
- 常用脚本示例:
- 状态码与响应时间
- pm.test(“Status code is 200”, () => pm.response.to.have.status(200));
- pm.test(“Response time < 200ms”, () => pm.expect(pm.response.responseTime).to.be.below(200));
- 响应体字段与结构
- const json = pm.response.json();
- pm.test(“Has id field”, () => pm.expect(json).to.have.property(“id”));
- pm.test(“Name equals”, () => pm.expect(json.name).to.eql(“test_user”));
- 响应头
- pm.test(“Content-Type is JSON”, () => pm.response.to.have.header(“Content-Type”, /application/json/));
- 变量与动态数据
- Pre-request:pm.environment.set(“token”, “abc123”);
- Tests:pm.environment.set(“userId”, json.id);
- 集合/数据变量
- const uid = pm.collectionVariables.get(“userId”);
- pm.request.url.query.add({ key: “userId”, value: uid } );
- 状态码与响应时间
- 调试技巧
- 使用 console.log 输出调试信息,在 Postman 控制台查看。
三 在桌面端运行与批量执行
- 组织用例:将相关请求放入 Collection,为不同环境创建 Environment(如开发/测试/生产)。
- 批量运行:使用 Collection Runner 选择集合与环境,配置迭代次数、数据文件等,一键执行并查看断言结果。
- 数据驱动:通过 CSV/JSON 数据文件 驱动多组参数执行,实现数据驱动测试。
四 命令行与CI集成
- 使用 Newman(Postman 命令行工具)在 Ubuntu 服务器或 CI 环境执行集合:
- 安装:npm install -g newman
- 执行:newman run your_collection.json
- 生成报告并集成到 GitHub Actions:
- 示例工作流要点:
- 触发:push / pull_request
- 步骤:安装 Node、检出代码、安装依赖、运行 Newman(CLI + JUnit 报告)
- 上传报告:actions/upload-artifact
- 参考命令:
- newman run “your_postman_collection.json” --reporters cli,junit --reporter-junit-export report.xml
- 示例工作流要点:
- 适用场景:无头环境自动化、定时任务、代码合并门禁、流水线质量门禁。
五 实战示例 注册登录与结果校验
- 场景:注册用户 → 登录获取 token → 访问受保护接口 → 校验结果
- 脚本骨架(可放入相应请求的 Tests 或 Pre-request 中):
- 注册
- pm.sendRequest({
url: pm.environment.get(“apiBaseUrl”) + “/register”, method: “POST”, body: JSON.stringify({
email:
user${ Date.now()} @test.com, password: “pwd123” } ), headers: { “Content-Type”: “application/json” } } , (err, res) => { pm.expect(res.status).to.eql(200); pm.expect(res.json().email).to.include(“@test.com”); } );
- pm.sendRequest({
url: pm.environment.get(“apiBaseUrl”) + “/register”, method: “POST”, body: JSON.stringify({
email:
- 登录并设环境变量
- pm.sendRequest({ url: pm.environment.get(“apiBaseUrl”) + “/login”, method: “POST”, body: JSON.stringify({ email: “user123@test.com”, password: “pwd123” } ), headers: { “Content-Type”: “application/json” } } , (err, res) => { pm.expect(res.json().token).to.exist; pm.environment.set(“authToken”, res.json().token); } );
- 访问用户信息并校验
- pm.sendRequest({
url: pm.environment.get(“apiBaseUrl”) + “/user”, method: “GET”, headers: {
“Authorization”:
Bearer ${ pm.environment.get("authToken")}} } , (err, res) => { pm.expect(res.json().email).to.include(“@test.com”); } );
- pm.sendRequest({
url: pm.environment.get(“apiBaseUrl”) + “/user”, method: “GET”, headers: {
“Authorization”:
- 注册
- 说明:通过 pm.sendRequest 可在脚本中串联多个接口,实现流程化自动化测试。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下Postman的自动化测试如何实现
本文地址: https://pptw.com/jishu/766185.html
