邮递员 - 如何使用环境变量“responseBody.has”?

问题描述 投票:0回答:2

我试图实现以下场景:

在GET请求中,我使用JSON.stringify设置一个带有请求响应的环境变量。

在另一个GET请求中,我试图验证创建的环境变量是否存在于JSON响应中。但是,此响应返回的结果多于上一个请求中的结果。

这就是为什么我需要“搜索”响应并尝试找到与环境变量1:1匹配的部分。

我正在尝试(例如)以下测试:

var test = postman.getEnvironmentVariable("testvariable")
tests["test1"] = JSON.stringify(responseBody.has(test));

这似乎总是有效,即使我手动更改环境变量的内容,测试仍然通过。如果我删除JSON.stringify,它总是失败。

我该怎么办?

json variables testing postman
2个回答
0
投票

您可以使用lodash库中的isEqual 例: 在测试脚本中,您可以将fromEnv替换为环境变量中的对象,将fromBody替换为响应字符串

var fromEnv = {"key1": "value1", "key3": "value3", "key2":{"child1":"childValue"}};//environment["envObj"];
var fromBody = {"key2":{"child1":"childValue"}, "key1": "value1", "key3": "value3"};// object from parsed JSON body

tests["objects are equal"] = _.isEqual(fromEnv, fromBody)

0
投票
//Get the variable value
var testVar= pm.environment.get("testvariable");

//Validate whether entire response value as a text contains the variable value. 
pm.test("Validate if response contains variable.", function () {
     pm.expect(pm.response.text()).to.include(testVar);
});
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.