Middle
Можеш ли дати пример како би изабрао тест случајеве за PUT захтев?
sobes.tech АИ
Одговор од АИ
Izbiraću test slučajeve na osnovu sledećeg:
-
Uspešna ažuriranja:
- Ažuriranje svih polja validnim vrednostima.
- Ažuriranje jednog ili više polja, ostavljajući ostala nepromenjena.
- Ažuriranje polja sa graničnim vrednostima (ako je primenjivo).
-
Neuspešna ažuriranja (negativni testovi):
- Nevažeći podaci:
- Neispravan format podataka za polja (npr. niz umesto broja).
- Vrednosti koje premašuju maksimalnu dužinu ili su van dozvoljenog opsega.
- Nedostatak obaveznih polja u telu zahteva.
- Nepostojeći resurs:
- PUT zahtev sa ID-jem koji ne postoji u sistemu.
- Sukob podataka:
- Pokušaj ažuriranja resursa koji je izmenjen od strane drugog korisnika (ako se koristi mehanizam verzionisanja ili blokiranja).
- Nedostatak prava:
- Pokušaj ažuriranja resursa bez odgovarajućih prava.
- Validacioni problemi:
- Kršenje poslovne logike ili ograničenja baze podataka (npr. dupliranje jedinstvene vrednosti).
- Pogrešan Content-Type:
- Slanje zahteva sa Content-Type koji se razlikuje od očekivanog (npr.
text/plainumestoapplication/json).
- Slanje zahteva sa Content-Type koji se razlikuje od očekivanog (npr.
- Prazno telo zahteva:
- Slanje zahteva bez tela.
- Nevažeći podaci:
-
Granični uslovi:
- Ažuriranje resursa sa minimalnim skupom polja (ako je dozvoljeno).
- Ažuriranje resursa sa maksimalnim skupom polja.
- Provera ponašanja pri slanju u telu zahteva dodatnih, neočekivanih polja.
Primer strukture test slučajeva:
| Slučaj | Opis | Očekivani rezultat |
|---|---|---|
| Uspešna ažuriranja | Ažuriranje svih polja sa ispravnim vrednostima. | 200 OK / 204 No Content (zavisi od API-ja) |
| Nepostojeći ID | Pokušaj ažuriranja resursa sa ID-jem koji ne postoji. | 404 Not Found |
| Nevažeći format podataka | Pokušaj ažuriranja polja tipa broj sa nizom. | 400 Bad Request |
| Nedostaje obavezno polje | Nedostatak u telu zahteva polja označenog kao obavezno. | 400 Bad Request |
| Nedostatak prava | Pokušaj ažuriranja resursa od strane korisnika bez potrebnih prava. | 403 Forbidden |
Za automatizaciju bih koristio okvire poput RestAssured (Java), Requests (Python) ili Supertest (Node.js) i alate za generisanje test podataka.