Middle
Kaip patikrinsite internetinę paslaugą?
sobes.tech AI
Atsakymas iš AI
Tinklo paslaugos patikrinimas apima keletą pagrindinių etapų ir testavimo tipų:
-
Reikalavimų ir specifikacijų supratimas:
- Dokumentacijos studijavimas (Swagger/OpenAPI, WSDL, funkcinių specifikacijų).
- Neaiškumų aiškinimas su kūrimo komanda ar verslo analitikais.
-
Testavimo planavimas:
- Testavimo strategijos nustatymas.
- Metodų ir įrankių pasirinkimas.
- Testinių duomenų kiekio planavimas.
-
Funkcinis testavimas:
- Teigiami scenarijai: Tikrinimas, ar veikia tikėtinas elgesys su teisingais įėjimo duomenimis.
- Neigiami scenarijai: Tikrinimas, kaip apdorojami neteisingi duomenys, klaidos, ribinės reikšmės.
- Visų operacijų (GET, POST, PUT, DELETE ir kt.) testavimas.
- Užklausų ir atsakymų struktūros validavimas (JSON, XML).
- HTTP atsakymų būsenų patikra (2xx - sėkmė, 4xx - kliento klaida, 5xx - serverio klaida).
- Serverio perkrovimas darbo metu (neigiame scenarijui).
-
Integracijos testavimas:
- Web paslaugos sąveikos su kitomis paslaugomis ar sistemomis patikra.
- Naudojimas įrankių, kurie gali emuliuoti priklausomų paslaugų atsakymus (moke-serveriai).
-
Našumo testavimas:
- Apkrovos testavimas: Paslaugos elgesio patikra esant tikėtina apkrovai.
- Streso testavimas: Darbo patikra esant didesnei nei tikėtina apkrovai, klaidų taško nustatymas.
- Stabilumo testavimas (Endurance testing):
- Atsako laiko ir pralaidumo matavimas.
-
Saugumo testavimas:
- Autentifikacijos ir autorizacijos patikra.
- Duomenų įvedimo validavimas SQL injekcijoms, XSS ir kitoms pažeidžiamybėms.
- HTTPS buvimo patikra.
-
Duomenų testavimas:
- Grąžinamų duomenų tikslumo patikra.
- Duomenų vientisumo patikra kuriant, atnaujinant ir trinant.
- Darbas su dideliais duomenų kiekiais testavimas.
-
Automatizuotas testavimas:
- Rutininės funkcinių testų automatizavimas.
- API testų automatizavimui naudoti bibliotekas ir framework'us (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
- CI/CD nustatymas automatinio paleidimo.
-
Įrankiai:
- Postman, Insomnia (rankinis ir automatizuotas testavimas).
- Apache JMeter, LoadRunner, Gatling (našumo testavimas).
- OWASP ZAP, Burp Suite (saugumo testavimas).
- Programavimo kalbų bibliotekos (Java Rest Assured, Python Requests ir kt.).
-
Ataskaitų teikimas:
- Rasta defektų išsamus aprašymas, atkūrimo žingsniai, tikėtini ir faktiniai rezultatai, užklausos/atsakymo duomenys, HTTP būsenos ir žurnalai.
- Testavimo proceso ataskaitų sudarymas.
Java pavyzdys automatizuoto testo naudojant 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") // Paslaugos pagrindinis URL
.when()
.get("/users/" + userId) // Metodas ir galinė nuoroda
.then()
.statusCode(200) // Patikrinimas, ar atsakymo kodas 200
.body("id", equalTo(userId)) // Patikrinimas, ar atsakymo turinyje yra teisingas ID
.body("name", equalTo("John Doe")); // Patikrinimas, ar yra teisingas vardas
}
@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") // turinio tipas
.body(requestBody) // užklausos turinys
.when()
.post("/users") // metodas ir galinė nuoroda
.then()
.statusCode(201) // Patikrinimas, ar sukurtas
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // Patikrinimas, ar yra sukurtas ID
}
}