SOAP

Send SOAP Request Using JMeter

SOAP (Simple Object Access Protocol) is a protocol specification for exchanging structured information the implementation of web services using XML. But how we implement this on jmeter? Yes, there are some solutions. Today I’ll show one simple way to do it.

1. Open JMeter > Add a Thread Group
2. Add a HTTP Request for the Thread Group
Screen Shot 2016-04-17 at 10.04.29 AM.png

3. Fill host, port, method and path according to your WSDL name
For example I’m using http://www.webservicex.net/country.asmx?WSDL file
My variables will be,
Host: webservicex.net
Port:
Method: POST
Path:/country.asmx?WSDL
Screen Shot 2016-04-19 at 10.41.57 AM

4. Select “Body Data” tab of the HTTP Request and add request URL with parameter
Screen Shot 2016-04-19 at 10.42.10 AM

5. Add a HTTP Header Manager to the Thread Group and add needed Header requests
Screen Shot 2016-04-19 at 10.42.24 AM

6. Add a Listener to get the results. I used “View Results Tree”
7. Save and Run the test. You can see response xml on “Response data” tab of the Listener
Screen Shot 2016-04-19 at 10.42.40 AM.png

Getting Start with SoapUI

Hola Testors!

I thought to getting start of SoapUI with some example scenario rather than introducing the interface first. So shall we do a little exercise today? Previously I told we mainly we use two kind of web protocols to test (SOAP and REST). Today I’m gonna use SOAP service to test. Let’s begin:

Download and configure SoapUI

First, you need to download and install SoapUIto your computer.
Go to soapui official page and download a version which match with your computer (I’m using Mac OS X installer (64-bit) version)
SoapUI official site: http://www.soapui.org/.

Screen Shot 2015-08-16 at 1.10.06 PM

After the download happens, you can install it as a normal application. In Mac it will installed to your /Application directory by default. In windows > Program Files

Create a workspace

After the installation you can use SoapUI. First of all open the application. Then create a workspace by

File> New Workspace

Screen Shot 2015-08-16 at 1.20.26 PM

Create a SOAP Project

Now you have a workspace to work. As I mentioned earlier we’re gonna create a SOAP project. How to do it

File> New SOAP Project

Screen Shot 2015-08-16 at 1.24.58 PM

Screen Shot 2015-08-16 at 1.26.41 PM

  1. Project Name: Currency Converter
  2. Initial WSDL: http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
  3. Keep checked for “Create Request”
  4. Click “OK”

It will create two version of services (CurrencyConvertorSoap and CurrencyConvertorSoap12). First one follows older standards of SOAP.

Screen Shot 2015-08-16 at 1.52.36 PM

Remove CurrencyConvertorSoap12 version since no use of it.

Expand CurrencyConvertorSoap version, there you can see a “ConversionRate” method.By expanding that method you’ll be able to see “Request1” request.

So let’s make it useful, Right click on it and rename to “GBP To LKR”

Screen Shot 2015-08-16 at 1.40.41 PM

Double click on the Request, it will display you a simple xml request

Screen Shot 2015-08-16 at 1.57.11 PM


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">
  <soapenv:Header/>
  <soapenv:Body>
     <web:ConversionRate>
        <web:FromCurrency>?</web:FromCurrency>
        <web:ToCurrency>?</web:ToCurrency>
     </web:ConversionRate>
  </soapenv:Body>
</soapenv:Envelope>

In the request xml you can see “?” marks for “FromCurrency” and “ToCurrency”.

You can test the request by replacing question mark of “FromCurrency” parameter by “GBP” and “ToCurrency” parameter by “LKR”.


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">
  <soapenv:Header/>
  <soapenv:Body>
     <web:ConversionRate>
        <web:FromCurrency>GBP</web:FromCurrency>
        <web:ToCurrency>LKR</web:ToCurrency>
     </web:ConversionRate>
  </soapenv:Body>
</soapenv:Envelope>

By clicking “Submit request” button of request window (upper left corner) you’ll be able to get the response xml with GBP to LKR exchange rate.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
     <ConversionRateResponse xmlns="http://www.webserviceX.NET/">
        <ConversionRateResult>207.3026</ConversionRateResult>
     </ConversionRateResponse>
  </soap:Body>
</soap:Envelope>

Create a Test Suite/ Test Case

My request is working correctly. hope your one too. Now we have to test this service for GBP to LKR conversion. So we’re are gonna create a test case.

Right click on “GBP To LKR” request > Select “Add to TestCase”

Screen Shot 2015-08-16 at 1.58.57 PM

Oh, It is saying we don’t have a test suite to add the test case :O Okay we’ll create a test suite first.

Screen Shot 2015-08-16 at 1.59.57 PM

Then we create a test case

Screen Shot 2015-08-16 at 2.00.16 PM

Screen Shot 2015-08-16 at 2.00.23 PM

Screen Shot 2015-08-16 at 2.00.42 PM

Your test case will display in the tree as below

Workspace> Project> Test Suite > Test Case

There you can see Test Step, Load Test and Security Test. We’re gonna do a functional test. So our section is “Test Steps”. By default SoapUI creates a test step for us. Lets see what is inside there.

Screen Shot 2015-08-16 at 2.10.40 PM

Ahh it is same like the request XML! We change the xml to testable format that what we need. Change web:FromCurrency to GBP and web:ToCurrency to LKR as below


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:ConversionRate>
         <web:FromCurrency>GBP</web:FromCurrency>
         <web:ToCurrency>LKR</web:ToCurrency>
      </web:ConversionRate>
   </soapenv:Body>
</soapenv:Envelope>

Shall we check whether we get a correct output.

Click on the submit request button on top left corner. (Refer below screenshot)

It will generate an response xml

Screen Shot 2015-08-16 at 2.41.21 PM


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <ConversionRateResponse xmlns="http://www.webserviceX.NET/">
         <ConversionRateResult>210.6568</ConversionRateResult>
      </ConversionRateResponse>
   </soap:Body>
</soap:Envelope>

You can see the results in between ConversionRateResult tags it is 210.6568 now.

Add Assertions

Our test step is done now. But how we can verify whether this s correct out put or not while we’re running on this test? To do that we need assertions

Click on the Assertion tab on the bottom

Screen Shot 2015-08-16 at 2.48.17 PM

It will expand the assertion pane . Then click on the “Adds an assertion on item” button (shows in following screenshot)

Screen Shot 2015-08-16 at 2.48.32 PM

It opens Add Assertion window and you can add Assertions by selecting assertions in there.

Screen Shot 2015-08-16 at 2.48.52 PM

We will see how to use assertions and how to test a test case/ test suite on next posts. 🙂


If you have any comment/ suggestions please comment below. We need to be improve with your ideas and suggestions. See you soon folks 🙂