როდესაც აკეთებთ 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- დარწმუნებული ელოდება სერვერის მიერ სერთიფიკატების გაგზავნამდე გამოწვევას და ამიტომ ბიბლიოთეკა გთავაზობთ წინასწარ დირექტივას, რომლის გამოყენებაც შეგვიძლია:
given()
.auth()
.preemptive()
.basic('required_username', 'required_password')