Как пропустить итерацию в сборщике с файлом данных в почтальоне

Можно ли пропустить (или повторить еще раз) итерацию коллекции с использованием файла данных JSON в средстве выполнения коллекции, например:

    if (pm.environment.get("skip").to.eql("yes"){
      \\pm.iterationData.GOTOITERATION(2)  <--PSEUDOCODE
    }

Я думал, что если я смогу получить доступ ко всему файлу данных (массиву объектов), то можно будет написать такую ​​вещь:

    var currentIterationData;
    function ChangeCurrentIteration(iterationNumber) 
{ currentIterationData =
data[iterationNumber] // here I want to access element of data's array
}

Но разве я не ошибаюсь? имеет ли мой вопрос смысл? Спасибо.

Не могли бы вы уточнить вопрос? Не совсем уверен, что вы подразумеваете под пунктами 1 и 2, также не уверен, что вам нужно делать с data.toJSON()

Danny Dainton 16.05.2018 19:04

@DannyDaiton, 1: VariableScope - это некий король js-объектов в песочнице Postman, которые представляют собой коллекцию пар Key: Value и имеют некоторые методы (или функции, чтобы вы меня понимали). 2: Я заметил, что это на самом деле объект JS. так что смысла нет.

Borys Fursov 17.05.2018 09:31

Да, я понимаю, что это такое и как это работает в приложении Postman. Я не понимаю, как вы хотели бы его использовать, и ваш общий вопрос. Это серия вопросов или один вопрос? Если их больше 1, разделите их на отдельные вопросы - вы сможете более подробно объяснить один вопрос и получить быстрый ответ.

Danny Dainton 17.05.2018 09:40

@DannyDainton Я просто попытался переписать вопрос

Borys Fursov 17.05.2018 10:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
2 574
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добиться этого с помощью следующего кода:

var testID =pm.iterationData.get("testID");
if (testID.includes("<substring>")) {
    postman.setNextRequest(null);

};

Где "testID" - это одна из пар "ключ-значение" в файле данных, а метод pm.iterationData.get("key") извлекает значение. В зависимости от условия следующий запрос будет пропущен, и следующая итерация будет продолжена. Вы также можете повторить конкретный запрос, добавив:

postman.setNextRequest(<requestToRepeat>); 

Пожалуйста, объясните еще немного. Если я правильно понял, это решение не дает мне возможности «вернуться» к итерации?

Borys Fursov 23.05.2018 12:27

@BorysFursov - я полагаю, вы хотели «повторить» конкретный запрос с тем же объектом (из массива объектов), пока не получите желаемый результат. Если это так, вы можете повторить этот запрос следующим образом. var res = JSON.parse(responseBody); if (res.valueTocheck !== "expectedValue") { postman.setNextRequest("same_request"); } Это повторяется с теми же данными, пока не будет получен результат. имейте в виду, что вы можете получить сообщение об ошибке, если запрос будет неудачным после трех попыток.

Peri 24.05.2018 15:26

спасибо, но когда у меня будет эта ошибка после 3 попыток? например, когда ReferenceError останавливается полностью, что вы подразумеваете под неуспешным запросом?

Borys Fursov 24.05.2018 15:52

Я имел ввиду ошибку тайм-аута соединения. Я сталкивался с этим раньше, но стоит попробовать. Но я надеюсь, что он ответил на ваш вопрос.

Peri 25.05.2018 06:46

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