- jMeter - Best Practices
- jMeter - Regular Expressions
- jMeter - Functions
- jMeter - Listeners
- jMeter - Monitor Test Plan
- jMeter - JMS Test Plan
- jMeter - Webservice Test Plan
- jMeter - FTP Test Plan
- jMeter - Database Test Plan
- jMeter - Web Test Plan
- jMeter - Test Plan Elements
- jMeter - Build Test Plan
- jMeter - Environment
- jMeter - Overview
- jMeter - Home
jMeter Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
jMeter - Webservice Test Plan
In this chapter, we will learn how to create a Test Plan to test a WebService. For our test purpose, we have created a simple webservice project and deployed it on the Tomcat server locally.
Create Webservice Project
To create a webservice project, we have used Ecppse IDE. First write the Service Endpoint Interface HelloWorld under the package com.tutorialspoint.ws. The contents of the HelloWorld.java are as follows −
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) pubpc interface HelloWorld { @WebMethod String getHelloWorldMessage(String string); }
This service has a method getHelloWorldMessage which takes a String parameter.
Next, create the implementation class HelloWorldImpl.java under the package com.tutorialspoint.ws.
package com.tutorialspoint.ws; import javax.jws.WebService; @WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld") pubpc class HelloWorldImpl implements HelloWorld { @Override pubpc String getHelloWorldMessage(String myName) { return("Hello "+myName+" to JAX WS world"); } }
Let us now pubpsh this web service locally by creating the Endpoint pubpsher and expose the service on the server.
The pubpsh method takes two parameters −
Endpoint URL String.
Implementor object, in this case the HelloWorld implementation class, which is exposed as a Web Service at the endpoint identified by the URL mentioned in the parameter above.
The contents of HelloWorldPubpsher.java are as follows −
package com.tutorialspoint.endpoint; import javax.xml.ws.Endpoint; import com.tutorialspoint.ws.HelloWorldImpl; pubpc class HelloWorldPubpsher { pubpc static void main(String[] args) { Endpoint.pubpsh("http://localhost:9000/ws/hello", new HelloWorldImpl()); } }
Modify the web.xml contents as shown below −
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Apppcation 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> <web-app> <pstener> <pstener-class> com.sun.xml.ws.transport.http.servlet.WSServletContextListener </pstener-class> </pstener> <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>
To deploy this apppcation as a webservice, we would need another configuration file sun-jaxws.xml. The contents of this file are as follows −
<?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>
Now that all the files are ready, the directory structure would look as shown in the following screenshot −
Now create a WAR file of this apppcation.
Choose the project → right cpck → Export → WAR file.
Save this as hello.war file under the webapps folder of Tomcat server.
Now start the Tomcat server.
Once the server is started, you should be able to access the webservice with the URL − http://localhost:8080/hello/hello
Create JMeter Test plan
Now let us create a test plan to test the above webservice.
Rename the Test Plan
Open the JMeter window by cpcking /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Cpck the Test Plan node.
Rename this Test Plan node as WebserviceTest.
Add Thread Group
Add one Thread Group, which is placeholder for all other elements pke Samplers, Controllers, and Listeners.
Right cpck on WebserviceTest (our Test Plan) → Add → Threads (Users) → Thread Group. Thread Group will get added under the Test Plan (WebserviceTest) node.
Next, let us modify the default properties of the Thread Group to suit our testing. Following properties are changed −
Name − webservice user
Number of Threads (Users) − 2
Ramp-Up Period − leave the the default value of 0 seconds.
Loop Count − 2
Add Sampler - SOAP/XML-RPC Request
Now that we have defined the users, it is time to define the tasks that they will be performing.
We will add SOAP/XML-RPC Request element −
Right-cpck mouse button to get the Add menu.
Select Add → Sampler → SOAP/XML-RPC Request.
Select the SOAP/XML-RPC Request element in the tree
Edit the following properties as in the image below −
The following details are entered in this element −
Name − SOAP/XML-RPC Request
URL − http://localhost:8080/hello/hello?wsdl
Soap/XML-RPC Data − Enter the below contents
<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>
Add Listener
The final element you need to add to your Test Plan is a Listener. This element is responsible for storing all of the results of your HTTP requests in a file and presenting a visual model of the data.
Select the webservice user element.
Add a View Results Tree pstener by selecting Add → Listener → View Results Tree.
Run the Test Plan
Now save the above test plan as test_webservice.jmx. Execute this test plan using Run → Start option.
View the Output
The following output can be seen in the pstener.
In the last image, you can see the response message "Hello Manisha to JAX WS world".
Advertisements