“Genie” – Automated UI Tester for Adobe ActionScript

Did you think that Brackets was the only open-source-star Adobe has been working on? What many people fail to realize is that the Flash technology side of things is under heavy, HEAVY development; new versions of the runtimes, expanded operating system support, incredible ActionScript improvements, major tooling updates, and projects like Monocle, SWF Investigator, Starling, Proscenium, and “Genie“. Adobe has a huge investment in Flash as a platform and in my opinion, the future of the platform is quite luminous.

Automated UI Tester for Adobe ActionScript is a pure ActionScript 3.0 SWF automation testing tool with the capability of recording user actions on an SWF file and playing them back with high fidelity.

Some major features of this tool are:

  • No instrumentation or application manipulation is required
  • Automate pure ActionScript 3.0 SWF
  • No source code access required
  • No need to run inside any wrapper
  • Works on web based apps and standalone SWF
  • Performs native automation (no image dependency) thus making scripts reliable and lowering down maintenance cost
  • Application can even be running in background

Check it out at http://sourceforge.net/adobe/genie/!

10 Replies to ““Genie” – Automated UI Tester for Adobe ActionScript”

  1. Unable to create view ID com.adobe.geniePlugin.views.GenieWatchView: Plug-in GeniePlugin was unable to load class com.adobe.geniePlugin.views.GenieWatchView.

    exception on 10.7.4
    java.lang.NullPointerException
    at com.adobe.geniePlugin.views.GenieView.createPartControl(Unknown Source)
    at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)
    at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
    at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2245)
    at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1145)
    at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3921)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3918)
    at org.eclipse.ui.handlers.ShowViewHandler.openView(ShowViewHandler.java:162)
    at org.eclipse.ui.handlers.ShowViewHandler.openOther(ShowViewHandler.java:105)
    at org.eclipse.ui.handlers.ShowViewHandler.execute(ShowViewHandler.java:73)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
    at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
    at org.eclipse.ui.internal.ShowViewMenu$3.run(ShowViewMenu.java:187)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

  2. Hi, I think Genie is very cool, was a bit of a pain to setup but its working nicely now, hope you guys have managed to get it working, I have it running my side and have written a few Test, and its the best solution I found thus far.

  3. I can not run is guys… The server is running, but the green icon doesnt shows up……. Anyone has some ideas? Thx

  4. Hi guys.. Really in trouble right here..

    I setup the environment following “AUTOMATED UI TESTER FOR ADOBE® CTIONSCRIPT® USER GUIDE”

    I am able to see the Genie(Codename) view on eclipse, but everything it is available is the option “capture image for UI based actions on desktop”.

    On Genie expressions I am getting this:

    Plug-in GeniePlugin was unable to load class com.adobe.geniePlugin.views.GenieWatchView.

    Same problem as Tarum.

    Any thoughts?

    Thks..

  5. Hi Joseph,

    I went throw GeniePlugin.jar searching for the class “com.adobe.geniePlugin.views.GenieWatchView” and such class doesn’t exist..

    I’ve also googled it and this forum is the only result. Could be that I am the only one that is experiencing this?

    Please give me a word..

    Thks..

Comments are closed.