1 / 37

Automating Web 2.0 Rich Internet Applications (RIA). GWT – New Kid on the Block.

Automating Web 2.0 Rich Internet Applications (RIA). GWT – New Kid on the Block. Igor Gershovich Connected Testing, Inc. www.connectedtesting.com. Web 2.0 applications:.

tala
Download Presentation

Automating Web 2.0 Rich Internet Applications (RIA). GWT – New Kid on the Block.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Automating Web 2.0 Rich Internet Applications (RIA).GWT – New Kid on the Block. Igor Gershovich Connected Testing, Inc. www.connectedtesting.com

  2. Web 2.0 applications: • 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.

  3. RIA Frameworks/Toolkits • Adobe Flash/Flex • Google Web Toolkit (GWT) • Microsoft Silverlight • dojo • Curl • jQuery • And 200 or 300 others

  4. RIA technologies • Most of Rich Internet are based on AJAX (Asynchronous JavaScript + XML) technology • Microsoft Silverlight and Adobe Flex have proprietary runtime technologies

  5. RIA Youtube.com relies on Adobe Flash for Video playback

  6. What is AJAX? • 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.

  7. Advantages of AJAX • AJAX allows the server to update the current Web page as opposed to sending a new page • The single page interface increases user interactivity

  8. Disadvantages of AJAX • 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

  9. Simple AJAX application Clicking on Adelie Information From Server

  10. This is what happened behind the screen after clicking on link 4. Client processes XML Doc using JScript and updates Web page 3. Server sends HTTP Response With XML Data Internet Client Server 1. Client creates XmlHttpRequest object using JScript then sends HTTP request 2. Server processes the HTTP request

  11. What is GWT? • Google Web Toolkit (GWT) is a framework for Java Developers to develop AJAX Web Applications • There are numerous widget libraries available for GWT

  12. How GWT works in a nutshell • 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.

  13. GWT Application example

  14. Automating GWT-based applications

  15. Challenges • 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

  16. IE Developer toolbar • 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

  17. IE6/IE7 Developer Tools

  18. CSS considerations • 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

  19. Object properties • 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

  20. Combobox is a collection of objects <INPUT> - WebEdit <IMG> - Image <DIV> - WebElement (parent) <DIV> - WebElements (children)

  21. Custom controls: Grids, Comboboxes, Trees… Tree Grid

  22. Synchronization for AJAX objects Browser’s Status Bar isn’t relevant for GWT applications since page is not getting reloaded • Verify that Object exist If .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 properties Browser("").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

  23. EXT GWT(GXT) controls

  24. Bonus Information Automating GWT-based applications with HP QTP

  25. Does QTP support AJAX? What people really want to ask: Does QTP work with custom objects from various JavaScript toolkits?

  26. Working with Custom objects • 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)

  27. Custom controls: Grids, Combo-boxes, Trees… • 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

  28. Panels/Dialog boxes - no Web Extensibility Dialog box excluded from Object Hierarchy Dialog box Included in Object Hierarchy. Object Repository/Descriptive Programming approach Dialog box Included in Object Hierarchy. Object Repository only approach. Btn_Tags object moved Manually under Dialog box in OR hierarchy

  29. HP QTP Web Extensibility • “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

  30. Panels/Dialog boxes with Web Extensibility

  31. Problems with Web Extensibility add-in • It is very advanced – you need to know JavaScript and XML • Troubleshooting is difficult • Distribution/Redistribution challenges – Custom Add-in needs to be install/reinstall on each test box • Time Consuming

  32. 10.0 Extensibility Accelerator

  33. Changing QTP Web ReplayType from Event to Keyboard/Mouse • 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") = 1 If .WebButton("Save").GetRoProperty(“disabled”) Then …. Another use of this technique – getting Tooltips from GWT objects

  34. Conclusions • 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

  35. Resources • 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/continuous/latest/docs/html/features/gwt/gxt.htm

  36. Igor Gershovich Company: Connected Testing, Inc. E-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 Website: www.connectedtesting.com

More Related