Можно ли пропустить (или повторить еще раз) итерацию коллекции с использованием файла данных 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
}
Но разве я не ошибаюсь? имеет ли мой вопрос смысл? Спасибо.
@DannyDaiton, 1: VariableScope - это некий король js-объектов в песочнице Postman, которые представляют собой коллекцию пар Key: Value и имеют некоторые методы (или функции, чтобы вы меня понимали). 2: Я заметил, что это на самом деле объект JS. так что смысла нет.
Да, я понимаю, что это такое и как это работает в приложении Postman. Я не понимаю, как вы хотели бы его использовать, и ваш общий вопрос. Это серия вопросов или один вопрос? Если их больше 1, разделите их на отдельные вопросы - вы сможете более подробно объяснить один вопрос и получить быстрый ответ.
@DannyDainton Я просто попытался переписать вопрос



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете добиться этого с помощью следующего кода:
var testID =pm.iterationData.get("testID");
if (testID.includes("<substring>")) {
postman.setNextRequest(null);
};
Где "testID" - это одна из пар "ключ-значение" в файле данных, а метод pm.iterationData.get("key") извлекает значение. В зависимости от условия следующий запрос будет пропущен, и следующая итерация будет продолжена. Вы также можете повторить конкретный запрос, добавив:
postman.setNextRequest(<requestToRepeat>);
Пожалуйста, объясните еще немного. Если я правильно понял, это решение не дает мне возможности «вернуться» к итерации?
@BorysFursov - я полагаю, вы хотели «повторить» конкретный запрос с тем же объектом (из массива объектов), пока не получите желаемый результат. Если это так, вы можете повторить этот запрос следующим образом. var res = JSON.parse(responseBody); if (res.valueTocheck !== "expectedValue") { postman.setNextRequest("same_request"); } Это повторяется с теми же данными, пока не будет получен результат. имейте в виду, что вы можете получить сообщение об ошибке, если запрос будет неудачным после трех попыток.
спасибо, но когда у меня будет эта ошибка после 3 попыток? например, когда ReferenceError останавливается полностью, что вы подразумеваете под неуспешным запросом?
Я имел ввиду ошибку тайм-аута соединения. Я сталкивался с этим раньше, но стоит попробовать. Но я надеюсь, что он ответил на ваш вопрос.
Не могли бы вы уточнить вопрос? Не совсем уверен, что вы подразумеваете под пунктами 1 и 2, также не уверен, что вам нужно делать с
data.toJSON()