Как запускать набор запросов перед каждым запросом в Postman

Я пишу тест в Postman, и у меня есть несколько запросов, сгруппированных следующим образом:

  1. Некоторое название теста:

    • Создайте пользователя (набор «предварительных запросов»):

      • sending a few requests required to create a user, necessary to run tests
    • Некоторое действие над созданным пользователем (здесь я тестирую то, что указано в заголовке теста)

      • one or more requests
  2. Another test title:
    • Create a user (set of "pre-requests", the same as in test 1.):
      • sending a few requests required to create a user, necessary to run tests
    • Some action on a created user (not related ot test 1.)
      • one or more requests

Подводя итог, мне нужно создавать пользователя перед каждым запросом, когда я хочу что-то протестировать.

Мой вопрос - как я могу повторно использовать набор запросов «Создать пользователя», не копируя его?


person wawr    schedule 15.07.2019    source источник
comment
Этот пользователь всегда один и тот же?   -  person so cal cheesehead    schedule 15.07.2019
comment
Мне каждый раз приходится создавать нового пользователя, чтобы протестировать поток.   -  person wawr    schedule 16.07.2019
comment
Да, но всегда ли объект пользователя один и тот же? то есть одно и то же имя, идентификатор и т. д. Также нужно ли выполнять его для каждого запроса или только в начале коллекции?   -  person so cal cheesehead    schedule 16.07.2019
comment
Каждый раз я создаю нового пользователя с другим именем: user_name_prefix + увеличивающийся номер. Пользователь должен быть создан перед отправкой запроса. например 1) Создайте пользователя, 2) добавьте права   -  person wawr    schedule 17.07.2019


Ответы (2)


Вот как вы можете повторно использовать набор запросов в предварительных тестах и ​​тестах, установив переменную среды и вызвав ее с помощью функции eval.

предтестовый случай -

var Create_a_user = () => {
pm.sendRequest("http://mocktarget.apigee.net/json", function(err, res) {

    tests["Status code is 200"] = pm.expect(res).to.have.property('code', 200);
    console.log('firstName',res.json().firstName);      
});

pm.sendRequest("http://mocktarget.apigee.net/json", function(err, res) {

    tests["Status code is 200"] = pm.expect(res).to.have.property('code', 200);
    console.log("lastName - "+ res.json().lastName);
});

pm.sendRequest("http://mocktarget.apigee.net/json", function(err, res) {

    tests["Status code is 200"] = res.code === 200;
    console.log("city - "+ res.json().lastName.city);
});
};

pm.environment.set("Create_a_user", Create_a_user.toString());

Тестовое задание -

eval(pm.environment.get("Create_a_user"))();

выход -

firstName - John

lastName - Doe

city - San Jose

Отказ от ответственности - используйте функцию Eval осторожно, это может привести к сбоям в работе вашего кода или его выполнении.

person Dev    schedule 15.07.2019
comment
Спасибо за ответ! Я уже использую функцию eval () для повторного использования своего кода. Я предполагаю, что нужно иметь один запрос на один шаг теста. Некоторые запросы имеют сценарии предварительного запроса, и все они имеют тесты, выполняемые после запроса. Так что все сложнее. Я скорее думал о повторном использовании запроса в th collection runner, но postman.setNextRequest () не решает мою проблему. - person wawr; 16.07.2019
comment
ну, теперь вы полностью изменили вопрос, см. вопрос, вы не упомянули ничего, что вы упомянули в комментарии, если вы уже используете функцию eval, вы должны были упомянуть, что в самом вопросе, и вы не упомянули reusing request in collection runner раньше - person Dev; 16.07.2019
comment
Может быть ты прав. Мой вопрос в том, как повторно использовать весь запрос с предварительным запросом и тестами, выполняемыми после запроса. - person wawr; 17.07.2019

Если я правильно понимаю, то, к сожалению, в настоящее время не поддерживается. Я сам некоторое время ждал появления этой функции.

https://github.com/postmanlabs/postman-app-support/issues/1535

person so cal cheesehead    schedule 17.07.2019