Предварительный сценарий почтальона: сохранение идентификатора электронной почты на основе случайного имени и фамилии

Я изо всех сил пытаюсь создать идентификатор электронной почты, состоящий из случайного имени и случайной фамилии. Я не хочу использовать динамическую переменную $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 для создания идентификатора электронной почты, состоящего из имени и фамилии.

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

Однако на консоли я получаю следующий результат.

ACTUAL "Электронная почта: {{first_name}}_{{last_name}}@gmail.com"

ОЖИДАЕТСЯ "Электронная почта: John_Doe@gmail.com"

Я думаю, что делаю небольшие ошибки здесь в синтаксисе или в том, как переменные среды используются в предварительном сценарии. Спасибо, что уделили время чтению, и любые наводки будут полезны.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
745
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
email_formatted = pm.environment.get("first_name") + '_' + pm.environment.get("last_name") + '@gmail.com';
pm.environment.set("email", email_formatted);
console.info("Email: " + pm.environment.get("email"));

В почтальоне мы можем ссылаться на переменную как {{имя_переменной}} только в сеансах без скриптов. В сценарии вы используете

pm.environment.get('varaiblename')

Для доступа к переменной среды, для доступа к другим переменным используйте как pm.globals, pm.variables и т. д.

Как указал Дэнни, postman переходит на новый pm.* API и собирается отказаться от поддержки postman.* в будущем.

Поэтому начните использовать новый API, так как документация значительно обновлена ​​и доступна в основном для pm.* API.

Примечание: setnextrequest по-прежнему доступен только через почтальона.*

Итак, postman.setNextRequest работает, pm.setNextRequest не будет

Приложение почтальона имеет автоматическое предложение для pm. *, Оно показывает доступные методы, которые делают сценарии более простыми и увлекательными.

Я бы рекомендовал использовать все методы get и set из нового pm.* API, а не смешивать и сопоставлять старые и новые. 😁

Danny Dainton 20.12.2020 17:50

Обновлено, ответ х😁

PDHide 20.12.2020 18:00

Спасибо. В новых версиях есть автоматическое предложение в песочнице, чтобы показать, какие методы доступны в этом API.

Danny Dainton 20.12.2020 18:12

@PDHide Отлично. Это работает. Спасибо за подробный ответ.

Nihir Kumar 20.12.2020 18:31

Если вы все еще используете старые библиотеки Postman, то следующее также будет работать.

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

Другие вопросы по теме