【问题标题】:Postman Pre-Requisite Script: Store Email ID based on Random First name and Last namePostman Pre-Requisite Script:根据随机名字和姓氏存储电子邮件 ID
【发布时间】:2021-03-30 13:18:58
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: postman postman-pre-request-script


    【解决方案1】:
    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 指出的那样,postman 正在迁移到新的 pm.* API,并且将来会弃用 postman.*。

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

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

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

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

    【讨论】:

    • 我建议使用较新的 pm.* API 中的所有 getset 方法,而不是混合和匹配新旧 API。 ?
    • 更新了,答案x?
    • 谢谢。新版本在沙箱中有自动建议,以显示该 API 下可用的方法。
    • @PDHide 完美。这行得通。感谢您的详细回答。
    【解决方案2】:

    如果仍在使用旧的 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"));
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2017-03-05
      • 2021-10-26
      • 1970-01-01
      相关资源
      最近更新 更多