Почтальон setNextRequest в for-l oop не вызывается из Runner - PullRequest
0 голосов
/ 09 января 2020

Коллекция имеет два запроса.

  • Опубликовать - Создать учетную запись
  • Опубликовать - Создать AccountProfile

Создать AccountProfile добавляет объект AccountProfile к учетной записи.

Существует 13 типов профиля аккаунта.

Я хочу создать 13 учетных записей, по одной для каждого типа учетной записи.

Вот Javascript в Tests для второго метода.

Никогда воздержитесь от жесткого кодирования на данный момент. Я исправлю это позже.

var acctProfiles = [0,1,4,5,6,19,33,34,35,38,39,40]

for (var p in acctProfiles ) {
    // Create account with that profile
    console.log('creating account');
    postman.setNextRequest("Create Account");

    console.log(pm.collectionVariables.get("accountToken"));

    pm.collectionVariables.set("profileType", profiles[p]);

    console.log('creating profile');

    // Now call this request to create the profile
    postman.setNextRequest(); 

}

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

1 Ответ

0 голосов
/ 09 января 2020

Поскольку петли в почтальоне не работают.

Каждый раз, когда вы используете setNextRequest(); в Создать AccountProfile , он переходит к Создать учетную запись после всего этого Код из Создать AccountProfile выполняется не только в l oop. Из-за этого будет выполняться только первое выполнение из l oop.

Вы можете достичь того, что вам нужно, другим способом. Вы можете сохранить свой массив в глобальной переменной, и каждый раз, когда Create AccountProfile будет выполняться, вы можете удалить из него один элемент.

...