Il postino newman gestisce i codici di stato
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
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.