automating web 2.0 and rich internet applications with hp quicktest professional and solving the...
DESCRIPTION
If you fondly remember the days of simple HTML applications as you struggle with Web 2.0 and rich internet applications (RIA) that utilize technologies like AJAX, Adobe Flex and Flash, and Microsoft Silverlight, then you should attend this session. We’ll show you a proven approach to automating AJAX-based applications using HP QuickTest Professional, starting with a brief introduction to out-of-the-box Web 2.0 test capabilities and other tools to support new Web 2.0 toolkits. We’ll cover the HP Web 2.0 Feature Pack, and we’ll discuss the new HP Extensibility Accelerator for functional testing which provides an environment to speed the development of Web Add-in Extensibility toolkit support sets that are not supported out of the box. The session will include examples based on AJAX applications built with the Google Web Toolkit (GWT). GWT-based applications are notoriously hard to automate because of non-traditional HTML objects and synchronization, and make good examples of the challenges you might face.TRANSCRIPT
![Page 1: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/1.jpg)
©2010 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice
Automating Web 2.0 and Rich Internet Applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle
Igor GershovichConnected Testing
![Page 2: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/2.jpg)
• Connected Testing is an independent consulting company specializing in Test Automation and Performance Testing
• We are located in Denver, Colorado
• We have extensive experience across a range of
industries including Financial Services,
Healthcare, Aerospace, Transportation, Telecommunications
![Page 4: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/4.jpg)
Often feature a rich, user-friendly interface based Rich Internet Application (RIA) technologies such as Ajax, Flex, Silverlight.
Are Web Applications with some features of desktop applications
Communicate with server applications, and use a plug-in or browser technologies in addition to or instead of HTML and CSS.
![Page 5: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/5.jpg)
Adobe Flash/Flex
Google Web Toolkit (GWT)
Microsoft Silverlight
dojo
Curl
jQuery
And 200 or 300 others
![Page 6: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/6.jpg)
Most of Rich Internet are based on AJAX (Asynchronous JavaScript + XML) technology
Microsoft Silverlight and Adobe Flex have proprietary runtime technologies
![Page 7: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/7.jpg)
![Page 8: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/8.jpg)
AJAX is a technique that combines and exploits some long-standing Web technologies:◦ Using XHTML and Cascading Style Sheets (CSS) for
structure and presentation. ◦ Displaying and manipulating pages using the
Document Object Model (DOM). ◦ Using the browser's XMLHttpRequest object to
transfer data between the client and the server. ◦ Using XML as the format for the data flowing between
the client and the server. ◦ Using JavaScript to dynamically display and interact
with all of the above.
![Page 9: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/9.jpg)
AJAX allows the server to update the current Web page as opposed to sending a new page
The single page interface increases user interactivity
![Page 10: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/10.jpg)
Some search engines are not equipped for AJAX-based applications
Can be too much context on one page
Bookmarks, Browser‟s Back or Forward navigation may not function as expected
![Page 11: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/11.jpg)
Clicking on Adelie
Information From Server
![Page 12: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/12.jpg)
Internet
ServerClient
4. Client processes XML Doc
using JScript and updates
Web page
3. Server sends HTTP
Response With XML Data
1. Client creates XmlHttpRequest
object using JScript then sends
HTTP request
2. Server processes the
HTTP request
![Page 13: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/13.jpg)
Google Web Toolkit (GWT) is a framework for Java Developers to develop AJAX Web Applications
There are numerous widget libraries available for GWT
![Page 14: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/14.jpg)
The developer uses Google Web Toolkit (GWT) to write AJAX front-end in the Java programming language
When it is ready to deploy, GWT compiles Java source code into optimized, standalone JavaScript files.
![Page 15: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/15.jpg)
![Page 16: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/16.jpg)
![Page 17: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/17.jpg)
Custom or 3rd party Web controls
No unique object properties
Synchronization for AJAX
Cascading Style Sheets (CSS)
No common design framework between GWT applications
Can‟t view HTML using View Source
![Page 18: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/18.jpg)
It is a Microsoft add-on for IE6 and IE7 that aimed to aid in design and debugging of web pages. It is included in IE8.
It allows to view DOM and CSS structures
Firebug is a similar tool for Firefox
![Page 19: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/19.jpg)
![Page 20: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/20.jpg)
Automated tools “see” all the objects in CSS-based applications, even if objects are hidden
CSS uses “display” property to hide parts of HTML page
To verify if object or part of HTML page is visible use “Style.display” and “CurrentStyle.display” properties
CurrentStyle.Display = “block” „visible
CurrentStyle.Display = “none” „not visible
![Page 21: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/21.jpg)
Public Function Web_DisplayCSS(byVal WebObj)
Dim bDisplayed: bDisplayed = True
Set WebObj = WebObj.Object
Do
If WebObj.Style.Display ="none" or WebObj.CurrentStyle.Display="none" Then
bDisplayed = False
Exit Do
End If
Set WebObj = WebObj.ParentNode
Loop while Not (WebObj is Nothing) AND WebObj.NodeName<>"#document"
Web_DisplayCSS = bDisplayed
End Function
![Page 22: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/22.jpg)
By default GWT doesn‟t generate the useful web object properties, like “html id” or “name” for object recognition mechanism of GUI test tools
It is highly recommended to work with development team to get a unique static value assigned to web objects
![Page 23: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/23.jpg)
<DIV> - WebElements (children)
<IMG> - Image
<INPUT> - WebEdit
<DIV> - WebElement (parent)
![Page 24: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/24.jpg)
Tree
Grid
![Page 25: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/25.jpg)
Browser‟s Status Bar isn‟t relevant for GWT applications since page is not getting reloaded
Verify that Object existIf .WeEdit(“”).Exist(seconds) …
Page sync – count number of objects on the page and verify that count doesn‟t changed several times in a row
Use AJAX “Please Wait” Wheel object or similar objects
Dynamic Object contents – sync on object propertiesBrowser("").WebList("").WaitProperty,"items count", micGreaterThanOrEqual(5)
More on this topic (QTP info):http://relevantcodes.com/qtp-synchronization-for-ajax-applications/http://www.vidbob.com/qtp/ajax-and-javascript-toolkits.html
![Page 26: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/26.jpg)
![Page 27: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/27.jpg)
What people really want to ask:
Does QTP work with custom objects from various JavaScript toolkits?
![Page 28: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/28.jpg)
There are 2 ways to work with custom objects:◦ QTP Web-Extensibility add-in. It enables you to
develop custom support for third-party and custom Web controls that are not supported out-of-the-box
◦ Traditional approach – coding (Functions/Classes)
![Page 29: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/29.jpg)
To manipulate these objects we need to define custom methods and properties
Here are excellent articles on this topic:◦ AJAX and JavaScript tools – Web Extensibility and
Traditional approach examples for custom grids -www.vidbob.com
◦ “Web Extensibility Lesson – Building a toolkit Support” for combobox at www.advancedqtp.com
![Page 30: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/30.jpg)
Dialog box Included in Object Hierarchy. Object
Repository/Descriptive Programming approach
Dialog box excluded from Object Hierarchy
Dialog box Included in Object Hierarchy. Object
Repository only approach. Btn_Tags object moved
Manually under Dialog box in OR hierarchy
![Page 31: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/31.jpg)
• “Out of the box” support for the most common Web 2.0
technologies, including:
-Silverlight 3.0
- Ajax toolkits:
-ASP.NET AJAX (from Microsoft)
-GWT (from Google)
-YUI (from Yahoo)
-Dojo (open source)
•New Extensibility Accelerator (EA) for Functional Testing
to provide fast and easy FT add-in extensibility
![Page 32: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/32.jpg)
![Page 33: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/33.jpg)
It is very advanced – you need to know JavaScript and XML
Troubleshooting is difficult
Add-in Distribution/Redistribution – it needs to be install/reinstall on each test box
Time Consuming
![Page 34: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/34.jpg)
![Page 35: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/35.jpg)
Setting.WebPackage("ReplayType")◦ 1 - Runs mouse operations using browser events.
◦ 2 - Runs mouse operations using the mouse.
Example enabling “Save” button:Setting.WebPackage("ReplayType") = 2„ next line will enable “Save” button.WebList("class:=gwt-ListBox").Select “First”Setting.WebPackage("ReplayType") = 1If .WebButton("Save").GetRoProperty(“disabled”) Then….Another use of this technique – getting Tooltips from GWT
objects
![Page 36: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/36.jpg)
Test Automation for Web 2.0 RIA applications is more challenging than automating traditional Web applications
Cooperation with development team is essential for automation success
RIA applications aren‟t look alike because of variety of widget sets can be used for development
Advanced test automation expertise is required
![Page 37: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/37.jpg)
Rich Seeley - “How to sort out Ajax and RIA frameworks”
Paul Tuohy - “What Is AJAX?” www.ajaxwith.com Wikipedia www.qaforums.com www.advancedqtp.com www.vidbob.com http://download.instantiations.com/D2WBDoc/con
tinuous/latest/docs/html/features/gwt/gxt.htm
![Page 38: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/38.jpg)
Company: Connected Testing, Inc.
E-Mail: [email protected]
Phone: 720-933-9395
Website: www.connectedtesting.com
![Page 39: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/39.jpg)
39 ©2010 Hewlett-Packard Development Company, L.P.
To learn more on this topic, and to connect with your peers after
the conference, visit the HP Software Solutions Community:
www.hp.com/go/swcommunity
![Page 40: Automating Web 2.0 and rich internet applications with HP QuickTest Professional and solving the Google Web Toolkit puzzle](https://reader034.vdocuments.mx/reader034/viewer/2022042700/557cc40cd8b42a09218b4b4b/html5/thumbnails/40.jpg)