jMeter - Plan testów usług internetowych

W tym rozdziale dowiemy się, jak utworzyć plan testów, aby przetestować usługę sieciową. Do naszych celów testowych stworzyliśmy prosty projekt usługi sieciowej i wdrożyliśmy go lokalnie na serwerze Tomcat.

Utwórz projekt usługi internetowej

Do stworzenia projektu webservice użyliśmy Eclipse IDE. Najpierw napisz interfejs punktu końcowego usługiHelloWorld pod pakietem com.tutorialspoint.ws. Zawartość HelloWorld.java jest następująca -

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

Ta usługa ma metodę getHelloWorldMessage który przyjmuje parametr typu String.

Następnie utwórz klasę implementacji HelloWorldImpl.java pod pakietem 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");
   }
}

Opublikujmy teraz tę usługę sieciową lokalnie, tworząc wydawcę punktu końcowego i udostępniając usługę na serwerze.

Metoda publikowania przyjmuje dwa parametry -

  • Ciąg adresu URL punktu końcowego.

  • Implementor, w tym przypadku klasa implementacji HelloWorld, która jest udostępniana jako usługa sieci Web w punkcie końcowym identyfikowanym przez adres URL wymieniony w powyższym parametrze.

Zawartość HelloWorldPublisher.java jest następująca -

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

Zmodyfikuj zawartość web.xml, jak pokazano poniżej -

<?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>

Aby wdrożyć tę aplikację jako usługę sieciową, potrzebowalibyśmy innego pliku konfiguracyjnego sun-jaxws.xml. Zawartość tego pliku jest następująca -

<?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>

Teraz, gdy wszystkie pliki są gotowe, struktura katalogów wyglądałaby tak, jak pokazano na poniższym zrzucie ekranu -

  • Teraz utwórz plik WAR tej aplikacji.

  • Wybierz projekt → kliknij prawym przyciskiem myszy → Eksportuj → plik WAR.

  • Zapisz to jako hello.war plik pod webapps folder serwera Tomcat.

  • Teraz uruchom serwer Tomcat.

  • Po uruchomieniu serwera powinieneś mieć dostęp do usługi sieciowej za pomocą adresu URL - http: // localhost: 8080 / hello / hello

Utwórz plan testów JMeter

Teraz stwórzmy plan testów, aby przetestować powyższą usługę sieciową.

Zmień nazwę planu testów

  • Otwórz okno JMeter, klikając /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Kliknij węzeł Test Plan.

  • Zmień nazwę tego węzła planu testów na WebserviceTest.

Dodaj grupę wątków

Dodaj jedną grupę wątków, która jest symbolem zastępczym dla wszystkich innych elementów, takich jak Samplers, Controllers i Listeners.

  • Kliknij prawym przyciskiem myszy na WebserviceTest (nasz plan testów) → Dodaj → Wątki (Użytkownicy) → Grupa wątków. Grupa wątków zostanie dodana w węźle Plan testów (WebserviceTest).

  • Następnie zmodyfikujmy domyślne właściwości grupy wątków, aby pasowały do ​​naszych testów. Następujące właściwości są zmieniane -

    • Name - użytkownik serwisu internetowego

    • Number of Threads (Users) - 2

    • Ramp-Up Period - pozostaw domyślną wartość 0 sekund.

    • Loop Count - 2

Dodaj próbnik - żądanie SOAP / XML-RPC

Teraz, gdy zdefiniowaliśmy użytkowników, nadszedł czas na zdefiniowanie zadań, które będą wykonywać.

Dodamy element żądania SOAP / XML-RPC -

  • Kliknij prawym przyciskiem myszy, aby wyświetlić menu Dodaj.

  • Wybierz Dodaj → Sampler → Żądanie SOAP / XML-RPC.

  • Wybierz element żądania SOAP / XML-RPC w drzewie

  • Edytuj następujące właściwości, jak na poniższym obrazku -

  • W tym elemencie wprowadzane są następujące szczegóły -

    • Name − SOAP/XML-RPC Request

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

    • Soap/XML-RPC Data - Wprowadź poniższą zawartość

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

Dodaj słuchacza

Ostatnim elementem, który musisz dodać do swojego planu testów, jest Listener. Ten element jest odpowiedzialny za przechowywanie wszystkich wyników twoich żądań HTTP w pliku i prezentację wizualnego modelu danych.

  • Wybierz element użytkownika usługi sieciowej.

  • Dodaj odbiornik widoku drzewa wyników, wybierając Dodaj → Listener → Wyświetl drzewo wyników.

Uruchom plan testów

Teraz zapisz powyższy plan testów jako test_webservice.jmx . Wykonaj ten plan testów za pomocą opcji Uruchom → Start.

Wyświetl dane wyjściowe

Następujące dane wyjściowe można zobaczyć w odbiorniku.

Na ostatnim obrazie możesz zobaczyć wiadomość odpowiedzi „Hello Manisha to JAX WS world”.