postman - 是否可以在不编写预请求脚本的情况下重用动态变量值

标签 postman faker dynamic-variables

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

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

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

我怎样才能实现这个目标。我认为在预请求脚本中应该是可能的,尽管如果有办法做相当于

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

如果不用预先请求脚本,我可能更喜欢这样。

最佳答案

您可以通过使用 .replaceIn() 来实现此目的函数并在沙箱环境中构造Request Body。

将此添加到 POST 请求的预请求脚本:

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 服务的示例:

enter image description here

关于postman - 是否可以在不编写预请求脚本的情况下重用动态变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60754282/

相关文章:

php - 无法使用 file_get_contents ('php://input' 检索原始发布数据)

即使所有中间件都被注释掉,Laravel 5.3 api 路由也会重定向

javascript - npm Module Faker 在调用时不会创建不同的数据

django - 与 factory boy 和 pytest 一起使用的自定义 faker 提供程序

arrays - UDF 中变量的动态数量

node.js - 为什么 nodejs express post 请求中 'body' 为空?

java - 如何将客户端 pkcs12 证书添加到 Postman Chrome,W7?

PHP Faker 生成范围内的唯一日期

java - Java中如何拥有动态数据类型的变量?

javascript - 如何在匿名函数/闭包中动态访问变量?