Postman 接口测试工具详解

一、理论部分

1. 写在开始的话

在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而市场上有很多优秀的接口测试工具,比如SoapUI、Postman、JMeter、yapi等,能够高效地帮助后端开发人员独立进行接口测试。这里主要介绍如何使用Postman进行接口测试。

2. 简单了解一下Postman

Postman是一个接口测试工具,相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。Postman与浏览器的区别在于,它更直观地展示接口返回的结果,特别是JSON格式的数据。

二、工具应用

1. 新建接口
1.1 创建Collection集合

在开始一个项目时,为了便于组织和管理,可以将同属该项目的多个API放在一组里。首先需要新建一个Collection:New -> Collection。

1.2 创建请求

在Postman中,你可以通过点击左上角的"Send"按钮或使用快捷键(默认为Ctrl+Enter)发送请求。在弹出的窗口中,你可以填写请求的URL、请求方法(GET、POST等)、请求头和请求体等信息。

三、接口实例

1. POST请求

POST请求是用来发送数据的。例如,产品经理的PRD文档要求分配加工厂接口里新增加工厂ID字段,整数类型,非必填。测试人员需要打开Postman,填写接口信息,结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致。

以注册用户为例,测试人员可以在Postman中设置如下请求:

json 复制代码
{
  "name": "小小",
  "password": "123456"
}

发送请求后,可以通过响应结果验证接口是否正确处理了注册信息。

2. GET请求

GET请求是用来获取数据的。例如,XX系统获取出库账单接口,测试人员需要打开Postman,填写接口信息,结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致。

以获取出库账单为例,测试人员可以在Postman中设置如下请求:

四、断言与测试

Postman支持对响应结果进行断言和测试。断言可以帮助你检查响应结果中的特定内容或值,如检查JSON数据中的某个字段是否符合预期。测试则可以对整个响应结果进行验证,如检查响应状态码是否为200。

在测试过程中,可以使用Postman的断言功能来验证响应结果。例如:

  • 断言状态码为200:
javascript 复制代码
pm.test("Status code is 200", function () {
  pm.response.to.have.status(200);
});
  • 断言响应文本中包含特定字符串:
javascript 复制代码
pm.test("Body matches string", function () {
  pm.expect(pm.response.text()).to.include("access_token");
});
```[^11^]。

五、集合与环境

在Postman中,你可以将多个请求组织到一个集合中,方便管理和复用。此外,你还可以为集合设置不同的环境变量,以便在不同的环境下发送请求时使用不同的参数值。

在测试不同环境的API时,可以使用环境变量来管理不同环境的配置。例如:

  • 设置环境变量:
javascript 复制代码
postman.setEnvironmentVariable("url", "http://192.168.1.21/oa/index.jsp");
  • 在请求中使用环境变量:
plaintext 复制代码
https://{{url}}/api/user/reg/
```[^11^]。

六、参数化与数据驱动测试

在Postman中,你可以使用参数化测试来复用测试用例,并通过数据驱动的方式传递不同的参数值。这样可以使你的测试用例更加灵活和健壮。

七、Mock服务器与挡板测试

Postman还支持Mock服务器和挡板测试功能。你可以使用Mock服务器模拟接口响应,以便在没有后端服务的情况下进行前端开发或测试。同时,挡板测试可以帮助你在开发过程中模拟接口请求和响应,以便更好地进行集成测试和调试。

相信你已经对Postman工具有了基本的了解和使用方法。在实际工作中,建议根据项目的需求和场景选择合适的接口测试方法和工具,以提高接口测试的效率和准确性。下面V 哥跟业务场景分讲解几个案例的使用。

八、使用案例

1. 用户注册接口测试

场景描述

测试用户是否可以成功注册到系统中。

步骤

  1. 创建一个新的Collection,命名为"用户注册测试"。

  2. 在Collection中创建一个新的POST请求。

  3. 设置URL为注册API的地址,例如:https://api.example.com/register

  4. 在Headers中添加Content-Type: application/json

  5. 在Body中使用raw格式,填入注册信息的JSON:

    json 复制代码
    {
      "username": "newuser",
      "password": "password123",
      "email": "[email protected]"
    }
  6. 发送请求并检查响应状态码是否为201。

  7. 使用断言检查返回的JSON中是否包含用户信息。

2. 用户登录接口测试

场景描述

测试用户是否可以使用正确的凭证登录系统。

步骤

  1. 创建一个新的GET或POST请求(取决于API设计)。
  2. 设置URL为登录API的地址,例如:https://api.example.com/login
  3. 如果是GET请求,添加查询参数usernamepassword
  4. 如果是POST请求,在Body中以JSON格式添加用户名和密码。
  5. 发送请求并检查响应状态码是否为200。
  6. 使用断言检查返回的JSON中是否包含token信息。
