1. 理解接口关联和JSON提取器的概念
    • 接口关联:在接口测试中,一个接口的请求参数可能依赖于另一个接口的响应数据。例如,用户登录接口返回一个用户ID,后续的订单查询接口需要这个用户ID作为参数来查询该用户的订单信息。这种依赖关系就需要通过接口关联来实现。
    • JSON提取器:当接口返回的数据是JSON格式时,JSON提取器可以帮助我们从复杂的JSON数据结构中提取出需要的信息。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以键值对的方式组织数据,易于阅读和编写,也易于机器解析和生成。
  2. 在Postman中使用JSON提取器实现接口关联的步骤
    • 发送第一个接口请求并查看响应数据
      • 在Postman中,先发送第一个接口的请求。例如,一个获取用户信息的接口,其响应数据是JSON格式,可能如下所示:
        {
            "user": {
                "id": "12345",
                "name": "John Doe",
                "email": "johndoe@example.com"
            }
        }
        
      • 确保接口请求成功,状态码为200等正常状态码。
    • 设置JSON提取器来提取需要的数据
      • 在第一个接口的“Tests”选项卡中编写脚本。假设我们要提取用户ID,脚本如下:
        var jsonData = pm.response.json();
        pm.environment.set("user_id", jsonData.user.id);
        
        • 第一行var jsonData = pm.response.json();是将响应的JSON数据解析并赋值给jsonData变量。
        • 第二行pm.environment.set("user_id", jsonData.user.id);是将提取的用户ID(jsonData.user.id)存储到Postman的环境变量中。这里的环境变量可以在整个Postman工作空间中被其他接口请求访问。
    • 使用提取的数据发送第二个接口请求
      • 发送第二个接口请求,该请求需要用到第一个接口提取的数据。例如,一个查询用户订单的接口,在请求参数中,将用户ID设置为刚才提取并存储的环境变量。
      • 在请求参数中,将用户ID字段的值设置为{{user_id}}。这样,当发送第二个接口请求时,Postman会自动将{{user_id}}替换为存储在环境变量中的实际用户ID值。
  3. 注意事项和技巧
    • 数据类型匹配:确保提取的数据类型和第二个接口请求参数所要求的数据类型一致。例如,如果第二个接口的用户ID参数要求是整数类型,而提取出来的数据是字符串类型,可能需要进行类型转换。
    • 多层嵌套数据提取:如果JSON数据结构比较复杂,有多层嵌套,需要仔细确定提取路径。例如,如果数据结构是{"data": {"user": {"details": {"id": "12345"}}}},那么提取用户ID的脚本可能是var jsonData = pm.response.json(); pm.environment.set("user_id", jsonData.data.user.details.id);
    • 错误处理:如果第一个接口请求失败或者提取的数据不存在,需要考虑如何处理这种情况,避免第二个接口请求因为缺少正确的参数而出现错误。可以添加一些条件判断语句来增强脚本的健壮性。例如:
      var jsonData = pm.response.json();
      if (jsonData && jsonData.user && jsonData.user.id) {
          pm.environment.set("user_id", jsonData.user.id);
      } else {
          console.log("无法提取用户ID");
      }
      
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