Middle
Ako budete kontrolovať webovú službu?
sobes.tech AI
Odpoveď od AI
Kontrola webovej služby zahŕňa niekoľko kľúčových krokov a typov testovania:
-
Porozumenie požiadavkám a špecifikáciám:
- Štúdium dokumentácie (Swagger/OpenAPI, WSDL, funkčné špecifikácie).
- Upresnenie nejasností s vývojovým tímom alebo obchodnými analytikmi.
-
Plánovanie testovania:
- Stanovenie stratégie testovania.
- Výber metód a nástrojov testovania.
- Plánovanie objemu testovacích dát.
-
Testovanie funkčnosti:
- Pozitívne scenáre: Kontrola očakávaného správania pri správnych vstupných dátach.
- Negatívne scenáre: Kontrola spracovania nesprávnych dát, chýb, hraničných hodnôt.
- Testovanie všetkých operácií (GET, POST, PUT, DELETE atď.).
- Validácia štruktúry požiadaviek a odpovedí (JSON, XML).
- Kontrola stavov HTTP odpovedí (2xx - úspech, 4xx - chyba klienta, 5xx - chyba servera).
- Reštart servera počas prevádzky (pre negatívny scenár).
-
Testovanie integrácie:
- Kontrola interakcie webovej služby s inými službami alebo systémami.
- Použitie nástrojov, ktoré môžu emulovať odpovede závislých služieb (mock servery).
-
Testovanie výkonu:
- Záťažové testovanie: Kontrola správania služby pri očakávanej záťaži.
- Stress testovanie: Kontrola práce pri záťaži vyššej ako očakávaná na určenie bodu zlyhania.
- Testovanie stability (Endurance testing): Kontrola práce služby pod záťažou počas dlhšieho času.
- Meranie doby odozvy a priepustnosti.
-
Testovanie bezpečnosti:
- Kontrola autentifikácie a autorizácie.
- Validácia vstupov na prevenciu SQL injection, XSS a iných zraniteľností.
- Kontrola prítomnosti HTTPS.
-
Testovanie dát:
- Kontrola správnosti dát vracaných službou.
- Kontrola integrity dát pri operáciách vytvárania, aktualizácie a mazania.
- Testovanie práce s veľkými objemami dát.
-
Automatizácia testovania:
- Automatizácia rutinných funkčných testov.
- Použitie knižníc a rámcov na automatizáciu API testov (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
- Nastavenie CI/CD na automatické spúšťanie testov.
-
Nástroje:
- Postman, Insomnia (ručné a automatizované testovanie).
- Apache JMeter, LoadRunner, Gatling (testovanie výkonu).
- OWASP ZAP, Burp Suite (testovanie bezpečnosti).
- Knižnice pre programovacie jazyky (Rest Assured pre Java, Requests pre Python atď.).
-
Správa:
- Zaznamenávanie nájdených chýb s podrobným popisom krokov na reprodukciu, očakávaných a skutočných výsledkov, dát požiadavky/odpovede, stavu HTTP a logov.
- Vypracovanie správ o priebehu testovania.
Príklad automatizovaného testu v Jave s použitím Rest Assured:
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
class UserServiceTest {
@Test
void testGetUserById() {
int userId = 1;
given()
.baseUri("http://api.example.com") // Základné URL služby
.when()
.get("/users/" + userId) // Metóda a endpoint
.then()
.statusCode(200) // Kontrola kódu stavu odpovede
.body("id", equalTo(userId)) // Kontrola poľa v tele odpovede
.body("name", equalTo("John Doe")); // Kontrola iného poľa
}
@Test
void testCreateUser() {
String requestBody = "{\n" +
" \"name\": \"Jane Smith\",\n" +
" \"email\": \"jane.smith@example.com\"\n" +
"}";
given()
.baseUri("http://api.example.com")
.contentType("application/json") // Nastavenie typu obsahu
.body(requestBody) // Odovzdanie tela požiadavky
.when()
.post("/users") // Metóda a endpoint na vytvorenie
.then()
.statusCode(201) // Kontrola kódu stavu "Vytvorené"
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // Kontrola, že ID je vytvorené
}
}