Kai atliekate API testavimą, kartais API arba galiniai taškai yra apsaugoti. Tai reiškia, kad turite būti patvirtinti ir įgalioti atlikti tam tikrus veiksmus.
Yra daugybė būdų apsaugoti API, tačiau vienas paprastas būdas yra naudoti Basic
Autentifikavimas.
Šiame įraše apžvelgsime, kaip išsiųsti Basic
Autent antraštė užtikrinta 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());
}
Kai kuriais atvejais serveris gali naudoti atsakymo į iššūkius mechanizmą, nurodantį, kada vartotojas turi autentifikuotis, kad galėtų pasiekti šaltinį.
Pagal numatytuosius nustatymus „REST-assured“ laukia, kol serveris užginčys prieš siųsdamas kredencialus, todėl biblioteka pateikia išankstinę direktyvą, kurią galime naudoti:
given()
.auth()
.preemptive()
.basic('required_username', 'required_password')