Il postino newman gestisce i codici di stato

Sep 22 2020

Ho una domanda se è possibile avere più di un controllo del codice di stato nel test. Il caso è 201 quando l'utente viene creato e 409 quando l'utente esiste già quando rieseguo i casi di test con lo stesso batch di utenti. 201 è gestito ma 409 no. un

 var data = pm.response.json()
 pm.test("Status test", function () {
  return  pm.response.to.have.status(200) || pm.response.to.have.status(409);
     
});


There was an error in evaluating the test script:  JSONError: Unexpected token 'U' at 1:1 User already Exists ^

MODIFICARE:

Poiché 200sto ricevendo un oggetto utente, non posso pubblicare questo oggetto qui

per la 409stringa L'utente esiste già

Risposte

1 ChristianBaumann Sep 22 2020 at 19:47

Un modo più elegante per testare lo stato 200 o 409 sarebbe:

pm.expect(pm.response.code).to.be.oneOf([200, 409]);

L'errore si verifica quando lo stato è 409, perché la richiesta non restituisce JSON, ma una stringa. Metterei qualcosa di simile

if (pm.response.code == 200) {
    var data = pm.response.json()
    // your code
}

Ma ti consiglio vivamente di non farlo! In termini di test, vuoi che un test controlli solo una cosa. In caso contrario, molto probabilmente questo porterà a malintesi e ad un aumento degli sforzi di manutenzione.

Proporrei di creare una richiesta per creare utenti, con i relativi test. E un altro, che cerca di ricreare gli utenti, sempre con i test corrispondenti.