How to send a SOAP XML message using the SendRequest method
The user wants to write a test that sends a SOAP XML message to his Web Services gateway.
Example:
Set ssr0XML = XMLUtil.CreateXMLFromFile("D:\temp\XML\ServiceStatus\SSR0.xml")
WebService("XOAService_2").SendRequest("ServiceStatus", "ssr0XML")
The first line of the script reads the contents of a valid XML file into a variable named ssr0XML. The second line attempts to send this message to the Web Services application server.
During replay, the user verifies that QuickTest Professional sends the message. However, the content of the message is the string ssr0XML, not the expected XML file. This causes the Web Services server to generate an error. How should a message be sent?
Solution: Using the SendRequest Web Services method
The SendRequest method sends the message specified in the SOAPMessage argument with no modifications and no additional items are appended to the message. Specifically, the message is not affected by previous AddAttachment, AddHeader, AddMessageProtection, AddSecurityToken statements.
object.SendRequest OperationName, SOAPMessage
object The WebService test object.
OperationName The Web service operation to be performed by the request.
SOAPMessage The SOAP request in the form of an XML string. The value should be a valid SOAP envelope, according to the SOAP specifications.
You can retrieve the response to the message sent with this method by inserting a LastResponse statement after it.
Note:
The SendRequest method expects a XML string, not an XML object. So if you are using the XMLUtil object to create an XML object, you will need to use the ToString method to convert the XML object to an XML string. Then you can use it with the SendRequest method.
Example:
Set ssr0XML = XMLUtil.CreateXMLFromFile("D:\temp\XML\ServiceStatus\SSR0.xml")
XMLstr = ssr0XML.ToString
WebService("XOAService_2").SendRequest("ServiceStatus", XMLstr)
Read this series to understand the basics of WebServices with QTP.
The user wants to write a test that sends a SOAP XML message to his Web Services gateway.
Example:
Set ssr0XML = XMLUtil.CreateXMLFromFile("D:\temp\XML\ServiceStatus\SSR0.xml")
WebService("XOAService_2").SendRequest("ServiceStatus", "ssr0XML")
The first line of the script reads the contents of a valid XML file into a variable named ssr0XML. The second line attempts to send this message to the Web Services application server.
During replay, the user verifies that QuickTest Professional sends the message. However, the content of the message is the string ssr0XML, not the expected XML file. This causes the Web Services server to generate an error. How should a message be sent?
Solution: Using the SendRequest Web Services method
The SendRequest method sends the message specified in the SOAPMessage argument with no modifications and no additional items are appended to the message. Specifically, the message is not affected by previous AddAttachment, AddHeader, AddMessageProtection, AddSecurityToken statements.
object.SendRequest OperationName, SOAPMessage
object The WebService test object.
OperationName The Web service operation to be performed by the request.
SOAPMessage The SOAP request in the form of an XML string. The value should be a valid SOAP envelope, according to the SOAP specifications.
You can retrieve the response to the message sent with this method by inserting a LastResponse statement after it.
Note:
The SendRequest method expects a XML string, not an XML object. So if you are using the XMLUtil object to create an XML object, you will need to use the ToString method to convert the XML object to an XML string. Then you can use it with the SendRequest method.
Example:
Set ssr0XML = XMLUtil.CreateXMLFromFile("D:\temp\XML\ServiceStatus\SSR0.xml")
XMLstr = ssr0XML.ToString
WebService("XOAService_2").SendRequest("ServiceStatus", XMLstr)
Read this series to understand the basics of WebServices with QTP.
Web Services and QTP – Part 1: Testing Web Services Key Concepts
First of all, I
would like to thank all the readers of LearnQTP and forum members for their
great patience reading out my series of posts on DotNetfactory and Databases in
QTP and for their valuable comments in each post. Special Thanks to Ankur, for
giving me the exceptional opportunity to share my experience to the community.
Once again I am here with a new series of posts which will
focus on Web Services Testing using QTP.
The series is divided in four parts
- Testing Web Services – Key Concepts
- Web Service Testing Wizard
- Adding Web Service Test Object to Object Repository
- Testing Web Services without enabling Web Services Add-in
In
this first article I will focus on important key concepts of web
services that you should know before start testing Web Services.
Web service is the way to connect different services together into a Service Oriented Architecture (SOA). Web services provide an application integration technology that can be used over internet and take Web Application to the next level.
Web service is the way to connect different services together into a Service Oriented Architecture (SOA). Web services provide an application integration technology that can be used over internet and take Web Application to the next level.
Testing web services is no different than testing
any other application/software program, but there are some unique challenges.
Web service based architecture is intrinsically
distributed and is dependent on various stakeholders, which makes it difficult
to establish availability and quality of service across the various stake
holders. Most likely Web Services could be dependent on third party web
services. And these third party web services can be changed without any
information
Web services in an inter-enterprise SOA are so
loosely coupled than the traditional architecture that tracking message route
between different Web service stake holders is difficult.
Web services testing is basically the validation
of interface points, messages and message formats which is quite different from
testing the GUI.
Testing tools which are using GUI based
automation is simply inadequate for Web services testing, but we don’t have to
worry too much as we have QTP. Ian Fraser has well said it -
“The true
beauty of QTP is that the only limitation is your imagination and ability to
code in VBScript.”
HP
Service Test and QTP Web Services Add-in are great solutions for Web Services
testing. HP Service Test Management module plugs into Quality center. We need
QTP Web Services add-in in order to work with web services which can be
downloaded from HP
Download Center.
Let us first understand web services key points
need to know before delving into testing with QTP. Typically a Web Service is a
set of all related functions which are invoked to other application or services
over the Internet. The information to programmatically invoke a Web service by an
application is given by a Web Services Description Language (WSDL) document.
Web Services Description Language (WSDL) is an XML-based language for locating
and describing Web services. Now as the Web Service is powered by the web
application server that uses SOAP to understand and speak with web services and
delivers information in XML. Simple Object Access Protocol (SOAP) is XML based
protocol to exchange information over HTTP. To locate the web services WSDL
documents are indexed in searchable Universal, Description, Discovery and
Integration (UDDI) business registries.
To access
a Web service, it will have the WSDL path. But in case you are not aware of it
you will have to use UDDI to find the service. You can make a search on Google
to find the WSDL. Type below text in google to search
“inurl:wsdl site:w3schools.com”
you will find the public example web service
provided by W3C. On accessing the WSDL
(http://www.w3schools.com/webservices/tempconvert.asmx?wsdl) you will come to
know about the access points and interfaces available for the web service.
Something like the snapshot below –
This web service has two methods
‘CelsiusToFahrenheit’ and ‘FahrenheitToCelsius’ and simply takes the
temperature and converts it to the required.
There is one most important element in WSDL,
which is Port. WSDL Port defines the connection point to a web service. It
can be compared to a function library or a module or a class in traditional
programming language. You can find the service name and port in
below section of WSDL.
You can understand this Web Service better when
you will navigate to the W3C
web service example ,
where you can see the interface for the web service.
If you click any of the two operations there it
shows you the form to input parameters required for the operation and invoking
this will give you the result in XML.
Just below the form you will see sample SOAP
request and response, which is actually processed when the web service is
invoked.
SOAP Request
SOAP Response
The ‘string’ (in blue) that you see is actually
replaced by the value that you process.
So now you must be ready to start testing this in
QTP. We will see the various intricacies of web service testing with QTP
in the next part.
No comments:
Post a Comment