Tukang pos menangani kode status
Saya punya pertanyaan apakah mungkin untuk menguji lebih dari satu kode status. Kasus adalah 201 ketika pengguna dibuat dan 409 ketika pengguna sudah ada ketika saya menjalankan kembali kasus uji dengan kumpulan pengguna yang sama. 201 ditangani tetapi 409 tidak. Sebuah
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 ^
EDIT:
Karena 200saya mendapatkan objek pengguna, saya tidak dapat memposting objek ini di sini
untuk 409string Pengguna sudah Ada
Jawaban
Cara yang lebih elegan untuk menguji status 200 atau 409 adalah:
pm.expect(pm.response.code).to.be.oneOf([200, 409]);
Kesalahan terjadi jika statusnya 409, karena permintaan tidak mengembalikan JSON, tetapi berupa string. Saya akan menaruh sesuatu seperti
if (pm.response.code == 200) {
var data = pm.response.json()
// your code
}
Tetapi saya sangat menyarankan Anda, untuk tidak melakukan ini! Dalam hal pengujian, Anda ingin satu pengujian hanya memeriksa satu hal. Jika tidak, hal ini kemungkinan besar akan menyebabkan kesalahpahaman dan peningkatan upaya pemeliharaan.
Saya akan mengusulkan untuk membuat satu permintaan untuk membuat pengguna, dengan tes yang sesuai. Dan satu lagi, yang mencoba membuat ulang pengguna, lagi-lagi dengan tes yang sesuai.