Middle
Kā jūs varat automatizēt API testēšanu?
sobes.tech AI
Atbilde no AI
API testēšanas automatizācija var tikt veikta šādi:
-
Rāmi/bibliotēku izmantošana:
- Rest-Assured (Java): Populāra bibliotēka REST API testēšanai.
- Requests (Python): Vienkārša un jaudīga bibliotēka HTTP pieprasījumu veikšanai.
- SuperTest (Node.js): Bibliotēka HTTP serveru un API testēšanai.
- Postman/Newman: Programmas ar GUI un CLI, lai izveidotu un palaistu API testus.
-
Testu scenāriju izveide:
- Katram galapunktam tiek definēti pozitīvi un negatīvi gadījumi.
- Scenāriji ietver pieprasījumu sūtīšanu ar dažādiem parametriem, atbilžu statusa kodu pārbaudi, satura (JSON, XML utt.) un galvenes pārbaudi.
-
Datu pārbaude:
- JSON shēmas validācija, pārbaudot struktūru un datu tipus.
- Faktisko vērtību salīdzināšana ar gaidītajām.
-
Datu pārvaldība:
- Testu datu izmantošana, kas ir saglabāta failos (JSON, CSV) vai datu bāzēs.
- Datu sagatavošana pirms testa un tīrīšana pēc tā (ja nepieciešams).
-
Integrācija ar CI/CD sistēmām:
- Automātiska API testu palaišana pēc katras koda izmaiņas vai regulāri (piemēram, katru vakaru).
- Jenkins, GitLab CI, GitHub Actions utt.
-
Ziņošana:
- Detalētu ziņojumu ģenerēšana par testu rezultātiem (piemēram, Allure Framework).
Rest-Assured piemērs:
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
public class ApiTests {
@Test
public void testGetUserById() {
// API galvenais URL
RestAssured.baseURI = "https://reqres.in/api";
// GET pieprasījuma sūtīšana
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Statusa koda pārbaude
.body("data.id", equalTo(2)) // Atbildes ķermeņa vērtības pārbaude
.body("data.first_name", equalTo("Janet"));
}
}
Python Requests piemērs:
import requests
def test_get_user_by_id():
url = "https://reqres.in/api/users/2"
response = requests.get(url)
assert response.status_code == 200 # Statusa koda pārbaude
data = response.json()
assert data['data']['id'] == 2 # Atbildes ķermeņa vērtības pārbaude
assert data['data']['first_name'] == 'Janet'