|
Introduction to Testing Webservices |
|
|
|
Internet revolutionized the way information/data is made available to general public or
business partners. Web services complement this by allowing data exchange between
applications in a platform independent manner.
A Web service is a software system identified by a URI, whose public interfaces and
bindings are defined and described using XML. Its definition can be discovered by other
software systems. These systems may then interact with the Web service in a manner
prescribed by its definition, using XML based messages conveyed by Internet protocols.
The major challenges faced by the testers of webservices are the absence of a user
interface, scalability and security considerations and the distributed nature of
webservices. For tackling these challenges the webservice testing strategy must involve
proof of concept testing, unit testing, basic webservice testing, testing the SOA,
interoperability testing and load testing.
This white paper starts by describing the major challenges faced by the Web services
testing community. It then discusses the strategy recommended to test the webservice,
followed by a short discussion on Interoperability testing and Load testing. It also
includes the use of JMeter (an automated load testing tool) to test webservices. And
towards the end the paper highlights some of the major web services testing tools
currently available. |
|
Introduction to Webservices |
|
|
Webservices is a technology that allows applications to communicate with each other
in a platform independent manner. Primarily webservices target issues of data and
application integration. They help us in exposing business processes as methods or
functions, which in turn allow businesses to communicate at an application or process
level with business partners. |
|
XML based protocols are used to describe a webservice and standardized XML messages are used by the webservice for communication with other services or with the client. |
|
Webservices are described using Web Services Description Language (WSDL). The
WSDL consists of the URL for the webservice, the methods that are accessible and
the input parameter types and the return types of the webservice. |
|
Standard Object Access Protocol (SOAP) is used as the messaging standard for
communicating with the webservice. The message is wrapped in a SOAP Envelope, which can be delivered across network over most known transport protocols like HTTP, IIOP, and SMTP and so on. |
|
Webservices are published and located with the help of Universal Description,
Discovery and Integration (UDDI). |
|
 |
|
|
|
|
Challenges in Testing Webservices |
|
|
The loosely coupled nature of webservices and non-existence of a User interface
present a challenge to the developers and testers alike. Following are some of the
challenges that webservice testers have to face. |
|
|
|
Scalability and Security |
|
|
The development and deployment environments of webservices are vastly
different. If the webservice is for intranet usage then we have a theoretical
maximum number of users that will connect to the service and also we have control
over who can access the webservice so we have some security in place. But the
scenario for Internet webservice is different. There we cannot make any
assumptions about the number of users connected to the service, security or the
way in which the users will access the web service. Also we must know in advance
the performance impact in case of large number of users connecting to the
webservice. |
|
|
|
Absence of User Interface |
|
|
Unlike traditional web applications web services do not have a user interface.
Hence they cannot be tested manually but require writing of test cases. For this
the tester needs to have programming skills and an overview of the webservices
fundamentals. |
|
|
|
Distributed Across Network |
|
|
Applications are generally built by integrating many webservices to leverage
existing webservice functionality. These webservices may be developed by the
same developers or may be provided by a third party. So thorough black box testing
must be performed. Also these services are distributed over the network and may
be hosted on different operating systems and deployed in different environments.
Hence while testing we have to take into consideration the issues of availability,
performance, reliability and security.
To read the complete article please click here |
|
|
|