2 votes

Connexion locale refusée lors de l'intégration de WireMock et JMeter

J'essaie d'intégrer Wiremock dans un plan de test Jmeter afin que chaque fois que j'exécute le plan de test, il démarre une instance de WireMock au début et exécute ensuite les tests que j'ai définis. J'ai suivi cette réponse ( https://stackoverflow.com/a/49130518/12912945 ) mais le problème que je rencontre est que j'obtiens toujours l'erreur :

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

D'après ce que je peux voir, le serveur Wiremock ne démarre jamais bien que j'aie le code suivant dans un JSR223 Sampler au début du plan de test :

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);
    }
}

J'ai essayé d'ajouter le classpath mais j'ai l'impression de ne pas l'avoir fait correctement ou de rater quelque chose.

Gracias.

0voto

Dmitri T Points 63468

Vous définissez le main fonction mais je n'ai pas vu où vous l'exécutiez. En d'autres termes, votre code d'initialisation Wiremock n'est pas du tout exécuté.

Vous devez appeler explicitement ce main pour que votre code soit exécuté. Pour ce faire, ajoutez la ligne suivante à la fin de votre script :

WireMockTest.main()

Une fois cela fait, l'échantillonneur JSR223 invoquera le code à l'intérieur de l'élément main et le serveur Wiremock sera démarré.

Une autre option consiste à supprimer ces class et les déclarations de fonctions et utiliser simplement

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); 

car les script que vous définissez dans les éléments de test de la JSR223 ne nécessitent pas d'élément d'information. point d'entrée

Vérifier Apache Groovy - Pourquoi et comment l'utiliser ? pour plus d'informations sur les scripts Groovy dans les tests JMeter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X