邮差 - 如何使用" responseBody.has"与环境变量?

时间:2017-03-20 10:53:19

标签: json variables testing postman

我正在尝试实现以下方案:

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

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

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

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

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

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

我该怎么办?

2 个答案:

答案 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);
});