Sobes.tech
Middle

Kā jūs pārbaudīsiet tīmekļa pakalpojumu?

sobes.tech AI

Atbilde no AI

Tīmekļa pakalpojuma pārbaude ietver vairākus galvenos posmus un testēšanas veidus:

  1. Prasību un specifikāciju izpratne:

    • Dokumentācijas izpēte (Swagger/OpenAPI, WSDL, funkcionālās specifikācijas).
    • Neskaidrību precizēšana ar izstrādes komandu vai biznesa analītiķiem.
  2. Testēšanas plānošana:

    • Stratēģijas noteikšana.
    • Metožu un rīku izvēle.
    • Testēšanas datu apjoma plānošana.
  3. Funkcionāla testēšana:

    • Pozitīvi scenāriji: Sagaidāmās uzvedības pārbaude ar paretiem ievades datiem.
    • Negatīvi scenāriji: Nepareizu datu, kļūdu, robežvērtību apstrādes pārbaude.
    • Visu operāciju (GET, POST, PUT, DELETE utt.) testēšana.
    • Pieprasījumu un atbilžu struktūras validācija (JSON, XML).
    • HTTP atbilžu statusu pārbaude (2xx - panākums, 4xx - klienta kļūda, 5xx - servera kļūda).
    • Servera darba pārstartēšana darba laikā (negatīvs scenārijs).
  4. Integrācijas testēšana:

    • Web pakalpojuma mijiedarbības ar citiem pakalpojumiem vai sistēmām pārbaude.
    • Rīku izmantošana, kas var emulēt atkarīgo pakalpojumu atbildes (moka serveri).
  5. Veiktspējas testēšana:

    • Slodzes testēšana: Pakalpojuma uzvedības pārbaude ar paredzēto slodzi.
    • Stresa testēšana: Darbības pārbaude ar lielāku nekā paredzēts slodzi, kļūdu punkta noteikšana.
    • Stabilitātes testēšana (Endurance testing):
    • Atbildes laika un caurlaidības mērīšana.
  6. Drošības testēšana:

    • Autentifikācijas un autorizācijas pārbaude.
    • Ievades validācija SQL injekcijām, XSS un citām ievainojamībām.
    • HTTPS esamības pārbaude.
  7. Datu testēšana:

    • Atgrieztās datu pareizības pārbaude.
    • Datu integritātes pārbaude, veidojot, atjauninot un dzēšot.
    • Darbs ar lieliem datu apjomiem testēšana.
  8. Automatizēta testēšana:

    • Rutīnas funkcionālo testu automatizācija.
    • API testu automatizācijai izmantot bibliotēkas un frameworkus (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
    • CI/CD konfigurācija automātiskai palaišanai.
  9. Instrumenti:

    • Postman, Insomnia (rokām un automatizēti testēšana).
    • Apache JMeter, LoadRunner, Gatling (veiktspējas testēšana).
    • OWASP ZAP, Burp Suite (drošības testēšana).
    • Programmatūras valodu bibliotēkas (Java Rest Assured, Python Requests utt.).
  10. Ziņošana:

    • Atklāto defektu detalizēts apraksts, atkārtošanas soļi, gaidāmie un faktiskie rezultāti, pieprasījuma/atbildes dati, HTTP statuss un žurnāli.
    • Testēšanas procesa ziņojumu sastādīšana.

Java piemērs automatizētam testam, izmantojot 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") // Pakalpojuma galvenais URL
            .when()
            .get("/users/" + userId) // Metode un galapunkts
            .then()
            .statusCode(200) // Atbilstības koda pārbaude
            .body("id", equalTo(userId)) // Atbilstība atbildes ķermeņa laukam
            .body("name", equalTo("John Doe")); // Cits lauks pārbaude
    }

    @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") // satura tips
            .body(requestBody) // pieprasījuma ķermenis
            .when()
            .post("/users") // metodes un galapunkta pievienošana
            .then()
            .statusCode(201) // "Izveidots" statuss
            .body("name", equalTo("Jane Smith"))
            .body("id", org.hamcrest.Matchers.notNullValue()); // ID pārbaude
    }
}