Трафик HTTP-запроса не проходит через Fiddler, когда мой тестовый код содержит спецификацию запроса или ответа - PullRequest
0 голосов
/ 03 октября 2019

Ниже приведен суперкласс, который имеет RequestSpecification и RequestSpecification, а также содержит вызов прокси-сервера (список Fiddler на порту 8888).


import org.junit.BeforeClass;

import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.builder.ResponseSpecBuilder;
import io.restassured.specification.RequestSpecification;
import io.restassured.specification.ResponseSpecification;

public class VideoGameDB_MultipleRequestRespSpecificatoin {

    public static RequestSpecification videoGameDB_requestSpecification;
    public static ResponseSpecification videoGameDB_responseSpecification;

    @BeforeClass
    public static void setup() {

          videoGameDB_requestSpecification = new RequestSpecBuilder().
          setBaseUri("http://localhost"). setPort(8080). setBasePath("/app").
          addHeader("Control-Type", "application/json"). addHeader("Accept",
          "application/json"). build();


        RestAssured.requestSpecification = videoGameDB_requestSpecification;

        videoGameDB_responseSpecification = new ResponseSpecBuilder().
                expectStatusCode(200).
                build();

        RestAssured.responseSpecification = videoGameDB_responseSpecification;

        RestAssured.proxy("localhost", 8888);
    }
}

Ниже класса, содержащего метод теста.


import org.junit.Test;

import static io.restassured.RestAssured.given;

import com.videoGameDB.config.VideoGameDB_MultipleRequestRespSpecificatoin;

public class TestVideoGameDB_MultipleRequestRespSpecificatoin extends VideoGameDB_MultipleRequestRespSpecificatoin {

    @Test
    public void testCase() {
        given().
        spec(videoGameDB_requestSpecification).
        when().
        get("videogames/2").
        then().
        spec(videoGameDB_responseSpecification);
    }
}

После запуска тестового запроса juint трафик не проходит через Fiddler. Попытался удалить Спецификацию Запроса и Ответа из моего кода и попробовал с простыми строками как ниже и трафик проходит через Fiddler, и я также вижу запрос и ответ. Не совсем уверен, что происходит, когда были использованы спецификации запросов и ответов.


import org.junit.BeforeClass;

import io.restassured.RestAssured;

public class VG_TestConfig {

    @BeforeClass
    public static void vg_Setup() {
        RestAssured.baseURI = "http://localhost";
        RestAssured.port = 8080;
        RestAssured.basePath = "/app";

        RestAssured.proxy("localhost", 8888);
    }
}

import org.junit.Test;

import com.videoGameDB.config.VG_TestConfig;
import static io.restassured.RestAssured.given;

public class VG_FirstTestCase extends VG_TestConfig{

    @Test
    public void vgTestCase() {
        given().
        when().
        get("videogames/2").
        then().
        statusCode(200);
    }
}

Может кто-нибудь предложить, какие шаги я должен выполнить, чтобы трафик проходил через Fiddler при использовании спецификации Запрос / Ответ.

1 Ответ

0 голосов
/ 03 октября 2019

Вам необходимо настроить прокси при создании спецификации запроса. Ваш VideoGameDB_MultipleRequestRespSpecificatoin класс будет выглядеть так:

public class VideoGameDB_MultipleRequestRespSpecificatoin {

    public static RequestSpecification videoGameDB_requestSpecification;
    public static ResponseSpecification videoGameDB_responseSpecification;

    @BeforeClass
    public static void setup() {

          videoGameDB_requestSpecification = new RequestSpecBuilder()
            .setProxy("localhost", 8888) //Configure your proxy here
            .setBaseUri("http://localhost")
            .setPort(8080)
            .setBasePath("/app")
            .addHeader("Control-Type", "application/json")
            .addHeader("Accept", "application/json")
            .build();


        RestAssured.requestSpecification = videoGameDB_requestSpecification;

        videoGameDB_responseSpecification = new ResponseSpecBuilder().
                expectStatusCode(200).
                build();

        RestAssured.responseSpecification = videoGameDB_responseSpecification;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...