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": "newuser@example.com"
    }
  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的特定要求调整步骤和参数。

相关推荐
awonw6 小时前
[java][框架]springMVC(1/2)
测试工具·postman
红黑色的圣西罗7 小时前
Lua 怎么解决闭包内存泄漏问题
开发语言·lua
钱钱钱端9 小时前
【压力测试】如何确定系统最大并发用户数?
自动化测试·软件测试·python·职场和发展·压力测试·postman
迃幵chen11 小时前
wireshark-网络分析工具
网络·测试工具·wireshark
孤蓬&听雨12 小时前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
土小帽软件测试12 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
qq_4337169515 小时前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
qq_4337169516 小时前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman
如光照16 小时前
Linux与Windows中的流量抓取工具:wireshark与tcpdump
linux·windows·测试工具·网络安全
诗这样的17 小时前
【需求变更】使用 Redis 和 Lua 脚本实现变更后方案编号的生成
java·redis·缓存·微服务·lua·需求分析