При подключении WireMock и JMeter отказано в локальном соединении - PullRequest
2 голосов
/ 17 февраля 2020

Я пытаюсь интегрировать Wiremock в план тестирования Jmeter, чтобы каждый раз, когда я выполняю план тестирования, он вначале запускал экземпляр WireMock, а затем запускал описанные мной тесты. Я следовал этому ответу ({ ссылка }), но проблема, с которой я столкнулся, заключается в том, что я всегда получаю сообщение об ошибке:

Response message:Non HTTP response message: Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect

Из того, что я вижу, сервер Wiremock никогда не запускается, даже хотя в начале плана тестирования у меня есть следующий код в сэмплере JSR223:

import com.github.tomakehurst.wiremock.WireMockServer;
import com.github.tomakehurst.wiremock.stubbing.StubMapping;
import static com.github.tomakehurst.wiremock.client.WireMock.*;

public class WireMockTest {

    public static void main(String[] args) {
        WireMockServer wireMockServer = new WireMockServer();
        configureFor("127.0.0.1", 8080);
        wireMockServer.start();
        StubMapping foo = stubFor(get(urlEqualTo("/some/thing"))
                .willReturn(aResponse()
                        .withStatus(200)
                        .withBody("Hello World")));
        wireMockServer.addStubMapping(foo);
    }
}

Может ли кто-нибудь указать мне правильное направление, как правильно интегрировать эти два, я попытался добавить в classpath но я чувствую, что я не сделал это правильно, или я что-то упустил

Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2020

Вы определяете функцию main , но я не смог увидеть, где вы ее выполняете. Другими словами, ваш код инициализации Wiremock не выполняется вообще.

Вам необходимо явно вызвать эту функцию main, чтобы ваш код был выполнен, для этого добавьте следующую строку в конец вашего скрипта:

WireMockTest.main()

После того, как все сделано Сэмплер JSR223 вызовет код внутри функции main, и сервер Wiremock будет запущен.

Другой вариант - удалить эти class и объявления функций и просто использовать

import com.github.tomakehurst.wiremock.WireMockServer;
import com.github.tomakehurst.wiremock.stubbing.StubMapping;
import static com.github.tomakehurst.wiremock.client.WireMock.*;

WireMockServer wireMockServer = new WireMockServer();
configureFor("127.0.0.1", 8080);
wireMockServer.start();
StubMapping foo = stubFor(get(urlEqualTo("/some/thing"))
      .willReturn(aResponse()
              .withStatus(200)
              .withBody("Hello World")));
wireMockServer.addStubMapping(foo); 
* 1016. * поскольку сценарий, который вы определяете в элементах теста JSR223, не требует точки входа

Проверьте Apache Groovy - Почему и как вы должны его использовать статья для получения дополнительной информации о Groovy сценариях в тестах JMeter.

...