Простые примеры отправки GET и POST запросов на Java c использованием библиотеки Rest-Assured

в 15:33, , рубрики: Тестирование веб-сервисов

В наше время автоматизаторов всё чаще просят заавтоматизировать не только функциональные тесты для веба с использованием Selenium, но и написать тесты на API. В частности, для веб сервисов архитектуры REST.

В этой записке я приведу пару простых примеров использования библиотеки Rest-Assured, предназначенной для тестирования REST сервисов. Она поддерживает все типы запросов: POST, GET, PUT, DELETE, OPTIONS, PATCH, HEAD и может быть использована для проверки ответов по посланным запросам.

В качестве системы сборки я использую Maven, как наиболее простую и удобную. Итак, добавим в pom.xml следующие зависимости:

        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>3.0.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180130</version>
        </dependency>

Далее привожу собственно примеры кода. Я думаю, комментарии излишни.

Пример посылки GET-запроса

package com.example.tests;

import static io.restassured.RestAssured.get;

import io.restassured.response.Response;
import org.json.JSONArray;
import org.json.JSONException;
import org.testng.Assert;
import org.testng.annotations.Test;

public class RestAssuredTestArticle {

    @Test(description = "GET")
    public void getRequestExampleTest() throws JSONException {
        Response response = get("http://restcountries.eu/rest/v1/name/russia");
        JSONArray jsonResponse = new JSONArray(response.asString());
        String capital = jsonResponse.getJSONObject(0).getString("capital");
        Assert.assertEquals(capital, "Moscow");
    }

}

Пример посылки POST-запроса

package com.example.tests;

import io.restassured.RestAssured;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;
import org.json.JSONObject;
import org.testng.Assert;
import org.testng.annotations.Test;

import java.util.Date;

public class RestAssuredTestArticle {

    @Test(description = "POST")
    public void postRequestExampleTest() {
        String someRandomString = String.format("%1$TH%1$TM%1$TS", new Date());

        JSONObject requestBody = new JSONObject();
        requestBody.put("FirstName", someRandomString);
        requestBody.put("LastName", someRandomString);
        requestBody.put("UserName", someRandomString);
        requestBody.put("Password", someRandomString);
        requestBody.put("Email", someRandomString + "@gmail.com");

        RequestSpecification request = RestAssured.given();
        request.header("Content-Type", "application/json");
        request.body(requestBody.toString());
        Response response = request.post("http://restapi.demoqa.com/customer/register");

        int statusCode = response.getStatusCode();
        Assert.assertEquals(statusCode, 201);
        String successCode = response.jsonPath().get("SuccessCode");
        Assert.assertEquals(successCode, "OPERATION_SUCCESS");
        System.out.println(response.getBody().asString());
    }

}

Автор: рекрут

Источник

Поделиться

* - обязательные к заполнению поля