Postman API 测试全面指南(附测试示例)

作者:API传播员 · 2025-11-19 · 阅读时间:7分钟

有许多实用的工具可以帮助进行API测试,例如基于Java的REST Assured库,它允许自动化API测试并提供可重用的代码片段。然而,对于不熟悉编程语言的用户来说,Postman是一款更为直观且高效的API测试工具。它不仅可以帮助快速执行全面测试,还提供了以下功能:

  • 简单易用的用户界面,轻松可视化API生命周期的每个组成部分。
  • 内置代码片段,用于验证测试或生成测试数据。
  • 支持多种功能,如跨环境测试、跨服务器测试、API文档生成,以及与团队或公众协作共享API。

本文旨在介绍Postman作为API半自动化测试工具的使用方法,并通过实际示例展示如何在Postman中进行API测试。假设您已经熟悉API的基本概念,如果不清楚,可以先阅读相关入门文章。


Postman 简介

Postman由软件工程师Abhinav Asthana于2012年创建,最初是一个附属项目。如今,Postman已发展为一个全面的API平台,支持工程师设计、构建和测试API。它简化了API生命周期的每个阶段,提升了团队协作效率。截至目前,Postman已拥有超过2000万注册用户。

Postman的核心功能是提供一个集中式平台,便于用户存储、管理和协作处理所有与API相关的内容,包括API规范、文档、测试用例、测试结果以及指标等。


Postman 的安装与注册

您可以从Postman官网下载适用于不同操作系统的版本。如果使用macOS,请确保选择与设备芯片兼容的版本。此外,Postman还提供网页版,但需要注册账户后才能使用。

如果使用桌面应用程序,部分功能无需注册即可使用,但完整功能需要登录账户。


初识 Postman:工作区与基本概念

Postman的核心视图是工作区,所有与API相关的操作都在这里完成。工作区帮助用户组织API任务并与团队协作。在工作区中,您可以访问以下功能:

  • 集合(Collection):保存的API请求组。
  • 环境(Environment):一组可在请求中使用的变量。
  • 模拟服务器、监视器等其他工具。

如何在 Postman 中构建集合

在Postman中,API请求通常被分组到集合中,而API测试则可以进一步分组到子集合中。以下是构建集合的常见方法:

  • 为每个端点创建一个文件夹,文件夹名称通常与端点名称一致。
  • 创建一个名为“Integration Tests”的文件夹,用于存放测试多个API端点之间连接性的测试。

使用 Postman 的实例

以下通过Petstore API的示例,展示如何在Postman中进行API测试。

设置集合变量

Petstore API的基本URL为https://petstore.swagger.io/v2。由于所有请求都共享相同的基本URL,将其存储为集合变量可以提高复用性。操作步骤如下:

  1. “收藏”选项卡中选择集合。
  2. 打开集合视图,选择“变量”选项卡。
  3. 填写变量名(如baseUrl)、初始值和当前值(如https://petstore.swagger.io/v2)。

创建 GET 请求并测试

示例:按状态查找宠物

  1. 在集合中创建一个名为“pet”的文件夹。
  2. 在“pet”文件夹中添加一个GET请求,命名为“Find Pets by Status”。
  3. 设置请求URL为{{baseUrl}}/pet/findByStatus,并添加查询参数status,值为available
  4. 点击“发送”按钮,查看返回的JSON格式响应。

添加测试

为响应添加以下测试:

  • 检查状态码是否为200。
  • 验证响应中是否包含名为“doggie”的宠物。

测试代码如下:

pm.test("状态码为200", function() {
    pm.response.to.have.status(200);
});

pm.test("第一个宠物检查名称", function() {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("doggie");
});

创建 POST 请求并测试

示例:添加新宠物

  1. 在“pet”文件夹中添加一个POST请求,命名为“Add New Pet”。
  2. 设置请求URL为{{baseUrl}}/pet
  3. “Body”选项卡中选择“raw”格式,并设置为JSON类型,输入以下请求体:
{
    "name": "Dogo",
    "photoUrls": ["https://www.akc.org/wp-content/uploads/2017/11/Dogo-puppy.jpg"]
}
  1. 点击“发送”按钮,查看成功响应。

添加测试

为响应添加以下测试:

  • 检查状态码是否为200。
  • 验证新宠物的名称和照片URL。

测试代码如下:

pm.test("状态码为200", function() {
    pm.response.to.have.status(200);
});

pm.test("新宠物响应检查", function() {
    var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("Dogo");
    pm.expect(jsonData.photoUrls[0]).to.eql("https://www.akc.org/wp-content/uploads/2017/11/Dogo-puppy.jpg");
});

创建 PUT 请求并测试

示例:更新宠物信息

  1. 在POST请求的测试中,添加代码将宠物ID存储为集合变量:
pm.collectionVariables.set("petId", jsonData.id);
  1. 创建一个PUT请求,设置URL为{{baseUrl}}/pet,并在请求体中添加以下内容:
{
    "id": {{petId}},
    "name": "Lucky",
    "status": "sold"
}
  1. 点击“发送”按钮,查看更新后的响应。

添加测试

为响应添加以下测试:

  • 检查状态码是否为200。
  • 验证宠物的名称和状态是否更新。

测试代码如下:

pm.test("状态码为200", function() {
    pm.response.to.have.status(200);
});

pm.test("宠物更新检查", function() {
    var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("Lucky");
    pm.expect(jsonData.status).to.eql("sold");
});

创建 DELETE 请求并测试

示例:删除宠物

  1. 创建一个DELETE请求,设置URL为{{baseUrl}}/pet/{{petId}}
  2. 添加测试以验证删除操作是否成功:
pm.test("状态码为200", function() {
    pm.response.to.have.status(200);
});

pm.sendRequest(pm.collectionVariables.get("baseUrl") + "/pet/" + pm.collectionVariables.get("petId"), function(err, response) {
    pm.test("删除后检查宠物数据", function() {
        pm.expect(response.code).to.eql(404);
    });
});

总结

本文通过Petstore API的示例,介绍了如何在Postman中创建和测试GET、POST、PUT和DELETE请求。Postman以其用户友好的界面和强大的功能,为API测试提供了极大的便利。其主要优势包括:

  • 简单易用的界面和直观的API可视化。
  • 支持变量、集合和环境的灵活管理。
  • 提供预构建代码片段,降低编程门槛。
  • 支持跨环境测试、授权验证和API监控。

希望本文能帮助您更好地掌握Postman的使用技巧,提升API测试效率。

原文链接: https://www.testdevlab.com/blog/using-postman-for-api-testing