jMeter - Piano di test del servizio Web
In questo capitolo impareremo come creare un piano di test per testare un WebService. Ai fini del nostro test, abbiamo creato un semplice progetto di servizio web e lo abbiamo implementato sul server Tomcat in locale.
Crea progetto di servizio Web
Per creare un progetto di servizio web, abbiamo utilizzato Eclipse IDE. Scrivere prima l'interfaccia dell'endpoint del servizioHelloWorld sotto il pacchetto com.tutorialspoint.ws. I contenuti di HelloWorld.java sono i seguenti:
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);
}
Questo servizio ha un metodo getHelloWorldMessage che accetta un parametro String.
Successivamente, crea la classe di implementazione HelloWorldImpl.java sotto il pacchetto 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");
}
}
Pubblichiamo ora questo servizio Web in locale creando l'Endpoint publisher ed esponiamo il servizio sul server.
Il metodo di pubblicazione richiede due parametri:
Stringa URL endpoint.
Oggetto implementatore, in questo caso la classe di implementazione HelloWorld, che viene esposta come servizio Web nell'endpoint identificato dall'URL menzionato nel parametro precedente.
I contenuti di HelloWorldPublisher.java sono i seguenti:
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());
}
}
Modifica il contenuto di web.xml come mostrato di seguito -
<?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>
Per distribuire questa applicazione come servizio web, avremmo bisogno di un altro file di configurazione sun-jaxws.xml. I contenuti di questo file sono i seguenti:
<?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>
Ora che tutti i file sono pronti, la struttura della directory apparirà come mostrato nello screenshot seguente:
Ora crea un file WAR di questa applicazione.
Scegli il progetto → fai clic con il pulsante destro del mouse → Esporta → File WAR.
Salva come hello.war file sotto il webapps cartella del server Tomcat.
Ora avvia il server Tomcat.
Una volta avviato il server, dovresti essere in grado di accedere al servizio web con l'URL - http: // localhost: 8080 / hello / hello
Crea un piano di test JMeter
Ora creiamo un piano di test per testare il servizio web di cui sopra.
Rinomina il piano di test
Apri la finestra JMeter facendo clic su /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Fare clic sul nodo Piano di test.
Rinomina questo nodo del piano di test come WebserviceTest.
Aggiungi gruppo thread
Aggiungi un gruppo thread, che è un segnaposto per tutti gli altri elementi come campionatori, controller e ascoltatori.
Fare clic con il tasto destro su WebserviceTest (il nostro piano di test) → Aggiungi → Thread (utenti) → Gruppo thread. Il gruppo di thread verrà aggiunto nel nodo Piano di test (WebserviceTest).
Successivamente, modifichiamo le proprietà predefinite del gruppo di thread per adattarle ai nostri test. Le seguenti proprietà vengono modificate:
Name - utente del servizio web
Number of Threads (Users) - 2
Ramp-Up Period - lasciare il valore predefinito di 0 secondi.
Loop Count - 2
Aggiungi campionatore - Richiesta SOAP / XML-RPC
Ora che abbiamo definito gli utenti, è il momento di definire le attività che eseguiranno.
Aggiungeremo l'elemento richiesta SOAP / XML-RPC -
Fare clic con il pulsante destro del mouse per visualizzare il menu Aggiungi.
Selezionare Aggiungi → Campionatore → Richiesta SOAP / XML-RPC.
Selezionare l'elemento SOAP / XML-RPC Request nella struttura ad albero
Modifica le seguenti proprietà come nell'immagine qui sotto:
In questo elemento vengono inseriti i seguenti dettagli:
Name − SOAP/XML-RPC Request
URL - http: // localhost: 8080 / ciao / ciao? Wsdl
Soap/XML-RPC Data - Immettere i contenuti seguenti
<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>
Aggiungi ascoltatore
L'ultimo elemento che devi aggiungere al tuo piano di test è un ascoltatore. Questo elemento è responsabile dell'archiviazione di tutti i risultati delle richieste HTTP in un file e della presentazione di un modello visivo dei dati.
Seleziona l'elemento utente del servizio web.
Aggiungere un listener Visualizza albero dei risultati selezionando Aggiungi → Listener → Visualizza albero dei risultati.
Esegui il piano di test
Ora salva il piano di test sopra come test_webservice.jmx . Esegui questo piano di test utilizzando l'opzione Esegui → Avvia.
Visualizza l'output
Il seguente output può essere visto nel listener.
Nell'ultima immagine, puoi vedere il messaggio di risposta "Hello Manisha to JAX WS world".