如何从邮递员模拟服务器返回动态响应?

时间:2021-02-10 05:26:03

标签: unit-testing postman postman-mocks

我想从邮递员模拟服务器返回动态响应。
当 postman 中的模拟 URL 命中时,我们获取请求正文,我想从请求正文中获取字段值并将该值返回给响应。

模拟网址:{{url}}/customer
请求正文:

{
    "Id": 47896,
    "name": userName
}

我想在响应正文中发送 Id 值:

{
    "Id":47896
}

我们正在项目中创建随机 Id 值,并在请求正文中使用该值点击模拟 URL。
每次调用模拟 URL 后,id 值都会不同。我们正在处理 Id 值,如果它不匹配,那么我们会抛出一个错误。
无论如何要处理请求正文?
在邮递员文档中,我没有找到任何决定性的解决方案。

1 个答案:

答案 0 :(得分:0)

有一个限制,您只能在 postman 应用程序中使用动态值,而不能在 newman 中使用。

https://github.com/postmanlabs/newman/issues/2565

在邮递员应用中,您可以:

将模拟服务器中的响应设置为:

   {
      "id":{{id}}
   }

为模拟服务器选择环境:

enter image description here

点击编辑并选择和环境。

enter image description here

启用持久变量值设置

enter image description here

请注意,这将使用您将在脚本中设置为 pm.environment.set("name",valu") 的值更新初始值和当前值。

现在通过 pre-reuest 脚本设置环境变量 id:

pm.environment.set("id",5)

输出

enter image description here

注意:

你应该发送两次请求,第一次让环境与云同步

第二个是获得更新的响应,所以尝试在实际请求之前发送一个虚拟请求。

在旧应用中它运行良好,现在看来您需要两个请求。