Sobes.tech
Middle

Πώς μπορείτε να αυτοματοποιήσετε τις δοκιμές API;

sobes.tech AI

Απάντηση από AI

Ο αυτοματισμός δοκιμών API μπορεί να πραγματοποιηθεί με τους ακόλουθους τρόπους:

  1. Χρήση πλαισίων/βιβλιοθηκών:

    • Rest-Assured (Java): Δημοφιλής βιβλιοθήκη για δοκιμές REST API.
    • Requests (Python): Απλή και ισχυρή βιβλιοθήκη για HTTP αιτήματα.
    • SuperTest (Node.js): Βιβλιοθήκη για δοκιμές HTTP διακομιστών και API.
    • Postman/Newman: Εφαρμογές με GUI και CLI για δημιουργία και εκτέλεση δοκιμών API.
  2. Δημιουργία σεναρίων δοκιμών:

    • Ορίζονται θετικά και αρνητικά σενάρια για κάθε endpoint.
    • Τα σενάρια περιλαμβάνουν την αποστολή αιτημάτων με διαφορετικές παραμέτρους, τον έλεγχο κωδικών κατάστασης, περιεχομένου σώματος (JSON, XML κ.ά.) και επικεφαλίδων.
  3. Έλεγχος δεδομένων:

    • Επικύρωση JSON schema για τον έλεγχο της δομής και των τύπων δεδομένων στην απάντηση.
    • Συγκρίσεις πραγματικών τιμών στην απάντηση με τις αναμενόμενες.
  4. Διαχείριση δεδομένων:

    • Χρήση δοκιμαστικών δεδομένων αποθηκευμένων σε αρχεία (JSON, CSV) ή βάσεις δεδομένων.
    • Προετοιμασία δεδομένων πριν από την εκτέλεση της δοκιμής και καθαρισμός μετά (αν απαιτείται).
  5. Ενσωμάτωση με συστήματα CI/CD:

    • Ρύθμιση αυτόματης εκτέλεσης δοκιμών API σε κάθε αλλαγή κώδικα ή τακτικά (π.χ. κάθε βράδυ).
    • Χρήση Jenkins, GitLab CI, GitHub Actions κ.ά.
  6. Αναφορά:

    • Δημιουργία λεπτομερών αναφορών αποτελεσμάτων δοκιμών (π.χ. Allure Framework).

Παράδειγμα χρήσης του Rest-Assured:

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() {
        // Βασική διεύθυνση URL API
        RestAssured.baseURI = "https://reqres.in/api";

        // Αποστολή GET αιτήματος
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Έλεγχος κωδικού κατάστασης
                .body("data.id", equalTo(2))  // Έλεγχος τιμής στο σώμα της απάντησης
                .body("data.first_name", equalTo("Janet"));
    }
}

Παράδειγμα χρήσης Requests (Python):

import requests

def test_get_user_by_id():
    url = "https://reqres.in/api/users/2"
    response = requests.get(url)

    assert response.status_code == 200  # Έλεγχος κωδικού κατάστασης
    data = response.json()
    assert data['data']['id'] == 2  # Έλεγχος τιμής στο σώμα της απάντησης
    assert data['data']['first_name'] == 'Janet'