Ctrl-Alt-Del on FlexMonkey

Posted in FlexMonkey, Jon Rose on November 23rd, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

I thought I would post a holiday treat.  I’ve been hard at work on “FlexMonkey Reloaded.”  It should be out there for use soon.  Here is a screen shot:

New FlexMonkey User Interface

FlexMonkey 4.1.2 Released

Posted in FlexMonkey on October 31st, 2010 by jonr

jonr originally posted this on FlexMonkey :: Flex UI Testing Tool.

Gorilla Logic is pleased to announce that we’ve released FlexMonkey 4.1.2.  FlexMonkey is used for testing Flex and AIR based applications, providing functionality to record, playback, and verify Flex UI interactions.

Here is a summary of what has changed in this release:

  • Added new Sub-Property Verification feature (http://www.gorillalogic.com/books/flexmonkey-docs/sub-property-verification)
  • Added retry to VerifyGrid
  • Addressed code-gen issues with retry
  • Major refactor to all commands to clean-up the code and make them more robust
  • Cleaned up command runner and added additional error handling to provide the user with better feedback while playing test through the console

FlexMonkey – Adobe AIR Multi-Window Support

Posted in FlexMonkey on October 13th, 2010 by jonr

jonr originally posted this on FlexMonkey :: Flex UI Testing Tool.

We’ve released an updated version of FlexMonkey (4.1.1) that now supports multi-windows in Adobe AIR.  The new multi-window support only works with Flex 4 applications, as the underlying automation manager support for this is only available in the new version of the SDK.  The version also includes a handful of minor bug fixes and a nice new roll-over popup that provides you with automation / component details when recording a verify.

Make sure to update both the SWC library and the AIR Console.  You can access the latest software at: http://www.gorillalogic.com/flexmonkey

To take advantage of the Adobe AIR multi-window support you will need to include additional automation SWCs in your compiler arguments:

-include-libraries “../libs/automation_monkey4.x.swc” “${flexlib}/libs/automation/automation_air.swc”"${flexlib}/libs/automation/automation_airspark.swc”

As always, you can use the Setup Guide under the Project > Properties window to update both your FlexMonkey SWC file and get the latest compiler arguments.

Book Review: Flex 4 Fun

Posted in Jon Rose on September 27th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

I’ve been working with Flex since 2007, starting with version 2.0.1. Also, I’ve been working with Flex 4 for a few months. So, recently, when I went looking for a Flex 4 book, I wanted something that gave me depth and clarity around the latest API’s and features. Chet Haase’s Flex 4 Fun is perfect for this, as he writes it for the existing Flex developer who wants to learn how to harness the power of Flex 4.

Chet begins the book with an excellent tutorial on the concepts of graphics and filters, which are largely foreign to developers, like myself. After reading Chet’s book, I feel like I can finally take advantage of much more of the power of underlying Flash player when building Flex applications. And, that is key because these concepts have become very important with the latest Flex 4 features, like skinning. Chet proceeds to teach about those features, like skinning and animations (his baby – he worked on animations as part of the Flex 4 SDK team).

Overall, I found the book enjoyable and it really help me to add a depth of understanding around the latest Flex 4 features. In addition to the technical content, Chet, the master of the pun, always makes his content fun to read.

You can find the book on Amazon.com or Artima.com.

Overview of How FlexMonkey Works

Posted in FlexMonkey on September 20th, 2010 by jonr

jonr originally posted this on FlexMonkey :: Flex UI Testing Tool.

FlexMonkey is a very useful tool for Flex developers, as it makes testing much easier, yet FlexMonkey is also a real-world Flex application itself.  This post aims to provide a high level overview of the FlexMonkey architecture, so you can begin to understand how it works – it is a summary of a recent doc published by Stu Stern, the FlexMonkey project founder.

It is not essential for users to fully understand the ins-and-outs of FlexMonkey to be able to use it for testing.  However, understanding how it works is a great way to learn more about the Flex platform and have a leg up on solving any issues you might encounter working with the tool.  A deep understanding of the architecture will also make it much easier to record and playback tests on custom components.

FlexMonkey utilizes the Flex automation framework provided by Adobe to enable visibility into the application being tested.

Automation Framework

The automation framework is a Flex / AIR component level API provided by Adobe that assists tools like FlexMonkey in providing record and playback functionality with visual components (i.e. classes that extend from UIComponent, as all the Flex SDK visual components do).

  • Access to the Automation Framework: Adobe packages the automation framework with Flash Builder Pro.  They do distribute the SWC archives and delegate source outside of Flash Builder, but without a Flash Builder license the AutomationManager limits the number of record and playback events that can be done in a single session.
  • Delegate Classes: The automation framework instruments components through delegate classes.  These classes use [Mixin] metadata that causes them to be statically initialized at the startup of the application.  They have the component specific logic to accomplish record and playback.
  • Automation Children Methods: The automation framework uses three key methods to crawl the application component tree: getAutomationChildern(), getAutomationChildAt(index:int), and numAutomationChildren(). These methods can be implemented directly on the component classes (e.g. DataGrid, Label, and any other classes that extend UIComponent) or in the delegates.

FlexMonkey

FlexMonkey gives you the tools to create powerful tests.  Here are the major pieces of FlexMonkey:

  • Console: The main part of FlexMonkey users interact with is the Adobe AIR console.  It is used to record and edit tests.  Developers and QA professionals can also use the console to run tests on their local machine.
  • MonkeyLink: MonkeyLink is compiled into the application being tested.  It communicates with the AIR console and FlexMonkey Ant task to create and run tests.
  • Commands: In record mode FlexMonkey creates commands that are used to do the playback of the recorded user interactions. The latest release supports “retry” for more consistent results when running tests.
  • Verification: As with any testing framework, assertions of a certain state are the ultimate goal.   FlexMonkey provides verification of property values, bitmaps on the screen, or DataGrid values.
  • Continuous Integration: The FlexMonkey project includes support for automating tests within a Continuous Integration environment.  FlexMonkey can generate ActionScript versions of the test from the AIR console.  It also provides Ant tasks for running them.  There are example projects for Flex and AIR Continuous Integration configurations on the FlexMonkey download page.
  • Environment File: MonkeyLink packages a FlexMonkeyEnv.xml file that describes the component tree to the automation framework.  The standard file works for all of the standard custom Flex components.  If you need to automate custom components, then this file may need to be modified.

The dependencies for FlexMonkey can be included in an application using the “-include-libraries” Flex compile directives.  These dependencies should only be included in developer and QA builds – never in a production release of the application being tested.

Hopefully, you now have a general understanding of how FlexMonkey works.  If you’d like more introductory on FlexMonkey check out the GorillaLogic.com website.

FlexMonkey 4.1 Release

Posted in FlexMonkey on September 13th, 2010 by jonr

jonr originally posted this on FlexMonkey :: Flex UI Testing Tool.

Gorilla Logic is excited to announce that we’ve released FlexMonkey 4.1.  FlexMonkey is used for testing Flex and AIR based applications, providing functionality to record, playback, and verify Flex UI interactions.

In this release we’ve aimed to make everything easier for FlexMonkey users.  We’ve simplified the setup process, made test playback more robust, added better debugging tools to the user interface, and made the FlexMonkey code easier to access and work with.  In addition, we’ve improved our Flex 4 support and added full continuous integration support for Adobe AIR.

FlexMonkey 4.1 Highlights

  • Feature Updates:
    • More Robust: With a number of internal code updates, we’ve made it easier for you to create robust tests that do not require ‘pauses’ and other additional steps to consistently run successfully.  Thus, removing any dependency on application performance across machines.
    • Retry on Command: Last year, we added the option to ‘retry’ when verifying values, where the user can set an interval and number of attempts to check for the proper value.  This was a key addition that enabled FlexMonkey users to better deal with the asynchronous nature of Flex.  We’ve now expanded this functionality to also be the default option on FlexMonkey commands.
    • Verify Grid Command: We’ve added a command to make it easy to verify values on Flex 3/ Halo DataGrids.  In the past, it required a bit of ‘trickery’ to test DataGrid values with FlexMonkey.  Now, DataGrid values can easily be checked with the new Verify Grid option in the FlexMonkey console.
    • Flex 4 Scroller: FlexMonkey relies on the Flex automation framework provided by Adobe, which includes ‘delegate’ classes for the standard SDK components that make them ‘testable.’ Unfortunately, there is not currently a working delegate for the Flex 4 Scroller component.  So, we’ve included our own in this release so that Flex 4 code that includes Scrollers can now be tested.
    • Automation Tree Viewer: The FlexMonkey console will now allow you to view the tree of components in your application, as the automation library sees them.  This is a key new feature in helping you debug record and playback issues.
    • Environment File Viewer: Modifying the environment file is required to automate custom Flex components for testing.  The environment file viewer allows you to quickly and easily see what version of the file is being used when testing your application.
    • Log File viewer: We’ve added a log file window to allow you to effortlessly see log output from the FlexMonkey console.
  • Source Code Tree Clean-up: We’ve greatly simplified the project structure making it easy for any Flex/AIR developer to build and work with the FlexMonkey code.  This was a priority to us for a few important reasons: 1) We wanted the community to be able to easily contribute their own enhancements to FlexMonkey. 2) Having quick access to the code makes it less painful to debug issues when they are encountered.
  • AIR Support: We’ve dramatically improved our support for testing Adobe AIR applications.  We now provide a full sample test project for Adobe AIR that demonstrates a working continuous integration example for Mac OSX and Windows.
  • Continuous Integration: In addition to the continuous integration updates for AIR applications, we’ve improved our Flex CI support for Linux and Mac OSX and updated the sample project to show you how to use the latest.
  • Simplified Configuration: We’ve simplified the setup process to start using FlexMonkey by removing unneeded options, like the SWF Target window, which could only test a very small subset of simple Flex applications.  In addition, we’ve included a configuration / setup guide directly in the application to interactively walk users through setting up their applications for testing with FlexMonkey.
  • Documentation Updates: We’ve made a full pass at improving the FlexMonkey documentation, including providing a comprehensive guide on how FlexMonkey works.

