Automation of IPP FlexapplicationsGokuldas K Pillai@gokool
Objective• Identify a tool to automate the functionaltesting of a Flex application. In myapplication, we have the following use-cases:– Create/Edit Invoice– Search for a customer
Tools Evaluated• FlexMonkey 1.0 by Gorilla Logic• SilkTest 2009 R2 by Borland (Plugin for Flex)• Ranorex Studio• Other tools (not evaluated/less popular)– QTP– Selenium4Flex– RiaTest
Automation support in Flex• Adobe provides automation delegate implementations for theframework components– Automation.swc (delegation implementations)– Automation_agent.swc (Facilitate communication with a tool)– Automation_dmv.swc (delegates for charts and advanced datagrid)• Third party tool developers leverage these and build on top of it.– The tool developers are limited by what Adobe exposes via theautomation hooks.• Custom components• Components that extend framework components– Automation delegates supplied should work• Components that do NOT extend framework components (extendUIComponent instead)– Developer of component needs to provide automation delegates and override eventhandlers.
Tool #1 : Flex Monkey• Quick Facts– Open Source– Ver 1.0 GA released– Adobe AIR application– Scripting language – Actionscript– Support for:• Record/Playback• Validation• Timing delays• Exporting script – integration with ANT script• Pluses– Simple to setup– Works on both OS (Windows/Mac)– Works with both IE and Mozilla• Negatives– Does not scale beyond simple usecases– Sparse documentation for advanced usage– Community is in infancy (Opensource like support )– Recently moved out of Google code and the transition was not smooth for forum users– Core developers offer paid consulting gigs for training and help with tool.
Tool #2 : SilkTest Flex plugin/Silk4J• Quick facts– 2009 R2 – Flex support since 2008 R2– Silk4J – Eclipse plugin– Scripting language – Java or Silk script– Object identification using Xpath• Pluses– JUnit like test generation (Silk4J)– Familiar tool(Silk not Silk-Flex) for QA teams in Intuit– Enterprise support plan• Negatives– Performance hog (Seems like it is broken)– Tool is not very developer friendly.– Does not work with IPP native flex apps.– Support from Ireland (timezone) – primarily e-mail based
Criteria for selection• Excellent support for object identification– Custom components like custom combo-box, itemrenderers• Easy to setup and ramp up• Mature support for scripting using standardlanguages• Ability to integrate with CI build• Performance• Good record and replay capability• Support for IE and Firefox
Quick Summary• FlexMonkey dropped from the list since it could notrecognize some of the non-trivial objects like CustomComboBox and DataGridColumn with item Renderer.• SilkTest 2009 is a good attempt but has a long way togo to be more developer/QA friendly in terms of thetool. Also, it has a higher cost for the license.• Ranorex satisfies our current requirements forautomated testing, goes beyond what Adobe providesfor automation support and delivers a great experiencefor the developer.