我正在尝试实现以下方案:
在GET请求中,我使用JSON.stringify设置一个带有请求响应的环境变量。
在另一个GET请求中,我试图验证创建的环境变量是否存在于JSON响应中。但是,此响应返回的结果多于上一个请求中的结果。
这就是为什么我需要"搜索"响应并尝试查找与环境变量1:1匹配的部分。
我正在尝试(例如)以下测试:
var test = postman.getEnvironmentVariable("testvariable")
tests["test1"] = JSON.stringify(responseBody.has(test));
这似乎总是有效,即使我手动更改环境变量的内容,测试仍然通过。如果我删除JSON.stringify,那么它总是失败。
我该怎么办?
答案 0 :(得分: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)
响应字符串
docker run -d --volumes-from <ContainerID> <YourImage>
答案 1 :(得分: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);
});