作者:手机用户2502907057 | 来源:互联网 | 2023-09-04 13:22
篇首语:本文由编程笔记#小编为大家整理,主要介绍了邮递员 - 如何使用环境变量“responseBody.has”?相关的知识,希望对你有一定的参考价值。
我试图实现以下场景:
在GET请求中,我使用JSON.stringify设置一个带有请求响应的环境变量。
在另一个GET请求中,我试图验证创建的环境变量是否存在于JSON响应中。但是,此响应返回的结果多于上一个请求中的结果。
这就是为什么我需要“搜索”响应并尝试找到与环境变量1:1匹配的部分。
我正在尝试(例如)以下测试:
var test = postman.getEnvironmentVariable("testvariable")
tests["test1"] = JSON.stringify(responseBody.has(test));
这似乎总是有效,即使我手动更改环境变量的内容,测试仍然通过。如果我删除JSON.stringify,它总是失败。
我该怎么办?
答案
您可以使用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)
另一答案
//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);
});