Middle
Hogyan fogja ellenőrizni a webszolgáltatást?
sobes.tech MI
Válasz az MI-től
Egy webszolgáltatás ellenőrzése több kulcsfontosságú szakaszt és tesztelési típusokat foglal magában:
-
Elvárások és specifikációk megértése:
- Dokumentáció tanulmányozása (Swagger/OpenAPI, WSDL, funkcionális specifikációk).
- Kétséges pontok tisztázása a fejlesztőcsapattal vagy az üzleti elemzőkkel.
-
Tesztelési tervek készítése:
- Tesztstratégia meghatározása.
- Tesztelési módszerek és eszközök kiválasztása.
- Tesztadatok mennyiségének tervezése.
-
Funkcionális tesztelés:
- Pozitív forgatókönyvek: A várt viselkedés ellenőrzése helyes bemeneti adatok esetén.
- Negatív forgatókönyvek: Hibás adatok, hibák, határértékek kezelése.
- Minden művelet (GET, POST, PUT, DELETE stb.) tesztelése.
- Kérések és válaszok szerkezetének validálása (JSON, XML).
- HTTP státuszkódok ellenőrzése (2xx - siker, 4xx - klienshiba, 5xx - szerverhiba).
- A szerver újraindítása működés közben (negatív forgatókönyvekhez).
-
Integrációs tesztek:
- A webszolgáltatás és más szolgáltatások vagy rendszerek közötti interakció ellenőrzése.
- Olyan eszközök használata, amelyek képesek szimulálni az függő szolgáltatások válaszait (mock-szerverek).
-
Teljesítmény tesztelése:
- Terheléses tesztelés: A szolgáltatás viselkedésének ellenőrzése várható terhelés alatt.
- Stressz tesztelés: A működés ellenőrzése nagyobb terhelés alatt a hibapont meghatározásához.
- Stabilitási tesztelés (Endurance testing):
- A válaszidő és a sávszélesség mérése.
-
Biztonsági tesztek:
- Hitelesítés és jogosultság ellenőrzése.
- Beviteli adatok validálása SQL injection, XSS és más sebezhetőségek megelőzése érdekében.
- HTTPS meglétének ellenőrzése.
-
Adatellenőrzések:
- A szolgáltatás által visszaadott adatok helyességének ellenőrzése.
- Az adatok integritásának ellenőrzése létrehozás, frissítés és törlés műveleteknél.
- Nagy adatmennyiségekkel végzett tesztek.
-
Teszt automatizálás:
- Rutinszerű funkcionális tesztek automatizálása.
- API tesztekhez könyvtárak és keretrendszerek használata (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
- CI/CD beállítása az automatikus tesztfuttatáshoz.
-
Eszközök:
- Postman, Insomnia (kézi és automatizált tesztek).
- Apache JMeter, LoadRunner, Gatling (teljesítmény tesztelés).
- OWASP ZAP, Burp Suite (biztonsági tesztek).
- Programozási nyelvi könyvtárak (Rest Assured Java-hoz, Requests Python-hoz stb.).
-
Jelentéskészítés:
- Talált hibák dokumentálása részletes reprodukálási lépésekkel, várható és tényleges eredményekkel, kérés/válasz adatokkal, HTTP státusszal és naplókkal.
- A tesztelés előrehaladásáról szóló jelentések készítése.
Automatizált teszt példája Java-ban a Rest Assured használatával:
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") // Az alap URL
.when()
.get("/users/" + userId) // Módszer és végpont
.then()
.statusCode(200) // Állapotkód ellenőrzése
.body("id", equalTo(userId)) // A válasz törzsében lévő mező ellenőrzése
.body("name", equalTo("John Doe")); // Egy másik mező ellenőrzése
}
@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") // A tartalom típusa
.body(requestBody) // A kérés törzse
.when()
.post("/users") // Módszer és végpont létrehozásához
.then()
.statusCode(201) // "Létrehozva" státuszkód ellenőrzése
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // Ellenőrzés, hogy ID létrejött
}
}