首页 > 解决方案 > Postman Pre-Requisite Script:根据随机名字和姓氏存储电子邮件 ID

问题描述

我在这里努力生成一个包含随机名字和随机姓氏的电子邮件 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}}'));

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

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

但是,在控制台上,我得到以下结果。

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

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

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

标签: postmanpostman-pre-request-script

解决方案


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"));

在邮递员中,我们只能在非脚本会话中将变量称为 {{variablename}}。在你有使用的脚本中

pm.environment.get('varaiblename')

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

正如 Danny 指出的那样,邮递员正在转向新的 pm.* API,并且将来会弃用邮递员。*。

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

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

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

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


推荐阅读