Postman 先决条件脚本:根据随机名字和姓氏存储电子邮件 ID

Postman Pre-Requisite Script: Store Email ID based on Random First name and Last name

我正在努力生成一个由随机名字和随机姓氏组成的电子邮件 ID。我不想使用动态变量 $randomEmail,因为它会生成与名字和姓氏完全不同的任何随机电子邮件,看起来非常不现实。

我在 Postman 中有一个先决条件脚本,其中有两个环境变量 first_name 和 last_name,我使用 faker 库生成如下虚拟数据。动态变量 $randomFirstName 和 $randomLastName,生成和设置环境变量如下。 假设 $randomFirstName=John 和 $randomLastName=Doe

postman.setEnvironmentVariable("first_name", pm.variables.replaceIn('{{$randomFirstName}}'));
postman.setEnvironmentVariable("last_name", pm.variables.replaceIn('{{$randomFirstName}}'));

现在我想使用环境变量 first_name 和 last_name 在下面的变量 email_formatted 中使用来生成由名字和姓氏组成的电子邮件 ID。

email_formatted = "{{first_name}}" + '_' + "{{last_name}}" + '@gmail.com';
postman.setEnvironmentVariable("email", email_formatted);
console.log("Email: " + postman.getEnvironmentVariable("email"));

但是,在 Consol 上,我得到以下结果。

实际“电子邮件:{{first_name}}_{{last_name}}@gmail.com”

预计“电子邮件:John_Doe@gmail.com”

我认为我在语法或先决条件脚本中如何使用环境变量方面犯了一些小错误。感谢您花时间阅读,任何线索都会有所帮助

email_formatted = pm.environment.get("first_name") + '_' + pm.environment.get("last_name") + '@gmail.com';
pm.environment.set("email", email_formatted);
console.log("Email: " + pm.environment.get("email"));

在 postman 中,我们只能在非脚本会话中将变量引用为 {{variablename}}。在脚本中你使用了

pm.environment.get('varaiblename')

访问环境变量,访问其他变量,如pm.globals、pm.variables等

正如 Danny 所指出的,postman 正在迁移到新的 pm.* API,并且将在未来弃用 postman.*。

因此,开始使用新的 api,因为文档已得到广泛更新并且主要用于下午。* Api .

注意: setnextrequest ,仍然只能通过邮递员获得。*

所以postman.setNextRequest,作品pm.setNextRequest不会

邮递员应用程序有 pm 的自动建议。*,它显示可用的方法,使脚本编写更容易和有趣

如果仍然使用旧的 Postman 库,那么以下内容也可以工作。

email_formatted = postman.getEnvironmentVariable("first_name") + '_' + postman.getEnvironmentVariable("last_name") + '@' + postman.getEnvironmentVariable("environment")+ 'gmail.com';
postman.setEnvironmentVariable("email", email_formatted);
console.log("Email: " + postman.getEnvironmentVariable("email"));