Middle
Kuidas saate automatiseerida API testimist?
sobes.tech AI
Vastus AI-lt
API testimise automatiseerimine võib toimuda järgmistel viisidel:
-
Raamistikute/raamatukogude kasutamine:
- Rest-Assured (Java): Populaarne raamatukogu REST API testimiseks.
- Requests (Python): Lihtne ja võimas raamatukogu HTTP-päringute tegemiseks.
- SuperTest (Node.js): Raamatukogu HTTP-serverite ja API testimiseks.
- Postman/Newman: Rakendused GUI ja CLI abil API testide loomiseks ja käivitamiseks.
-
Teststsenaariumide loomine:
- Iga lõpp-punkti jaoks määratletakse positiivsed ja negatiivsed juhtumid.
- Skenaariumid hõlmavad päringute saatmist erinevate parameetritega, vastuse staatuskoodide kontrolli, sisu (JSON, XML jms) ja päiste kontrolli.
-
Andmete kontroll:
- JSON skeemi valideerimine, struktuuri ja andmetüüpide kontroll.
- Tegelike väärtuste võrdlemine oodatavate väärtustega.
-
Andmete haldamine:
- Testandmete kasutamine, mis on salvestatud failidesse (JSON, CSV) või andmebaasidesse.
- Andmete ettevalmistamine enne testi ja puhastamine pärast seda (vajadusel).
-
Integreerimine CI/CD süsteemidega:
- Automaatne API testide käivitamine iga koodimuudatuse järel või regulaarselt (näiteks iga õhtu).
- Jenkins, GitLab CI, GitHub Actions jms kasutamine.
-
Aruandlus:
- Üksikasjalike aruannete koostamine testide tulemustest (näiteks Allure Framework).
Näide Rest-Assured kasutamisest:
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 põhileht
RestAssured.baseURI = "https://reqres.in/api";
// GET-päringu saatmine
given()
.when()
.get("/users/2")
.then()
.statusCode(200) // Staatuskoodi kontroll
.body("data.id", equalTo(2)) // Vastuse keha kontroll
.body("data.first_name", equalTo("Janet"));
}
}
Python Requests näide:
import requests
def test_get_user_by_id():
url = "https://reqres.in/api/users/2"
response = requests.get(url)
assert response.status_code == 200 # Staatuskoodi kontroll
data = response.json()
assert data['data']['id'] == 2 # Vastuse keha kontroll
assert data['data']['first_name'] == 'Janet'