Postman API 自动化测试教程:入门指南及更多 - Nao

作者:API传播员 · 2025-12-24 · 阅读时间:8分钟
本文提供Postman API自动化测试的入门指南,涵盖API测试基础、Postman和Newman工具的使用,包括创建测试集合、编写测试脚本、环境变量管理以及集成CI/CD流程,帮助开发者快速搭建自动化测试项目。

什么是 API?

应用程序编程接口)是一个定义多个软件中介之间交互的计算接口。它规定了可以进行的调用或请求类型、操作方式、数据格式以及需要遵循的约定。API 还提供扩展机制,允许用户以不同方式扩展现有功能。API 可以针对特定组件进行定制,也可以根据行业标准设计,以确保API 实现了模块化编程,使用户能够通过接口独立工作。


什么是 API 测试?

API 测试是一种软件测试方法,主要包括以下两种类型:

  1. 专门测试 API 的功能。
  2. 更广泛地,通过调用 API 测试系统的整体功能、可靠性、安全性和性能。

API 测试的最佳实践

  • 遵循 RESTful API 风格,使用语义化的 URI 定义、准确的 HTTP 状态代码,并通过 API 定义理解资源之间的关系。
  • 提供详细准确的 API 文档(如 Swagger 文档)。
  • 外部 API 可通过版本号(如 https://thoughtworks.com/v1/users/)实现快速迭代。

API 测试在测试金字塔中占据重要地位,主要集中在系统和服务的边界,验证功能和业务逻辑。通常在服务构建并部署到测试环境后执行。


API 测试类型

API 测试可以分为以下类型:

  • 功能测试:验证 API 是否按预期工作。
  • **非性能测试、安全性测试和兼容性测试等。

API 测试的基本步骤

  1. 发送请求。
  2. 获取响应。
  3. 验证响应结果。

Postman 和 Newman 简介

Postman 是一款流行的 API 开发工具,提供了直观的图形界面,用于创建、测试和调试 API。它支持多种 HTTP 请求方式(如 GET、POST、PUT、DELETE 等),并支持多种身份验证和授权方式。此外,Postman 还支持轻松编写和共享测试脚本。

Newman 是 Postman 的命令行工具,用于在无需使用 Postman GUI 的情况下运行测试套件。通过 Newman,用户可以将 Postman 的集合导出为可执行文件,并在任何环境中运行。Newman 还支持生成 自动化测试


Postman 的主要功能

  1. 环境和变量管理:支持在不同环境(如开发、测试、生产)之间切换,并轻松管理变量。
  2. 自动化测试:可创建和运行自动化测试,并集成到持续集成或部署流程中。
  3. 协作和共享:支持团队成员共享收藏和环境,促进协作。
  4. 监控:提供实时监控 API 可用性和性能的功能。

Newman 的主要功能

  1. 命令行界面:支持在命令行中运行测试,便于自动化测试和集成到 CI/CD 流程中。
  2. 多种输出格式:支持生成 HTML、JSON 和 JUnit 格式的测试报告。
  3. 并发执行:支持并发执行测试,提高效率。
  4. 轻量级:相比 Postman GUI,Newman 更轻量化,资源占用更少。

Postman 和 Newman 的优势

  1. 集成能力:可与 GitHub、Jenkins、Slack 等工具集成,便于开发和部署。
  2. 文档生成:通过请求和响应生成准确及时的 API 文档
  3. 测试脚本:支持使用 JavaScript 编写测试脚本,提供灵活性和定制化能力。
  4. 历史记录:存储 API 请求历史,便于调试和问题排查。
  5. 多平台支持:可在 Windows、MacOS 和 Linux 上运行。

Postman 和 Newman 项目结构示例

以下是一个 Postman 和 Newman API 自动化测试项目的文件结构:

Postman-Newman-demo
├── README.md
├── package.json
├── package-lock.json
├── Data // 测试数据文件夹
│ └── testdata.csv // 测试数据文件
├── Testcase // 测试用例文件夹
│ └── APITestDemo.postman_collection.json // 测试用例文件
├── Env // 测试环境文件夹
│ └── DemoEnv.postman_environment.json // 测试环境文件
├── Report // 测试报告文件夹
│ └── report.html
├── .gitignore
└── node_modules // 项目依赖

创建 Postman 和 Newman 项目

初始化项目

  1. 创建项目文件夹:

    mkdir Postman-Newman-demo
    cd Postman-Newman-demo
  2. 初始化 Node.js 项目:

    npm init -y
  3. 安装 Newman:

    npm install newman@5.1.2 --save-dev

在 Postman 中创建集合和请求

  1. 打开 Postman,点击左上角的“新建”按钮,选择“集合”,输入集合名称(如 demo),点击“创建集合”。
  2. 在集合中,点击右上角的三个点,选择“添加请求”,输入请求名称(如 get-demo),点击“保存”按钮。
  3. 按照上述步骤,添加另一个请求(如 post-demo)。

编写测试用例

示例:GET 请求

  1. get-demo 请求中,选择 GET 方法,输入 URL:

    https://jsonplaceholder.typicode.com/posts/1
  2. 在 Header 中,添加以下键值对:

    Key: Content-Type
    Value: application/json
  3. 在“测试”选项卡中,添加以下脚本:

    pm.test("res.status should be 200", function () {
       pm.response.to.have.status(200);
    });
    pm.test("res.body should be correct", function() {
       var data = pm.response.json();
       pm.expect(data.id).to.equal(1);
       pm.expect(data.title).to.contains('provident');
    });
  4. 点击“发送”按钮,验证响应结果。


示例:POST 请求

  1. post-demo 请求中,选择 POST 方法,输入 URL:

    https://jsonplaceholder.typicode.com/posts
  2. 在 Header 中,添加以下键值对:

    Key: Content-Type
    Value: application/json
  3. 在 Body 中,选择 rawJSON 格式,输入以下请求正文:

    {
       "title": "foo",
       "body": "bar",
       "userId": 1
    }
  4. 在“测试”选项卡中,添加以下脚本:

    pm.test("res.status should be 201", function () {
       pm.response.to.have.status(201);
    });
    pm.test("res.body should be correct", function() {
       var data = pm.response.json();
       pm.expect(data.id).to.equal(101);
       pm.expect(data.title).to.equal('foo');
    });
  5. 点击“发送”按钮,验证响应结果。


使用环境变量

  1. 在 Postman 的右上角,点击齿轮图标,选择“管理环境”,创建一个名为 DemoEnv 的环境。

  2. 添加一个名为 host 的变量,值为:

    https://jsonplaceholder.typicode.com
  3. 在请求中,将 URL 更新为:

    {{host}}/posts/1

导出环境变量和测试用例

  1. 导出环境变量文件和测试用例文件,分别存储到项目文件夹中的 EnvTestcase 文件夹中。

配置 package.json

package.json 中,添加以下脚本:

"scripts": {
    "test": "newman run Testcase/demo.postman_collection.json -e Env/DemoEnv.postman_environment.json"
}

运行测试:

npm run test

总结

Postman 和 Newman 是强大的 API 测试工具,结合图形界面和命令行工具,能够实现高效的自动化测试。通过本文的教程,您可以快速搭建自己的 API 自动化测试项目,并将其集成到 CI/CD 流程中。

原文链接: https://naodeng.medium.com/postman-api-automation-testing-tutorial-getting-started-and-building-a-postman-api-automation-test-20120b1c4375