Fazendo Retentiva (Retry ou setNextRequest) no Postman.

Reinaldo Mateus Rossetti Junior
2 min readMar 17, 2022

Neste exemplo vamos fazer o Retry, ou seja tentar novamente uma requisição que falhou, usando o Postman, no caso precisamos definir o valor Mínimo e o Valor Máximo no “Pre-request Script“ no Postman, caso não exista as variáveis.

var test = pm.environment.get("minRetries"); 
if(!test) {
pm.environment.set("minRetries", 0); pm.environment.set("maxRetries", 3);
}

Para não ter que fazer o Retry em uma requisição de sucesso, temos que adicionar uma condição de error, na condição abaixo somente é executada se houver um error na requisição, o valor ele é especifico pode ser que o caminho ou a forma de fazer seja diferente, fique atento a isso:

jsonObject.Error.Number != ""

Poderia ser uma outra condição como o status code igual a 500:

pm.expect(pm.response.code).to.equal(500);

O comando que vai realizar o retry no postman:

postman.setNextRequest(pm.info.requestName);

Por fim nosso teste ficou assim:

const response = pm.response.json();if (response.Error.Number != "") { 
if(environment.minRetries >= environment.maxRetries) {
postman.setNextRequest(null);
pm.environment.set("minRetries", 0);
} else {
postman.setNextRequest(pm.info.requestName);
console.log("Retries " + environment.minRetries);
// caso nao der certo ele vai incrementar mais uma tentativa.
pm.environment.set("minRetries", ++environment.minRetries);
}
}

O comando abaixo vai parar as tentativas após 3 vezes:

postman.setNextRequest(null);

Com comparação do status code:

if (pm.response.code !==200 ) {  if(environment.minRetries >= environment.maxRetries) {     postman.setNextRequest(null);     pm.environment.set("minRetries", 0);} else{  postman.setNextRequest(pm.info.requestName);  console.log("Retries  " + environment.minRetries);  // caso nao der certo ele vai incrementar mais uma tentativa.  pm.environment.set("minRetries", ++environment.minRetries);}}

Usando o includes:

if(pm.response.text().includes("<Number>203</Number>")){if(environment.minRetries >= environment.maxRetries) {postman.setNextRequest(null);pm.environment.set("minRetries", 0);} else{postman.setNextRequest(pm.info.requestName);console.log("Retries  " + environment.minRetries);// caso nao der certo ele vai incrementar mais uma tentativa.pm.environment.set("minRetries", ++environment.minRetries);}}

Essa função vai ser muito útil quando você tem um erro por dados duplicados, vai refazer a tentativa usando dados novos.

Bom espero que gostem, ou ajude alguém que precisa…

--

--