Я новичок в тестировании API и RestAssured. Я пытался получить доступ к логину API и другому запросу, так как вы видите, что перед отправкой запроса требуется еще один запрос bearer token
. Мой вопрос, как изменить свой код, когда я хочу выполнить запрос, он сначала автоматически отправит запросы на вход без написания функции входа. Я ищу в Google, мы можем использовать RestAssured.authentication, но я не пробовал. Вот код, который я написал до сих пор:
public class apiConnect {
static String apiURL = PropertiesReader.readProperty("apiUrl");
private static String token;
public static void main(String[] args) {
login("dummy@mail.com","test123");
applyEvent("event1");
login("dummy2@mail.com","test456");
cancelEvent("event2");
}
public static void login(String email, String password){
try {
RestAssured.baseURI = PropertiesReader.readProperty("apiUrl");
RequestSpecification request = RestAssured.given();
request.header("Content-Type", "application/json");
request.header("Accept", "application/json");
JSONObject requestBody = new JSONObject();
requestBody.put("email", email);
requestBody.put("password",password);
request.body(requestBody.toJSONString());
System.out.println(requestBody.toJSONString());
Response response = request.post("/auth/login");
int statusCode = response.getStatusCode();
String jsonString = response.asString();
System.out.println(statusCode);
// Assert that correct status code is returned.
Assert.assertEquals(statusCode,200);
token = JsonPath.from(jsonString).get("content");
System.out.println(token);
}catch(AssertionError e){
System.out.println("Failed to login");
}
}
public static void applyEvent(String eventId) {
RestAssured.baseURI = PropertiesReader.readProperty("apiUrl");
RequestSpecification request = RestAssured.given();
request.header("Authorization", "Bearer " + token);
request.header("Content-Type", "application/json");
request.header("Accept", "application/json");
request.param("eventId", eventId);
Response response = request.post("/event/apply");
String jsonString = response.asString();
System.out.println(jsonString);
}
public static void cancelEvent() {
RestAssured.baseURI = PropertiesReader.readProperty("apiUrl");
RequestSpecification request = RestAssured.given();
request.header("Authorization", "Bearer " + token);
request.header("Content-Type", "application/json");
request.header("Accept", "application/json");
request.param("eventId", eventId);
Response response = request.post("/event/apply");
String jsonString = response.asString();
System.out.println(jsonString);
int statusCode = response.getStatusCode();
Assert.assertEquals(statusCode,200);
}
}