jMeter - Webservice-Testplan

In diesem Kapitel erfahren Sie, wie Sie einen Testplan zum Testen eines WebService erstellen. Zu unserem Testzweck haben wir ein einfaches Webservice-Projekt erstellt und es lokal auf dem Tomcat-Server bereitgestellt.

Webservice-Projekt erstellen

Um ein Webservice-Projekt zu erstellen, haben wir die Eclipse-IDE verwendet. Schreiben Sie zuerst die Service-EndpunktschnittstelleHelloWorld unter dem Paket com.tutorialspoint.ws. Der Inhalt von HelloWorld.java lautet wie folgt:

package com.tutorialspoint.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)

public interface HelloWorld {
   @WebMethod String getHelloWorldMessage(String string);
}

Dieser Dienst hat eine Methode getHelloWorldMessage das nimmt einen String-Parameter.

Erstellen Sie als Nächstes die Implementierungsklasse HelloWorldImpl.java unter dem Paket com.tutorialspoint.ws.

package com.tutorialspoint.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
   public String getHelloWorldMessage(String myName) {
      return("Hello "+myName+" to JAX WS world");
   }
}

Lassen Sie uns diesen Webdienst jetzt lokal veröffentlichen, indem Sie den Endpoint-Herausgeber erstellen und den Dienst auf dem Server verfügbar machen.

Die Veröffentlichungsmethode akzeptiert zwei Parameter:

  • Endpunkt-URL-Zeichenfolge.

  • Implementierungsobjekt, in diesem Fall die HelloWorld-Implementierungsklasse, die als Webdienst an dem Endpunkt verfügbar gemacht wird, der durch die im obigen Parameter angegebene URL identifiziert wird.

Der Inhalt von HelloWorldPublisher.java lautet wie folgt:

package com.tutorialspoint.endpoint;

import javax.xml.ws.Endpoint;
import com.tutorialspoint.ws.HelloWorldImpl;

public class HelloWorldPublisher {
   public static void main(String[] args) {
      Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
   }
}

Ändern Sie den Inhalt von web.xml wie unten gezeigt -

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
   Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
   <listener>
      <listener-class>
         com.sun.xml.ws.transport.http.servlet.WSServletContextListener
      </listener-class>
   </listener>
	
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
	
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
	
   <session-config>
      <session-timeout>120</session-timeout>
   </session-config>
	
</web-app>

Um diese Anwendung als Webservice bereitzustellen, benötigen wir eine andere Konfigurationsdatei sun-jaxws.xml. Der Inhalt dieser Datei lautet wie folgt:

<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
   xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
   version = "2.0">
   
   <endpoint name = "HelloWorld" 
      implementation = "com.tutorialspoint.ws.HelloWorldImpl" 
      url-pattern = "/hello"/>
</endpoints>

Nachdem alle Dateien fertig sind, sieht die Verzeichnisstruktur wie im folgenden Screenshot dargestellt aus:

  • Erstellen Sie nun eine WAR-Datei dieser Anwendung.

  • Wählen Sie das Projekt → Rechtsklick → Exportieren → WAR-Datei.

  • Speichern Sie dies als hello.war Datei unter der webapps Ordner des Tomcat-Servers.

  • Starten Sie nun den Tomcat-Server.

  • Sobald der Server gestartet ist, sollten Sie über die URL http: // localhost: 8080 / hello / hello auf den Webservice zugreifen können

Erstellen Sie einen JMeter-Testplan

Lassen Sie uns nun einen Testplan erstellen, um den oben genannten Webservice zu testen.

Benennen Sie den Testplan um

  • Öffnen Sie das JMeter-Fenster, indem Sie auf /home/manisha/apache-jmeter2.9/bin/jmeter.sh klicken.

  • Klicken Sie auf den Knoten Testplan.

  • Benennen Sie diesen Testplanknoten in WebserviceTest um.

Thread-Gruppe hinzufügen

Fügen Sie eine Thread-Gruppe hinzu, die Platzhalter für alle anderen Elemente wie Sampler, Controller und Listener ist.

  • Klicken Sie mit der rechten Maustaste auf WebserviceTest (unser Testplan) → Hinzufügen → Threads (Benutzer) → Thread-Gruppe. Die Thread-Gruppe wird unter dem Knoten Testplan (WebserviceTest) hinzugefügt.

  • Als Nächstes ändern wir die Standardeigenschaften der Thread-Gruppe entsprechend unseren Tests. Folgende Eigenschaften werden geändert -

    • Name - Webservice-Benutzer

    • Number of Threads (Users) - 2

    • Ramp-Up Period - Belassen Sie den Standardwert von 0 Sekunden.

    • Loop Count - 2

Sampler hinzufügen - SOAP / XML-RPC-Anforderung

Nachdem wir die Benutzer definiert haben, ist es Zeit, die Aufgaben zu definieren, die sie ausführen werden.

Wir werden das SOAP / XML-RPC-Anforderungselement hinzufügen -

  • Klicken Sie mit der rechten Maustaste, um das Menü Hinzufügen aufzurufen.

  • Wählen Sie Hinzufügen → Sampler → SOAP / XML-RPC-Anforderung.

  • Wählen Sie das SOAP / XML-RPC-Anforderungselement in der Baumstruktur aus

  • Bearbeiten Sie die folgenden Eigenschaften wie im Bild unten -

  • Die folgenden Details werden in dieses Element eingegeben -

    • Name − SOAP/XML-RPC Request

    • URL - http: // localhost: 8080 / hallo / hallo? Wsdl

    • Soap/XML-RPC Data - Geben Sie den folgenden Inhalt ein

<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:web = "http://ws.tutorialspoint.com/">
   <soapenv:Header/>
	
   <soapenv:Body>
      <web:getHelloWorldMessage>
         <arg0>Manisha</arg0>
      </web:getHelloWorldMessage>
   </soapenv:Body>
   
</soapenv:Envelope>

Listener hinzufügen

Das letzte Element, das Sie Ihrem Testplan hinzufügen müssen, ist ein Listener. Dieses Element ist dafür verantwortlich, alle Ergebnisse Ihrer HTTP-Anforderungen in einer Datei zu speichern und ein visuelles Modell der Daten darzustellen.

  • Wählen Sie das Webservice-Benutzerelement aus.

  • Fügen Sie einen Listener zum Anzeigen des Ergebnisbaums hinzu, indem Sie Hinzufügen → Listener → Ergebnisbaum anzeigen auswählen.

Führen Sie den Testplan aus

Speichern Sie nun den obigen Testplan als test_webservice.jmx . Führen Sie diesen Testplan mit der Option Ausführen → Start aus.

Zeigen Sie die Ausgabe an

Die folgende Ausgabe ist im Listener zu sehen.

Im letzten Bild sehen Sie die Antwortnachricht "Hallo Manisha an JAX WS world".