首页 > 解决方案 > 是否可以在不编写预请求脚本的情况下重用动态变量值

问题描述

我有一个接受 json 的请求。在请求正文中,我想使用相同的动态变量两次。例如:

{
    "description": "{{$randomFirstName}}'s Home", 
    "first_name": "{{$randomFirstName}}",
    "first_name": "{{$randomLastName}}",
    "more_fields": "..."
}

然而,当我希望值相同时,简单地重复上面的变量会导致描述和名字字段的名字不同。

我怎样才能做到这一点。我认为在预请求脚本中应该是可能的,但如果有某种方式可以做相当于

{
    "description": "{{firstName=$randomFirstName}}'s Home", 
    "first_name": "{{firstName}}",
    "first_name": "{{$randomLastName}}",
    "more_fields": "..."
}

无需打扰预请求脚本,我可能更喜欢那个。

标签: postmanfakerdynamic-variables

解决方案


您可以通过使用.replaceIn()函数并在沙盒环境中构造请求正文来实现此目的。

将此添加到Pre-request ScriptPOST 请求中:

let firstName = pm.variables.replaceIn("{{$randomFirstName}}")

let requestBody = {
    "description": `${firstName}'s Home`, 
    "first_name": `${firstName}`,
    "last_name": "{{$randomLastName}}",
    "more_fields": "..."
};

pm.variables.set("requestBody", JSON.stringify(requestBody)); 

在请求正文中,添加不带引号的变量:

{{requestBody}}

当您发送请求时,它将解析变量并使用相同的名字。

这是使用 Postman-echo 服务的示例:

在此处输入图像描述


推荐阅读