You can find the FlexMonkey project at: http://www.gorillalogic.com/flexmonkey/

FlexMonkey is built and open-sourced by Gorilla Logic, Inc.

Chimp Flex 4 Update / Flex Security Framework

Posted in Jon Rose on September 7th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

What is Chimp?

Chimp is a simple component for doing role based permissions in Flex.  It uses metadata and a generic ArrayCollection of permission strings to display the proper components for a given set of user roles.  You can find more info about the project at: http://www.gorillalogic.com/chimp.

Flex 4 Update

Shortly after I posted Chimp in 2009, Adobe began releasing early versions of Flex 4.  Every since then, I am occasionally asked about Chimp’s Flex 4 compatibility.  Well, I finally stopped procrastinating and posted a Flex 4 sample on the google code site.  It’s a conversion of the existing Flex 3 sample.  Everything worked with no updates to the existing Chimp swc.

Please let me know if you are having in Flex 4 specific issues.

Updated: BlazeDS & Spring Refcard

Posted in Jon Rose on June 14th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

James Ward and I have updated our Dzone Refcard on using BlazeDS & Spring.  You can check it out at: http://refcardz.dzone.com/refcardz/flex-4-and-spring-3

Flex 4 Support Now Available From FlexMonkey / Gorilla Logic

Posted in FlexMonkey on May 11th, 2010 by jonr

