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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮递员 - 如何使用环境变量“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);
});

以上是关于邮递员 - 如何使用环境变量“responseBody.has”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在邮递员中从环境变量设置基本授权?

如何将 swagger 导入带有环境的邮递员?

如何获取邮递员环境和邮递员全局 URL 以传递给纽曼?

邮递员:设置环境变量

邮递员“环境快速查看”不显示全局变量

邮递员:我可以将 JSON 对象保存到环境变量中,以便将其链接到另一个请求中吗?