Сброс соединения в тесте с использованием REST-assured

У меня есть тест с использованием REST-гарантии. В этом тесте, когда я передаю полный хост и путь к методу get(), все идет нормально, тест проходит. Но когда я пытаюсь использовать RestAssured.baseURI и RestAssured.basePath, как показано в этой части руководства: http://code.google.com/p/rest-assured/wiki/Usage#Default_values, проверка завершается сбросом подключения. Ниже я вставляю рабочую версию и версию с baseURI, которая не работает, и получаю сообщение об ошибке. Помогите пожалуйста :>

Рабочая версия:

import com.jayway.restassured.RestAssured;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.Iterator;

import static com.jayway.restassured.RestAssured.basic;
import static com.jayway.restassured.RestAssured.given;
import static org.hamcrest.Matchers.containsString;

public class SomeTest {

    @Test(dataProvider = "provideData")
    public void doSomeTest(String someParameter, String someExpectedValue) {

        given().
                auth().basic("login", "pass").
                param("someParameter", someParameter).
        when().
                get("http://some.host/some-base-path/some-path-relevant-in-test").
        then().
                statusCode(200).
                body("some json", containsString(someExpectedValue)).
                log().ifError();
    }

    @DataProvider(name = "provideData")
    public Iterator<Object[]> provideData() {

        //this provides data for test method in irrelevant way
    }

}

Не рабочая версия, которая приводит к сбросу соединения:

import com.jayway.restassured.RestAssured;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.Iterator;

import static com.jayway.restassured.RestAssured.basic;
import static com.jayway.restassured.RestAssured.given;
import static org.hamcrest.Matchers.containsString;

public class SomeTest {

    @Test(dataProvider = "provideData")
        public void doSomeTest(String someParameter, String someExpectedValue) {

        RestAssured.baseURI = "http://some.host";
        RestAssured.basePath = "/some-base-path";

        given().
                auth().basic("login", "pass").
                param("someParameter", someParameter).
        when().
                get("/some-path-relevant-in-test").
        then().
                statusCode(200).
                body("some json", containsString(someExpectedValue)).
                log().ifError();
    }

    @DataProvider(name = "provideData")
    public Iterator<Object[]> provideData() {

        //this provides data for test method in irrelevant way
    }
}

Ошибка:

mar 19, 2014 10:26:01 AM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
mar 19, 2014 10:26:01 AM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request

Что я делаю не так? :(


person Barbra    schedule 19.03.2014    source источник
comment
привет Барбра Как вы решили проблему? У меня такая же ситуация, соединение опирается на определенные успокаивающие вызовы при сериализации сущностей.   -  person Dreamer    schedule 21.02.2017


Ответы (2)


Вы делаете много запросов за короткий промежуток времени? Вы можете попробовать закрывать простаивающие соединения после каждого запроса и/или повторно использовать экземпляр HTTP-клиента для нескольких запросов.

person Johan    schedule 20.03.2014
comment
На самом деле, поскольку это poc, на данный момент это весь мой код, за исключением той части, которая предоставляет данные, поэтому я не делаю много запросов. Но я добавил конфиг, который вы упомянули. К сожалению, это ничего не изменило, но все равно спасибо :) Возможно, я неправильно установил baseURI и/или basePath, но, следуя документации, я не могу понять, как еще я должен это сделать, чтобы заставить его работать... - person Barbra; 25.03.2014

Кажется, это ошибка в Restassured, исправленная в версии 2.8.1. Произошла утечка ресурсов, соединения не закрывались. См. https://github.com/rest-assured/rest-assured/issues/ 633.

person Gabe    schedule 21.09.2016