JMeter Web Service | JMeter - Webservice Test Plan - jmeter - jmeter tutorial



How to create a Test Plan to test a WebService using JMeter?

  • 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.
  • If the sampler appears to be getting an error from the webservice, double check the SOAP message and make sure the format is correct. In particular, make sure the xmlns attributes are exactly the same as the WSDL.
  • learn apache jmeter tutorials - webservice

    learn apache jmeter tutorials - web service Example

  • If the xml namespace is different, the webservice will likely return an error. Xmethods contains a list of public webservice for those who want to test their test plan.
 process of webservice test

Create Webservice Project

  • To create a webservice project, we have used Eclipse IDE. First write the Service Endpoint Interface HelloWorld under the package com.wikitechy.ws. The contents of the HelloWorld.java are as follows

package com.wikitechy.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);

}
  • This service has a method getHelloWorldMessage which takes a String parameter.
  • Next, create the implementation class HelloWorldImpl.java under the package com.wikitechy.ws.
package com.wikitechy.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.wikitechy.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
	
   public String getHelloWorldMessage(String myName){
      return("Hello "+myName+" to JAX WS world");
   }
}
  • Let us now publish this web service locally by creating the Endpoint publisher and expose the service on the server. The publish 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 HelloWorldPublisher.java are as follows
package com.wikitechy.endpoint;

import javax.xml.ws.Endpoint;

import com.wikitechy.ws.HelloWorldImpl;

public class HelloWorldPublisher {

   public static void main(String[] args){
      Endpoint.publish("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 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>
  • To deploy this application 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.wikitechy.ws.HelloWorldImpl" url-pattern="/hello"/>
	
</endpoints>
  • Now that all the files are ready, the directory structure would look as shown in the following screenshot
 code of webservice in jmeter
  • Now create a WAR file of this application.
  • Choose the project > right click > 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.

jmeter tutorials - jmeter load testing - jmeter download - download jmeter - apache jmeter

Rename the Test Plan

  • Open the JMeter window by clicking /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
  • Click the Test Plan node.
  • Rename this Test Plan node as WebserviceTest.
 rename action in webservice process

Add Thread Group

  • Add one Thread Group, which is placeholder for all other elements like Samplers, Controllers, and Listeners. Right click 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
 threadgroup in webservice

Add Sampler - SOAP/XML-RPC Request

 rpc request in webservice
  • 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-click 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.wikitechy.com/">

   <soapenv:Header/>
	
   <soapenv:Body>
	
      <web:getHelloWorldMessage>
         <arg0>Manisha</arg0>
      </web:getHelloWorldMessage>
		
   </soapenv:Body>
	
</soapenv:Envelope>
  request of webservice
jmeter tutorials - jmeter load testing - jmeter download - download jmeter - apache jmeter

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 listener by selecting Add > Listener > View Results Tree.
 listener in webservice
jmeter tutorials - jmeter load testing - jmeter download - download jmeter - apache jmeter

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

 run test in webservice


 webservice run test code

 response data in webservice
  • In the last image, you can see the response message "Hello Manisha to JAX WS world".

This jmeter tutorial site provides you to the following keypoints on meter interview questions , apache jmeter download , apache jmeter , jmeter load testing , jmeter plugins , jmeter download , download jmeter , jmeter tutorials , load testing jmeter , jmeter summary report , jmeter apache , jmeter api testing , what is jmeter , jmeter load testing example , learn jmeter , how jmeter works , jmeter web service testing , jmeter example , jmeter load testing tutorial , install jmeter , load testing with jmeter , download jmeter for windows , performance testing using jmeter , jmeter functions , mobile app performance testing using jmeter , jmeter gui , install jmeter ubuntu , jmeter stress test , how to use jmeter

Related Searches to Jmeter Web Service | JMeter - Webservice Test Plan