What is Marionette?
When would I use it?
If you want to utilize user interaction with chrome or content, Marionette is the tool you're looking for, but it is also capable of doing much more! Marionette lives in both the chrome and content space of a gecko process, so it is capable of running commands in any of these spaces.
This means you can run any JS script in chrome or in content. This is a powerful feature, enabling a user to do anything from inspecting the content DOM of a Firefox instance running in a remote machine to executing a script that changes profile preferences in privileged chrome space.
Marionette combines a gecko component (the Marionette server) with an outside component (the Marionette client), which drives the tests. To use Marionette you must get a Marionette-enabled build, and then download a Marionette client or use the in-tree client.
- Get a Build - Instructions on how to get a marionette-enabled build of Firefox, FirefoxOS or desktop FirefoxOS.
- Download and setup the Marionette Python client
- Download and setup the Marionette JS client
- Connecting to Marionette on a B2G device or emulator
- Run Tests with Python - How to run tests using the Python client
- You might want to experiment with using Marionette interactively at a Python command prompt
- Start writing and running tests with supported test frameworks!
Please file any bugs you may find!
You can view a list of current bugs to see if your problem is already being addressed.
Feel free to drop us a line over at the #ateam channel!
If you're interested in contributing, please follow this setup guide!
Subpages (temporary section)
This section is here to help with copy-editing and organization work that is ongoing, and will be removed sometime soon once that work is done.