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的特定要求调整步骤和参数。

相关推荐
niuniu_6663 小时前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
monstercl4 小时前
Lua中基础函数使用详解
lua·脚本语言
爱的叹息4 小时前
Spring Boot 集成Redis 的Lua脚本详解
spring boot·redis·lua
niuniu_6661 天前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
莓事哒1 天前
selenium和pytessarct提取古诗文网的验证码(python爬虫)
爬虫·python·selenium·测试工具·pycharm
软件测试曦曦1 天前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
互联网杂货铺1 天前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
Feng.Lee2 天前
聊一聊缓存如何进行测试
功能测试·测试工具·缓存
爱学测试的雨果2 天前
Postman —— postman实现参数化
软件测试·功能测试·测试工具·lua·postman
互联网杂货铺2 天前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman