Όταν κάνετε δοκιμές API, μερικές φορές προστατεύονται τα API ή τα τελικά σημεία. Αυτό σημαίνει ότι πρέπει να γίνει έλεγχος ταυτότητας και εξουσιοδότηση για εκτέλεση συγκεκριμένων ενεργειών.
Υπάρχουν πολλοί τρόποι για την προστασία των API, αλλά ένας απλός τρόπος είναι να χρησιμοποιήσετε το Basic
Αυθεντικοποίηση.
Σε αυτήν την ανάρτηση, θα δούμε πώς να στείλουμε το Basic
επικεφαλίδα auth στο REST-εξασφαλισμένο.
import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.response.Response; import org.junit.Before; import org.junit.jupiter.api.*; import static io.restassured.RestAssured.given; public class UserScenarios {
private String path;
private String validRequest = '{
' +
' 'username': 'some-user',
' +
' 'email': 'some-user@email.com',
' +
' 'password': 'Passw0rd123!'
}';
@Before
public void setup() {
RestAssured.baseURI = 'http://localhost:8080';
path = '/users';
}
@Test
public void createUser() {
Response response = given()
.auth()
.preemptive()
.basic('required_username', 'required_password')
.header('Accept', ContentType.JSON.getAcceptHeader())
.contentType(ContentType.JSON)
.body(validRequest)
.post(path)
.then().extract().response();
Assertions.assertEquals(201, response.getStatusCode());
}
Σε ορισμένες περιπτώσεις, ένας διακομιστής μπορεί να χρησιμοποιήσει έναν μηχανισμό απόκρισης πρόκλησης για να υποδείξει πότε ο χρήστης πρέπει να κάνει έλεγχο ταυτότητας για πρόσβαση στον πόρο.
Από προεπιλογή, το REST -ured περιμένει τον διακομιστή να προκαλέσει προτού στείλει τα διαπιστευτήρια και έτσι η βιβλιοθήκη παρέχει την προληπτική οδηγία που μπορούμε να χρησιμοποιήσουμε:
given()
.auth()
.preemptive()
.basic('required_username', 'required_password')