Gaia-ui-tests uses Gaiatest, a Python package based around Marionette. Gaiatest is designed to wrap HTML locators, Marionette calls and API calls together for interoperble communication and functiuonality. Marionette is based on the W3C standard developed for the Selenium WebDriver a programming interface for browser automation. If you have used WebDriver and page/app objects before then you will find using Marionette and gaiatest easy.
Current material: Running and Writing Tests
- Running Tests
- Guides to running gaia-ui-tests against device and desktopb2g in a variety of configurations.
- Gathering Power Draw
- How to use gaiatest to log power draw while a test is running.
New material: heavily work-in-progress; don't use these yet
For those keen to get started with automated testing on Firefox OS we have a tutorial that will help you go from nothing to writing your own tests. Once you've completed this tutorial you'll have enough knowledge of testing, Firefox OS and Marionette to get started as a Mozilla contributor. It is highly recommended to complete this tutorial if you wish to become a contributor.
- Part 1: Getting started with Marionette and Firefox OS
- Installing Firefox OS and some basic software packges
- Part 2: Basic interactions with Firefox OS using Marionette
- Talk to Firefox OS using marionette and a Python console
- Part 3: Upgrading our code into a reusable test
- Put all the code into a Python file so we can re-use it
- Part 4: Re-using commands to set up Firefox OS
- Move some commands into Python methods
- Part 5: Introducing a test runner
- Use Python's unittest runner for testing framework
- Part 6: Using Marionette's By class
- Reduce duplication
- Part 7: Writing your own tests
- Start to write your own tests and dig into Firefox OS using Mozilla tools
- Part 8: Using a base class
- Abstract test runner code into a Python class
- Part 9: Reducing duplication with app objects
- Abstract code on the AUT into a Python class
This project is at a fairly early stage, and your feedback would be greatly appreciated: