Middle
Kuidas te kontrollite veebiteenust?
sobes.tech AI
Vastus AI-lt
Veebiteenuse kontroll hõlmab mitmeid põhietappe ja testitüüpe:
-
Nõuete ja spetsifikatsioonide mõistmine:
- Dokumentatsiooni uurimine (Swagger/OpenAPI, WSDL, funktsionaalsed spetsifikatsioonid).
- Ebaselgete punktide täpsustamine arendusmeeskonna või ärianalüütikutega.
-
Testimise planeerimine:
- Testistrateegia määratlemine.
- Meetodite ja tööriistade valik.
- Testandmete mahu planeerimine.
-
Funktsionaalne testimine:
- Positiivsed stsenaariumid: Ootuspärase käitumise kontroll õige sisendandmetega.
- Negatiivsed stsenaariumid: Vigaste andmete, vigade ja piirmäärade töötlemise kontroll.
- Kõigi operatsioonide (GET, POST, PUT, DELETE jms) testimine.
- Päringute ja vastuste struktuuri valideerimine (JSON, XML).
- HTTP vastuste olekute kontroll (2xx - edu, 4xx - kliendi viga, 5xx - serveri viga).
- Serveri töö ajal taaskäivitamine (negatiivne stsenaarium).
-
Integreerimise testimine:
- Veebiteenuse koostöö teiste teenuste või süsteemidega kontroll.
- Tööriistade kasutamine, mis suudavad emuleerida sõltuvate teenuste vastuseid (mock-serverid).
-
Jõudluse testimine:
- Koormustest: Teenuse käitumise kontroll oodatud koormuse korral.
- Stressitest: Töö kontroll suurema koormuse korral, tõrkepunkti määramine.
- Stabiilsuse test: Töö kontroll pika aja jooksul koormuse all.
- Väljastusaja ja läbilaskevõime mõõtmine.
-
Turvatestimine:
- Autentimise ja autoriseerimise kontroll.
- Sisendi valideerimine SQL-injektsioonide, XSS-i ja teiste haavatavuste vältimiseks.
- HTTPS olemasolu kontroll.
-
Andmete testimine:
- Tagastatavate andmete õigsuse kontroll.
- Andmete terviklikkuse kontroll loomise, uuendamise ja kustutamise operatsioonide ajal.
- Töö suurte andmekogumitega testimine.
-
Automatiseeritud testimine:
- Funktsionaalsete testide rutiinide automatiseerimine.
- API-testide automatiseerimiseks raamatukogude ja raamistikud (Rest Assured, JUnit/TestNG, Pytest, Postman Newman) kasutamine.
- CI/CD seadistamine automaatselt käivitamiseks.
-
Tööriistad:
- Postman, Insomnia (käsi- ja automatiseeritud testimine).
- Apache JMeter, LoadRunner, Gatling (jõudluse testimine).
- OWASP ZAP, Burp Suite (turvatestimine).
- Tarkvarakeelte raamatukogud (Java jaoks Rest Assured, Python jaoks Requests ja teised).
-
Aruandlus:
- Leitud vigade üksikasjalik kirjeldus, taasalustamise sammud, oodatud ja tegelikud tulemused, päringu/vastuse andmed, HTTP-olekud ja logid.
- Testimise käigus koostatud aruanded.
Java näide automatiseeritud testist Rest Assured kasutades:
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") // Teenuse põhiaadress
.when()
.get("/users/" + userId) // Meetod ja lõpp-punkt
.then()
.statusCode(200) // Vastuse koodi kontroll
.body("id", equalTo(userId)) // Vastuse keha välja kontroll
.body("name", equalTo("John Doe")); // Teise välja kontroll
}
@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") // sisu tüüp
.body(requestBody) // päringu keha
.when()
.post("/users") // meetod ja lõpp-punkt
.then()
.statusCode(201) // "Loodud" staatus
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // ID kontroll
}
}