Если почтальон 401, авторизуйтесь и повторите попытку - PullRequest
0 голосов
/ 05 апреля 2019

Для тестирования мы довольно широко используем почтальон, чтобы поразить наши API. Прямо сейчас мы вызываем один маршрут для авторизации, который хранит необходимые данные в переменных среды, а затем нажимаем на запрос, который нас действительно интересует. Я хотел бы использовать тестовую вкладку, чтобы автоматически вызывать наш маршрут авторизации, если запрос получает 401 , затем автоматически повторите запрос.

Похоже, я могу вызвать pm.setNextRequest ("Name"), но это работает только в контексте Runner Collection для установки следующего запроса. Я хочу, чтобы это происходило автоматически при выполнении одного запроса. Есть ли способ сделать это?

Я специально ищу ответы, которые не имеют ничего общего с бегуном сбора, так как он совсем не похож на мой вариант использования. Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2019

@ claudekennilol,

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

const echoPostRequest = {
    url: 'https://jsonplaceholder.typicode.com/posts',

  method: 'POST',
  header: 'Content-Type:application/json',
  body: {
    mode: 'application/json',
    raw: JSON.stringify(
    {
"userId": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
})
  }
};

var checker = true;
var iterator = 0;

do {

    pm.sendRequest(echoPostRequest, function (err, res) {

        if(res.code === 200){
            if (err === null) {
                var responseJson = res.json();
                // Do something here if condition passes

            }
        }else{
            // Do something if condition fails
        }

    });
iterator++;
}
while (iterator<10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...