What are some Open Source UI Testing Tools in Flex?

This question comes in from "P" and I'm kind of stuck to give him an answer.

I need to implement TDD in our flex application and condition is that we need to use a open source. My application is primarily has drag and drop functionality. I tried and analyzed several Test automation tools such as FlexMonkey, webdriver etc. they work fine till some extent.But they fail to recognize drag and drop actions and customcomponents.

Basic problem is that all Automated Testing tools identifies 'id' to perform any action. And in case of drag and drop all ids are generated on runtime Can you please suggest me any tool which can help or any change in my code which can help.

I'm at a bit of a loss. Obviously from P's question he needs a UI Testing tool; and FlexMonkey is the most well known in the Flex world. But, it wouldn't work for him.

I said that to get FlexMonkey to work with custom components, he may need to create a custom automation delegate and recompile Flex Monkey. But, I could never get that to work myself and eventually had to put it aside to focus on other things.

So, dear readers, what would you suggest? Are there other options out there?


I do like fielding questions from the audience, and have been doing a lot of that over on Stack Overflow and the Flextras Friday Lunch Podcast.

If you have questions feel free to ask me privately or stop by a Flextras Friday Lunch session.

You can get personal, confidential help from me [with screen sharing] via www.AskTheFlexpert.com.

You can also fine me at 360|Flex in DC this September.

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
PJ's Gravatar Why not give a try to RIATest - its not open source but at least see if it would solve the issue.
# Posted By PJ | 7/21/10 2:16 PM
Jeffry Houser's Gravatar PJ,

I'm aware of RIATest, but never actually used it. Will it work for custom components w/o any additional development?

I would have assumed it had similar limitations as FlexMonkey. Maybe I'll have to test it out on the Flextras Calendar to see how it goes.
# Posted By Jeffry Houser | 7/21/10 9:51 PM
Tigran Najaryan's Gravatar Not sure about open source tools (there is also FunFX if FlexMonkey does not do what you want) but commercial tools should support drag and drop (our tool - RIATest - definitely does).
# Posted By Tigran Najaryan | 7/22/10 7:13 AM
Tigran Najaryan's Gravatar >Will it work for custom components w/o any additional development?

It depends on the component. If it has custom events that need automating then yes, extra effort is required to make the component automation friendly. This applies to any tool that is based on Flex automation framework.
# Posted By Tigran Najaryan | 7/22/10 7:16 AM
Jeffry Houser's Gravatar Cool, I've never heard of FunFX before; thanks for that suggestion.

To make a component automation friendly, you need to create an Automation Delegate, correct? Is there any documentation on the process?
# Posted By Jeffry Houser | 7/22/10 8:45 AM
Tigran Najaryan's Gravatar >To make a component automation friendly, you need to create an Automation Delegate, correct? Is there any documentation on the process?

It is usually a 2 part process.

First you "instrument the component" as described in Flex documentation: http://livedocs.adobe.com/flex/3/html/help.html?co...

Then you let the testing tool know about the custom component (e.g. for RIATest: http://www.riatest.com/onlinedocs/v3/RIATest/Custo...)
# Posted By Tigran Najaryan | 7/22/10 11:41 AM
Stu Stern's Gravatar Automation delegates are a required component of Adobe's Automation framework upon which all popular Flex testing tools -- including FlexMonkey, RiaTest, HP QTP -- are based.

Most custom components that extend Spark or Halo components (for example, a subclass of a Button control) will usually work without creating custom delegates. The only situation that definitely requires a cusotm delegate is a class that directly extends a UIComponent.

You can find documentation on writing a custom delegate at http://www.gorillalogic.com/books/flexmonkey-docs/....

Additionally, you can find the source code for all Flex SDK delegates at your_flex_sdk/libs/automation, and these are very useful for understanding how delegates work as well as for debugging delegates (since, unfortunately, that automation framework is a tad buggy).

By the way, FlexMonkey does record and playback drag and drop, so I'm not sure what the issue mentioned above is referring to.

Stu Stern
# Posted By Stu Stern | 7/26/10 1:50 PM
Jeffry Houser's Gravatar Stu,

As one clarification; the Flextras Calendar extends ListBase, but does not work with FlexMonkey.

Thanks for the custom delegate info links [from both Stu and Tigran].
# Posted By Jeffry Houser | 7/26/10 1:59 PM
All Content Copyright 2005, 2006, 2007, 2008, 2009 Jeffry Houser. May not be reused without permission
BlogCFC was created by Raymond Camden. This blog is running version 5.9.2.002.