当前位置: 首页 > 知识库问答 >
问题:

无法从JSON响应中提取值以用作Postman中的环境变量

爱茂勋
2023-03-14

请求

//Create random number
let randomNum = 
        Math.floor((1 + Math.random()) * 0x10000)
            .toString(16)
            .substring(1);

//Set Random # as the Random ID       
pm.environment.set("randomNum", randomNum);

正文:

{   
    "AccountNumber": "AA{{randomNum}}",
            "Name": "AA {{randomNum}}",
            "Reference": "AA 01",
            "VatCodeId": 1,
              "UserCreated": "James"
}

答复:

{
    "Id": 18,
    "AccountNumber": "AA7e40",
    "Name": "AA 7e40",
    "Reference": "AA 01",
    "VatCodeId": 1,
    "DateCreated": "2022-01-27T09:53:43.6734454+00:00",
    "UserCreated": "James"
}

注意:Id字段是在返回200响应时创建的,这对于DB是唯一的,并且每创建一个新帐户就增加1。

我正在尝试提取Id并将其用作环境变量,以便可以将其链接(用于删除帐户)。测试脚本是:

var accountUniqueId = JSON.parse(responseBody);
pm.environment.set("accountId", json.result.data.Id);

虽然我尝试过它的变体,例如:

var accountUniqueId = pm.response.json();
pm.environment.set("accountId", jsonData.Id);
var accountUniqueId = pm.response.json();
pm.environment.set("accountId", jsonData.response.Id);

测试中的响应显示为:评估测试脚本时出现错误:引用错误:json未定义

正在创建环境变量,其当前值为:[对象对象]。

共有1个答案

常俊侠
2023-03-14

这应该可以做到:

let jsonData= pm.response.json();
pm.environment.set("accountId", jsonData.Id);
 类似资料:
  • 我用邮递员寄出这个请求https://postman-echo.com/get?record=aaaa 测试包含以下代码: 控制台中的输出: 对象对象 我所期待的:回应json {“args”:{“record”:“aaaa”},“headers”:{“x-forwarded-proto”:“https”,“x-forwarded-port”:“443”,“host”:“postman echo.

  • 我有来自POST方法的响应正文,如下所示 然后我想提取该会话密钥以添加到我使用此代码的环境变量中 但是在环境变量上仍然返回“undefined”值。请帮助,谢谢

  • 发布请求后,API 将响应正文作为字符串返回 身体的反应是这样的 {UniqueID=93243434,出生性别=M,出生日期=11/1/2018 5:51:18 PM,familyNames=James,givenNames=Test} 当我尝试使用以下代码设置环境变量时: 我得到了以下错误的测试结果 错误消息:评估测试脚本时出错:JSON error:1:3出现意外标记“u ”{ unique

  • 问题内容: 首先,我将自由地让自己成为一个笨拙的文科专家,他完全可以自学此脚本。就是说,我正在尝试使用以下代码从USGS水数据服务获取值: 尽管我找到了一些有关如何从JSON响应中提取所需值的教程,但大多数教程都非常简单。我遇到的困难是从该服务返回的看起来非常复杂的响应中提取出来的。查看响应,我可以看到我想要的是来自两个不同部分的值和一个时间值。因此,我可以查看响应并查看所需的内容,但我一生无法解

  • 我有一个来自web服务的JSON响应,看起来像这样: 我需要做的是使用JSONPATH查询从所有实体中提取主题。 如何获得这些结果: 来自第一项的主题-某个SubjectOne 过滤来自所有实体的特定主题值(例如某个主题2) 从所有实体获取对象