3. 商品列表查询接口测试

场景描述

测试系统是否能够返回正确的商品列表。

步骤

  1. 创建一个新的GET请求。
  2. 设置URL为商品列表API的地址,例如:https://api.example.com/products
  3. 添加可能的查询参数,如category=booksprice=100
  4. 发送请求并检查响应状态码是否为200。
  5. 使用断言检查返回的JSON数组长度是否正确。
4. 商品添加到购物车接口测试

场景描述

测试用户是否可以将商品添加到购物车。

步骤

  1. 确保用户已经登录并获取到token。
  2. 创建一个新的POST请求。
  3. 设置URL为添加到购物车API的地址,例如:https://api.example.com/cart/items
  4. 在Headers中添加Authorization: Bearer <token>
  5. 在Body中以JSON格式添加商品ID和数量。
  6. 发送请求并检查响应状态码是否为200。
  7. 使用断言检查返回的JSON中购物车是否包含添加的商品。
5. 文件上传接口测试

场景描述

测试用户是否可以上传文件到系统。

步骤

  1. 创建一个新的POST请求。
  2. 设置URL为文件上传API的地址,例如:https://api.example.com/upload
  3. 在Headers中添加Content-Type: multipart/form-data
  4. 在Body中选择form-data格式,并添加键值对,键为file,值为选择文件按钮。
  5. 附加其他必要的表单字段,如文件描述。
  6. 发送请求并检查响应状态码是否为200或201。
  7. 使用断言检查返回的JSON中是否包含文件上传成功的确认信息。
6. 商品下单接口测试

场景描述

测试用户是否可以成功下单购买商品。

步骤

  1. 确保用户已经登录并获取到token。
  2. 创建一个新的POST请求。
  3. 设置URL为下单API的地址,例如:https://api.example.com/orders
  4. 在Headers中添加Authorization: Bearer <token>
  5. 在Body中以JSON格式添加订单信息,包括购物车中的商品ID列表和数量。
  6. 发送请求并检查响应状态码是否为200或201。
  7. 使用断言检查返回的JSON中是否包含订单确认信息。
7. 用户信息更新接口测试

场景描述

测试用户是否可以更新自己的个人信息。

步骤

  1. 确保用户已经登录并获取到token。
  2. 创建一个新的PUT请求。
  3. 设置URL为用户信息更新API的地址,例如:https://api.example.com/user/profile
  4. 在Headers中添加Authorization: Bearer <token>Content-Type: application/json
  5. 在Body中以JSON格式添加新的用户信息。
  6. 发送请求并检查响应状态码是否为200。
  7. 使用断言检查返回的JSON中是否包含更新后的用户信息。
8. 订单状态查询接口测试

场景描述

测试用户是否可以查询到自己订单的当前状态。

步骤

  1. 确保用户已经登录并获取到token。
  2. 创建一个新的GET请求。
  3. 设置URL为订单状态查询API的地址,例如:https://api.example.com/orders/{orderId}
  4. 在Headers中添加Authorization: Bearer <token>
  5. 替换URL中的{orderId}为实际的订单ID。
  6. 发送请求并检查响应状态码是否为200。
  7. 使用断言检查返回的JSON中是否包含订单的正确状态信息。

在执行这些测试案例时,请确保遵循实际的API规范,并根据API的特定要求调整步骤和参数。

相关推荐
韩仔搭建3 小时前
美乐迪电玩大厅加载机制与 RoomList 配置结构分析
游戏·小程序·开源·lua
半路_出家ren5 小时前
流量抓取工具(wireshark)
网络·网络协议·测试工具·网络安全·wireshark·流量抓取工具
猿周LV5 小时前
JMeter 安装及使用 [软件测试工具]
java·测试工具·jmeter·单元测试·压力测试
老狼孩111221 天前
2025新版懒人精灵零基础及各板块核心系统视频教程-全分辨率免ROOT自动化开发
android·机器人·自动化·lua·脚本开发·懒人精灵·免root开发
天才测试猿1 天前
软件测试之功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
远方2351 天前
应用信息1.13.0发布
测试工具·安全·apk·开发工具·应用·工具·信息
珠峰下的沙砾1 天前
如何在 Postman 中,自动获取 Token 并将其赋值到环境变量
测试工具·lua·postman
时光话2 天前
Lua 第9部分 闭包
开发语言·lua
时光话2 天前
Lua 第7部分 输入输出
开发语言·lua
桑榆非婉2 天前
同样的接口用postman/apifox能跑通,用jmeter跑就报错500
测试工具·jmeter·postman