Как автоматический запрос входа в систему перед отправкой другого запроса - PullRequest
0 голосов
/ 13 июля 2020

Я новичок в тестировании 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);
}

}
...