Fake - Mac OS X Web Browser Automation and Webapp Testing Made Simple.
fakeapp.com
fakeapp.com
- I don't really like the name Fake.. I thought it was a lying page or something..
- As I see it.. it kind of make it extremely intuitive for a newbie user to add action.. however, how this newbie user will know the id in the post field..? (Ok, maybe those users will only use the "click" action).. but still, it could be good to separate the action into a beginner mode and advanced mode.. this will make it even easier for no-tech people to use the application.. and maybe make it more powerful for developers to build test suite, etc.
a) run it on a hosted Mac Mini at a specified frequency, with a billing rate based on number of actions/frequency of script execution (aka, someone with a 30 step script who wants their script to run once an hour pays more than someone with a 5 step script who wants their script to run once a day)
b) execute the script on their hosting via a callback url, so I can hook this up to my CI server
This plus flexible notifications (email, SMS, Campfire) would be huge.
For most other functional testing I'd stick to webrat that I can bake into my build script.
But flash testing...I really want to crack that nut.
We're using it, and it's the only solution we've found that works well for Flash testing. Costs a bundle, but was worth it to automate our (mostly Flash-based) app...
Also, it doesn't look like Fake would be able to interact with Flash/Flex apps, based on the screenshots. Looks like DOM scripting to me.
And I posted above, you can also use Selenium + Flex-Pilot to test Flash or Flex apps: http://github.com/admc/flex-pilot-x/ http://github.com/mde/flex-pilot/
A lightning talk by Adam Christian about Flex Pilot: Part 1: http://www.youtube.com/watch?v=H_eECx0vgsI Part 2: http://www.youtube.com/watch?v=k3YeK_eowi0
Another tool you might want to look into for flash testing Sikuli: http://groups.csail.mit.edu/uid/sikuli/
"Fake" is such a negative word, were better names taken? "Faux"? "Pseudo"?
features which I would ask for
a) headless runner
b) applescript may be usable but could it be integrated with ruby or other programming languages, that I way can make it a driver for my current testing flow
c) logging/debugging capability
d) and of course price it reasonably :)
I've done some experimenting with Celerity (headless integration testing with JS support) and it works quite well. Can even emulate CSS and it scales much better. One thread becomes one test. So running 50 tests in parallel on one machine is no problem. This really is a requirement for me if you want it to work with CI.
Celerity is based on Watir (similar to Selenium) and Ruby. See http://celerity.rubyforge.org/
Most AppleScript aware applications can be made to support ruby and python through this bridge:
http://developer.apple.com/mac/library/documentation/Cocoa/C...
At the moment it seems there is a need to know the ids/classes of your entire page by heart - or resort to looking at your own source, it would make it _much_ less painful if when you click in a box that expects an element ID that your cursor could then be used to click an element, to generate the xpath (like webinspector/firebug).
Interesting app though - have been a heavy user of Selenium for testing but building the scripts has been time intensive and generally is done by the QA team rather than by devs. If the UI for building these tests gets better, then devs may end up building tests for themselves rather than expecting someone else to do it.
(Basically the app currently fails quietly if the SSL certificate doesn't validate, rather than prompting for action.)
> 5.3 You agree not to access (or attempt to access) any of the Services by any means other than through the interface that is provided by Google, unless you have been specifically allowed to do so in a separate agreement with Google. You specifically agree not to access (or attempt to access) any of the Services through any automated means (including use of scripts or web crawlers) and shall ensure that you comply with the instructions set out in any robots.txt file present on the Services.
I know Selenium RC does the same thing in sample scripts for some of its bindings, and I'm pretty sure I've seen it in other tools as well.