Selenium Tests for the Socorro
Pull request Compare This branch is 2 commits behind mozilla:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Web QA Tests for

Mozilla's Crash Reporting System

Thank you for checking out Mozilla's Socorro test suite! Mozilla and the Web QA team are grateful for the help and hard work of many contributors like yourself. The following contributors have submitted pull requests to Socorro-Tests:

Continuous Integration

Build Status

Getting involved as a contributor

We love working with contributors to improve the Selenium test coverage for Socorro-Tests but it does require a few skills. You will need to be familiar with Python, Selenium, and have a working knowledge of GitHub.

If you are comfortable with Python, it's worth having a look at the Selenium framework to understand the basic concepts of browser-based testing and the page objects pattern.

If you need to brush up on programming but are eager to start contributing immediately, please consider helping out by doing manual testing. You can help find bugs in Mozilla Firefox or find bugs in the Mozilla web sites tested by the Web QA team. We have many projects that would be thrilled to have your help!

To brush up on Python skills before engaging with us, Dive Into Python is an excellent resource. MIT also has lecture notes on Python available through their open courseware. The programming concepts you will need to know include functions, working with classes, and the basics of object-oriented programming.

Questions are always welcome

While we take great pains to keep our documentation updated, the best source of information is those of us who work on the project. Don't be afraid to join us in #mozwebqa to ask questions about our Selenium tests. Mozilla also hosts the #breakpad chat room to answer your general questions about the Socorro project and about contributing to Mozilla.

How to setup and run Socorro tests locally

This repository contains Selenium tests for the following environments:

Mozilla maintains a guide to running Automated tests on our QMO website:

This wiki page has some advanced instructions specific to Windows:

You will need to install the following:


If you have cloned this project already then you can skip this! GitHub has excellent guides for Windows, MacOSX, and Linux.


Before you will be able to run these tests you will need to have Python 2.6.8+ installed.

Virtualenv and Virtualenvwrapper (Optional/Intermediate level)

While most of us have had some experience using virtual machines, virtualenv is something else entirely. It's used to keep libraries that you install from clashing and messing up your local environment. After installing virtualenv, installing virtualenvwrapper will give you some nice commands to use with virtualenvwrapper. virtualenv will allow you to install Python modules and run your tests in a sandboxed environment.


This is not necessary but is really helpful if you are working on multiple Python projects that use different versions of modules.


easy_install pip

followed by

sudo pip install -r requirements.txt


If you are running on Ubuntu/Debian you will need to do following first

sudo apt-get install python-setuptools

to install the required Python libraries.

Running tests locally

Before each test run, clean up the repo: find . ( -name 'results' -or -name '\.pyc' ) -print0 | xargs -0 rm -Rf

To run tests locally it is as simple as calling py.test with several flags. To run testcases that do not modify or delete data:

py.test --driver Firefox --base-url


Output of a test run should look something like this:

============================= test session starts ==============================
platform linux2 -- Python 2.7.3 -- pytest-2.2.4
collected 73 items

tests/ .........................xx..........x.xx....x.
tests/ xx
tests/ .........x.x.
tests/ ...........

============== 63 passed, 10 xfailed in 970.27 seconds ===============

Note "~" will not resolve to the home directory when used in the py.test command line.

The pytest plugin that we use for running tests has a number of advanced command line options available. To see the options available, run py.test --help. The full documentation for the plugin can be found here.


If the test run hangs with Firefox open but no URL gets entered in the address box, some combination of the Firefox version, and the python Selenium bindings version may not be compatible. Upgrading each of them to latest should fix it.

Writing Tests

If you want to get involved and add more tests, then there are just a few things we'd like to ask you to do:

  1. Use the template files for all new tests and page objects
  2. Follow our simple style guide
  3. Fork this project with your own GitHub account
  4. Make sure all tests are passing, and submit a pull request with your changes
  5. Always feel free to reach out to us and ask questions. We'll do our best to help get you started and unstuck.


This software is licensed under the MPL 2.0:

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at