Search code examples
web-servicesrestsoapwsdlsoapui

Soap UI 5.3.0 : RESTful API - How can I find the input parameters of a Web Request to Web Server exposed through Restful API


I am new into RESTful API testing & Soap UI Tool. I have searched for an answer to my question here in this forum but yet to come across the right one. Here is my question.

I have an Application which exposes a couple of RESTful APIs. I can access the WSDL of the application as follows:

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" name="QuickExtract" targetNamespace="http://tempuri.org/">
<wsdl:types>
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://quickextract.quickaudit.in/webs/QuickExtract.svc?xsd=xsd0" namespace="http://tempuri.org/"/>
<xsd:import schemaLocation="http://quickextract.quickaudit.in/webs/QuickExtract.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
<xsd:import schemaLocation="http://quickextract.quickaudit.in/webs/QuickExtract.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/AriaTechCore"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="IQuickExtract_GetExtractionDetails_InputMessage">
<wsdl:part name="parameters" element="tns:GetExtractionDetails"/>
</wsdl:message>
<wsdl:message name="IQuickExtract_GetExtractionDetails_OutputMessage">
<wsdl:part name="parameters" element="tns:GetExtractionDetailsResponse"/>
</wsdl:message>
<wsdl:message name="IQuickExtract_GetRequestStatus_InputMessage">
<wsdl:part name="parameters" element="tns:GetRequestStatus"/>
</wsdl:message>
<wsdl:message name="IQuickExtract_GetRequestStatus_OutputMessage">
<wsdl:part name="parameters" element="tns:GetRequestStatusResponse"/>
</wsdl:message>
<wsdl:message name="IQuickExtract_StartDataExtract_InputMessage">
<wsdl:part name="parameters" element="tns:StartDataExtract"/>
</wsdl:message>
<wsdl:message name="IQuickExtract_StartDataExtract_OutputMessage">
<wsdl:part name="parameters" element="tns:StartDataExtractResponse"/>
</wsdl:message>
<wsdl:portType name="IQuickExtract">
<wsdl:operation name="GetExtractionDetails">
<wsdl:input wsaw:Action="http://tempuri.org/IQuickExtract/GetExtractionDetails" message="tns:IQuickExtract_GetExtractionDetails_InputMessage"/>
<wsdl:output wsaw:Action="http://tempuri.org/IQuickExtract/GetExtractionDetailsResponse" message="tns:IQuickExtract_GetExtractionDetails_OutputMessage"/>
</wsdl:operation>
<wsdl:operation name="GetRequestStatus">
<wsdl:input wsaw:Action="http://tempuri.org/IQuickExtract/GetRequestStatus" message="tns:IQuickExtract_GetRequestStatus_InputMessage"/>
<wsdl:output wsaw:Action="http://tempuri.org/IQuickExtract/GetRequestStatusResponse" message="tns:IQuickExtract_GetRequestStatus_OutputMessage"/>
</wsdl:operation>
<wsdl:operation name="StartDataExtract">
<wsdl:input wsaw:Action="http://tempuri.org/IQuickExtract/StartDataExtract" message="tns:IQuickExtract_StartDataExtract_InputMessage"/>
<wsdl:output wsaw:Action="http://tempuri.org/IQuickExtract/StartDataExtractResponse" message="tns:IQuickExtract_StartDataExtract_OutputMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:service name="QuickExtract"/>
</wsdl:definitions>

I can also access two XML endpoints to know about the status of an Extract Request as follows:

  1. http://quickextract.quickaudit.in/webs/quickextract.svc/GetExtractionDetails/46 -->

    1 success USR02 3883 2017-03-03T18:49:43 2017-03-03T18:49:45 Extraction Complete

  2. http://quickextract.quickaudit.in/webs/quickextract.svc/GetRequestStatus/46 -->

    1 success 0 Completed

Now, I want to know the structure (along with paremeters) of the Web Request sent to the Webserver. Moving ahead I want to create multiple requests of same type at the same time and hit the Web Server for Performance Testing. I am using Soap UI 5.3.0 to achieve this. Can anyone help me to get to know the parameters of the Web Request?

Any pointers will be helpful.


Solution

  • I have got an answer for this query from multiple conversation with individuals. Here is the answer to the question:

    1. Just going by the WSDL we won't be able to make out the type of Request which is being sent to the WebServer. The Request may be a XML/SOAP or may be json (POST/GET). In my case I got to know it from the development code which is as below:

    A. The first request was a json (POST) request as follows:

    {    
    "app_key":"i8gAVDwcAq40n2kAv6Ox+w==",
    "targetDB":"${#TestCase#TARGET_DB}",
    "createNew": "true"
    }
    

    B. The second request is a XML (GET) Request.

    C. The third was also a XML (GET) Request.

    Thanks to all of you who had a look at this query.