jonr originally posted this on FlexMonkey :: Flex UI Testing Tool.

Latest Version of Open-Source Testing Tool for Flex Applications Delivers Full Flex 4.0 Spark Component Support

Broomfield, CO – May 11th, 2010 – Gorilla Logic, an enterprise IT consulting services firm known for its top consulting talent, today announced the availability of FlexMonkeyTM 4.0 Beta 1. The new version provides support for the latest Flex 4 release from Adobe, including the entire Spark component set. With over 6,200 registered users, FlexMonkey has become the industry standard for automated record and playback testing of Adobe Flex interfaces used by companies around the world.

“The FlexMonkey 4.0 Beta 1 release delivers what our users have been asking for: support for Flex 4 including all Spark components. This lets FlexMonkey continue to answer to the Flex community’s need for quality assurance and unit testing for Flex applications,” said Eric Owens, FlexMonkey Guru, Gorilla Logic.

As a leading consulting services firm specializing in enterprise application development using Adobe Flex, HTML5, Java and mobile application development, Gorilla Logic developed FlexMonkey to deliver unparalleled quality to their Fortune 500 clients. In addition to providing a forum for the community of FlexMonkey users to assist each other (FlexMonkey Forum), Gorilla Logic also provides annual support contracts, implementation services and custom enhancement development for clients interested in optimizing their implementation of FlexMonkey.

“We use a continuous integration environment and are deploying FlexMonkey on the desktops of nearly 150 developers. For us, FlexMonkey is an option that cannot be ignored because it was obviously developed with one goal in mind – to facilitate the creation of high-quality Flex applications,” said Josse Brayelle, MAAF Assurances.

FlexMonkey is well suited for use by both developers and QA testers. It provides for regression and functional testing, and can be run from popular build systems and continuous integration environments, like CruiseControl. Gorilla Logic has assisted several companies in setting up their continuous integration environments and ensuring a production quality implementation of FlexMonkey.

In response to FlexMonkey’s value and ease-of use, Jokichi Oguri from HP commented, “The work you guys have done is incredible. May Gorillas rule the earth some day!”

FlexMonkey 4.0 Beta 1 is available today at www.gorillalogic.com/flexmonkey. Gorilla Logic also offers complete FlexMonkey training, implementation and off-shore testing services.

About Gorilla Logic

Gorilla Logic is an enterprise application development services and consulting firm known industry-wide for providing “gorilla” consultants that can dramatically improve development team productivity. Gorilla Logic has long demonstrated their industry-leading expertise in enterprise Java / JEE development, Adobe Flex / RIA development, and mobile device
application development, including the iPhone, Android and Blackberry. Gorilla Logic has been engaged to ensure the success of their most mission critical projects by Fortune 500 companies as well as small and medium-sized businesses and startups in industries ranging from financial services to entertainment to aerospace and the government sector.

Gorilla Logic also develops open source tools for Java, Flex, and iPhone developers.

For more information about Gorilla Logic, please visit www.gorillalogic.com or email info@gorillalogic.com.

Gorilla Logic Media Contact
Chad Sanderson
303.974.7088 ext. 7002
chad.sanderson@gorillalogic.com

Article: A Deep Dive into Flash Builder 4

Posted in Jon Rose on March 22nd, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

Dzone.com / JavaLobby has published my ‘A Deep Dive into Flash Builder 4‘ article.  I wrote it over Christmas on the beta 2 release of Flash Builder, so hopefully everything is still up-to-date now that Flash Builder is finally out for production.

Give it a read and let me know if you have any feedback.