Search This Blog

Thursday, July 9, 2015

Tool Comparision Matrix - QTP/UFT, Selenium, TestComplete

Tool Comparision Matrix



Feature QTP/UFT TestComplete Selenium
Language Support VB Script VBScript,
JSScript, DelphiScript,
C++Script and C#Script
Java, C#, Ruby, Python, Perl PHP , Javascript
Application Support A client server application Only (Web+Windows). It also supports add-ons, but user needs to purchase license for them. All of this included right out of the box there are no plug-ins or add-ons to buy. You can install Test Complete and immediately create any test against any application. Web Only, It will not support window apps
Cross Browser Testing Yes Yes Google Chrome , Internet Explorer , Firefox , Opera , Html Unit
API Testing Yes Yes Integrate with external tools
Web Service Testing Yes Yes No
Database Testing Yes Yes Yes
Web Load/Performance Testing No, Loadrunner separate tool Yes No
Mobile (Phones & Tablets) support Different commercial product i.e. HP UFT Mobile (formerly known as MobileCloud for QTP) Yes (ios,Android,Blackberry..) Selenium + Appium (blackberry is not possible)
Test Management No, need QC/ALM Yes, Built-in (QA Complete) No
Jira Integration No Yes Yes
Manual Testing via QC/ALM only Yes No
Separate Test Execution Module No, Must use QTP full install (HP is planning to release LeanFT, UFT 12.5 in month of Jul 2015 – there we can have separate test execution engine for less price) Yes – 399 $ Test Execute Float License No
Version Control Integration via QC/ALM only Yes No
Unit Testing Integration via QC/ALM only DUnit, JUnit, NUnit, MSTest Yes
Framework Supports multiple frameworks like Keyword Driven, hybrid driven, modular driven and BPT (ALM) Integrate with QA Complete,we can create keyword driven, data driven frameworks etc. Selenium + Eclipse + Maven / ANT + Jenkins / Hudson & its plugins / Cruise Control + TestNG + SVN
Object Recognition / Storage Inbuilt Object Repository NameSpace mapping UI Maps and different object location strategy such as -XPath Element ID or attribute DOM
Image based Tests Easily possible Yes Possible but not easy
Reports Quality Center has in-built awesome dashboards Yes Integration with Jenkins can give good reporting & dashboard capabilities
Software Cost Licensed and very
Expensive, Ten user license costs approx.
60L (8000 $ - 15000 $ approx varies from country to country)
Node Locked – Enterprise – 1999 $, Floating Enterprise – 4499$, Node locked Standard – 999$, Floating Standard – 2999$ It is open source. So, there's no licensing or renewal cost for this tool. It's free of cost.
Coding Experience of Engineer Not Much Programming background is highly recommended Should be very good along with technical capabilities of integrating different pieces of framework
Script Creation Time Less Less High
Hardware resource (CPU + RAM) consumption during script execution High Moderate Low
Product Support Dedicate HP support along with support forums Yes Open Source Community

Friday, July 3, 2015

Accessing Web Objects Using DOM Methods

ElementFromPoint Method

 
x=Browser("name:=Google").Page("title:=Google").WebEdit("name:=q").GetROProperty("x")  
y=Browser("name:=Google").Page("title:=Google").WebEdit("name:=q").GetROProperty("y")  
Browser("name:=Google").Page("title:=Google").Object.elementFromPoint(x,y).Value="QTP" 'Sets value in web edit using coordinates  

GetElementsByTagName Method

Set obj= Browser("name:=Google").Page("title:=Google").Object.getElementsByTagName("INPUT")  
inCount=obj.Length-1  
For i=0 to inCount  
   If obj(i).Name="q" and obj(i).Type="text" Then  
    Browser("name:=Google").Page("title:=Google").Object.getElementsByTagName("INPUT")(i).Value="QTP"        'Sets   value in web edit using tag name.  
   End If  
Next  

GetElementsByName Method:

Set obj= Browser("name:=Google").Page("title:=Google").Object.getElementsByTagName("INPUT")  
inCount=obj.Length-1  
For i=0 to inCount  
  If obj(i).Name="q" and obj(i).Type="text" Then  
   Browser("name:=Google").Page("title:=Google").Object.getElementsByName(obj(i).Name)(0).Value="QTP" 'Sets  value in web edit using element's name.  
   End If  
Next  

GetElementByID Method: 

1.Browser("name:=Google").Page("title:=Google").Object.getElementByID("XXXX").Value="QTP" 'Sets value in web edit using element's ID  

Verifying Child Object Existence Using Contains Method: 

1.Set objWebEdit=Browser("name:=Google").Page("title:=Google").WebEdit("name:=q").Object  
2.msgbox Browser("name:=Google").Page("title:=Google").webTable("index:=0").Object.contains(objWebEdit)'If the webtable contains the specified child object, then Contains method will return True. 

Mouse Hover Register User Function

'******************************************************
Function Hover(obj)
  x = obj.getroproperty("abs_x") + (obj.getroproperty("width"))/2
  y = obj.getroproperty("abs_y") + (obj.getroproperty("height"))/2
  Set devicereplay = CreateObject("Mercury.devicereplay")
  devicereplay.MouseMove x, y
  Set devicereplay = Nothing
  Wait 1
End Function

'******************************************************
Registeruserfunc "Link", "Hover", "Hover" 

'******************************************************