如何从邮递员的响应正文中提取值

Vin*_*oth 5 postman

发布请求后,API 将响应正文作为字符串返回

响应体看起来像

{ UniqueID = 93243434,birthGender = M,birthDate = 11/1/2018 5:51:18 PM,familyNames = James,givenNames = Test }

当我尝试使用以下代码设置环境变量时

var data = JSON.parse(responseBody);
postman.setEnvironmentVariable("currentUniqueId", data.UniqueId);
Run Code Online (Sandbox Code Playgroud)

我在测试结果中收到以下错误

错误消息:评估测试脚本时出错:JSONError: Unexpected token 'U' at 1:3 { UniqueID = 93243434,birthGender = M,birthDate = 11/1/2018 5:51:18 PM, family ^

我的目标是我需要提取值 93243434 并分配给环境变量。

小智 10

嗨,您使用的是正确的方法,但您可以尝试此版本

var jsonData = pm.response.json();
pm.environment.set("UNIQUE_ID", jsonData.UniqueID);
Run Code Online (Sandbox Code Playgroud)

该set("UNIQUE_ID"会帮你把它存变量,当你想,你可以命名它,jsonData.uniqueID将提取你想从JSON响应得到什么

如果您查看我的方法,我将提取访问代码和公司 ID 并将其保存在变量中并在所有下一个 api 中调用它


小智 2

您正在使用已弃用的表示法模式。

而不是使用以下方式设置变量:

var data = JSON.parse(responseBody);
postman.setEnvironmentVariable("currentUniqueId", data.UniqueId);
Run Code Online (Sandbox Code Playgroud)

尝试这样设置你的变量:

pm.environment.set('currentUniqueId', pm.response.json().UniqueID);
Run Code Online (Sandbox Code Playgroud)

要获取更多信息,请尝试:https ://learning.getpostman.com/docs/postman/scripts/test_examples/