Selenium Testing with FlexPilot





3.00/5 (1 vote)
Selenium testing with FlexPilot
I continued my quest for a solution to create automated tests using seleniumRC and C# and this time, I took a look at this new project called Flex Pilot.
FlexPilot is a open source testing tool that integrates with selenium, it has a bootstrapper to make the application testable, it is able to use a selenium IDE recorder, and you can access elements using chain syntax (like accessing with xpath).
Here is what I did to start building tests with flex pilot:
- Rebuilded flexpilot: source is http://github.com/mde/flex-pilot/archives/master and executed build.py this will update FlexPilot.swf and FPBootstrap.swf located under org/flex_pilot folder (place this file where the app is located)
- Copied the content from src/org/flex_pilot folder to the flex's app libs folder example C:\source\MyAppInFlex\libs
- Imported Bootstrap in the flex app
import org.flex_pilot.FPBootstrap;
- Set
FPBootstrap.flex_pilotLibPath
the path on the server whereFPBootstrap
can find FlexPilot.swf. The Loader fetches FlexPilot.swf via aLoader
class.FPBootstrap.flex_pilotLibPath = '/flash/org/flex_pilot/FlexPilot.swf';
- Initialize
FPBootstrap
- this fetches and loads FlexPilot.swf, and gives FlexPilot Flash a context to use for testing. This context is usually a reference to app’s Stage.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" creationComplete="init() applicationComplete="initFlexPilot()"> ...... <mx:Script> <![CDATA[ ............... import mx.utils.ObjectUtil; import org.flex_pilot.FPBootstrap; ............... private function initFlexPilot():void { FPBootstrap.flex_pilotLibPath = 'FlexPilot.swf'; FPBootstrap.init(stage); } ......
- Compiled application:
mxmlc -source-path=. -source-path+=../libs MyAppInFlex.mxml -o MyAppInFlex.swf
- If present, remove tags like
<noscript>
around the flex object in your HTML. - If the configuration is working, Firebug will return “function” when calling
document.getElementById('MyAppInFlex').fp_click
- This is the “
hello world
” example of a test method on C#[TestMethod] public void TestMethodFlexPilot() { selenium.Open("http://localhost/testapp.html"); selenium.RunScript("document.getElementById('MyAppInFlex').fp_type({name:'usernameTextInput', text:'Flex Pilot'})"); selenium.RunScript("document.getElementById('MyAppInFlex').fp_click ({name:'secureCheckBox'})"); }
FlexPilot has seleniumRC client drivers available for Java, Python and Ruby (no C# client driver available yet).