Skip to main content

WebServices and Related Terms

In today's world, daily everyone is hearing terms like Web Service, XML-RPC, SOAP, SOA etc. So what are these things? Where we are using? How this is helpful in software applications?
Let's start a simple discussion here.


WEB SERVICE:
A webservice is nothing but some piece of software over internet / intranet without UI.
For example, I need a method to add 2 numbers. So I am developing a method "addNumbers" locally. But this method is in our local code and its complied as exe or JAR file, no others can use it if anyone wants the same functionality. 
If I published this method in common repository, anyone can use by knowing this method signature and how to access them. This is webservice. 
- WebService can be published on internet or intranet. 
- Its language independent. ie. WebServices can be written in any language and accessible from any language.
- Platform Independent ie. published on any webserver and accessible from any OS.
- No need of UI technologies, only service through TCP/IP over HTTP.
Ex.
Displaying weather reports on different sites, World Clocks, etc.


COMPONENTS OF WEBSERVICE:
There are 3 components which are making a webservice.
1. Service Provider
Service Provider is a WebService published on internet or intranet to access from public.
Ex. PayPal Gateway


2. Service Consumer
Service Consumer is service which is requesting to access the published webservice.
Ex. Any Train, Bus booking site


3. Service Registry
Service Registry is nothing but a WebServer or Web Application server in which we will publish our WebServices to reside.
Ex. Servers like IIS, TomCat, etc.


Then, What is XML-RPC, SOAP, WSDL, UDDI, SOA?
For any WebService we need 3 tasks like data transmission, then some task to describe our webservice to access from public and then some task to make our Webservice discoverable, how to discover etc from public.


Message Formats:
Currently developers are using XML based data formats majorly. So these kind of messages are transported over HTTP (Also we can do over SMTP or FTP)
1. XML-RPC (XML based Remote Procedure Call)
This is pure XML format message which will be sent to access a WebService and again the response will come  in XML format.
2. SOAP
This is another format based on XML structure. SIMPLE OBJECT ACCESS PROTOCOL is a custom message format to send request for a webservice and reponse also will co,e in SOAP format.
3. JSON
JavaScript Object Notation is also another message format in name-value pairs. Its rising today as it is easy of use format interns of code.


Description:
This is the way to describe our published webservice like API method name, parameters etc.
1. WSDL
Web Service Description Language is used widely to describe any webservice. This .wsdl contains your method signatures. This WSDL is developed by MicroSoft and IBM.


Discoverable and Discovery:
This is the way to make our webservive discoverable across public and how to access this webservice.
1. UDDI
Universal description and discovery Integraion is used widely to publish Webservices through publish and find mechanisms. Its a public webserver where you can deploy your webservices. Normally gov sites will use more.


Then, SOA is a wide topic to design applications. Service Oriented Architecture design is a approach where business functions of applications are designed as webservices and UI is used to represent the data only. (Just like database driven applications where stored procedures will do all functions and UI is used to display the data and interactions.)


So normally, for these kind of applications QA people will do lot of WebServices testing and minimum level of testing from UI.

Comments

  1. Thanks for sharing great information in your blog. Got to learn new things from your Blog . It was very nice blog to learn about Selenium

    ReplyDelete

Post a Comment

Popular posts from this blog

QTP - Object Identification - Prerequesties

While starting a new project or proof of concept or after new QTP installation, we would face the issue in identifying objects as QTP built objects like WinList, WebEdit, etc.; instead everything will be identified as WinObject.

Here are some steps to ensure you did the environment setup RIGHT before start automating.
Did you enabled required Add-ins only while launchingDid you selected "Record >> Record and Run Settings" - This should be based on what type of application you are working with
Windows app - Windows >> Record and run test on any windows applications. Web app - Web >> Record and run test on any open browser.
Did you tried to launch UFT/QTP and then AUT.If its web, ensure browser zoom level set to 100%Try disabling the protected mode in IE for web.Launch UFT and AUT using RUN AS ADMINISTRATORAlso see the Object Identification Methods if you are interested.

Change IE Browser ZOOM settings

Lot of UI automation testers could have faced this problem as we could change the zoom settings while operating manually for our convenience and forgot to reset to 100%.
But our QTP and some other related tools would operate the browser perfectly if browser zoom is 100%. So wee need to change the zoom before start to run the scripts. Its better to have a code snippet in our framework to change this zoom setting right?
Here we go...

1. We can simply change the Registry values before Invoking IE
Function ChangeRegistry Dim objShell Set objShell = CreateObject("WScript.Shell")  objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom\ZoomFactor", "100000", "REG_DWORD" Set objShell = Nothing EndFunction This option is very useful. But in real time, lot of customers could have restricted write access to windows registry. So we can try other options.

2. Use IE COM object and Change Settings
Function ChangeIEZoom Dim intZoomLevel, objIE  intZoo…

Run JavaScript from QTP

Yeah, You can run your pure JavaScript from QTP using RunScript method. Lot of times, we are in need of firing events or simulating actions on web page which is not supported by QTP. At that time, you can use your direct DOM methods and directly execute your script on the web page from QTP like,
Dim MyPage, SearchBox Set MyPage = Browser("title:=Google").Page("title:=Google") Set SearchBox = MyPage.RunScript("document.getElementsByName('q')(0);") SearchBox.Value="testing"
'if objects available in frames, Set SearchBox = MyPage.RunScript("document.frames(4).document.getElementsByName('q')(0);")
'OR
Set objFrame = Browser("title:=Google").Page("title:=Google").Frame("title:=something")
objFrame.RunScript("document.getElementsByName('q')(0);") Also, you can execute by obtaining actual browser window object if you have IE app like, Dim IEApp Set IEApp = CreateObject("Internet…