Автоматизация POST API с использованием selenium с заголовком JSON

#java #rest #selenium

#java #rest #selenium

Вопрос:

Я хочу автоматизировать REST API с использованием selenium (java), возможно ли это? если у него есть заголовок и основная часть в форме json

Комментарии:

1. Вы имеете в виду из браузера с помощью fetch? Это кажется плохой идеей. Почему бы не выполнять обычные http-запросы?

2. Вы не вводите selenium в автоматизированный REST API

Ответ №1:

В Java вы можете использовать ApacheHttpClient, например, полученный из https://www.mkyong.com/java/apache-httpclient-examples /

Например, метод в ApacheHttpClientPost может быть таким:

 public static String post(String tokenMobile, String method, String version, String body) throws Exception{

    try {
        HttpClient httpClient = HttpClientBuilder.create().build();

        URIBuilder builder = new URIBuilder();
        builder.setScheme("https").setHost(host).setPath(method)
                   .setParameter("", ""); //Params
        URI uri = builder.build();
        HttpGet httpget = new HttpGet(uri);

        HttpPost postRequest = new HttpPost(httpget.getURI()); //Header
        postRequest.addHeader("Content-Type", "application/json");
        postRequest.addHeader("version", version);
        postRequest.addHeader("Authorization", "Bearer " tokenMobile);

        StringEntity input = new StringEntity(body); //Body in json
        input.setContentType("application/json");
        postRequest.setEntity(input);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader br = new BufferedReader(
                new InputStreamReader((response.getEntity().getContent())));
        String output;
        while ((output = br.readLine()) != null) {
            StringBuilder stringBuilder = new StringBuilder();
            outputs = stringBuilder.append(output).toString();
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return outputs;
}
  

Комментарии:

1. Спасибо, я постараюсь

Ответ №2:

Selenium — это инструмент, предназначенный для автоматизации тестовых примеров пользовательского интерфейса или e2e. Вы можете интегрировать тестовый пример Selenium с тестовыми примерами API, но это всегда плохая идея.

Попробуйте что-то вроде Rest-Assured, Postman, HTTPClient , если вы хотите автоматизировать тестовые примеры API.