Thank you for checking out our Mozillians test suite! This repository contains tests for Mozillians - a community phonebook for core contributors.
We love working with contributors to improve test coverage our projects, but it does require a few skills. By contributing to our test suite you will have an opportunity to learn and/or improve your skills with Python, Selenium WebDriver, GitHub, virtual environments, the Page Object Model, and more.
Our new contributor guide should help you to get started, and will also point you in the right direction if you need to ask questions.
If you have cloned this project already, then you can skip this; otherwise you'll need to clone this repo using Git. If you do not know how to clone a GitHub repository, check out this help page from GitHub.
If you think you would like to contribute to the tests by writing or maintaining them in the future, it would be a good idea to create a fork of this repository first, and then clone that. GitHub also has great instructions for forking a repository.
Some of the tests require credentials associated with account with specific access levels. Create at least three users on staging. Vouch at least two of these users by adding '/vouch' to the end of the profile URL for each user. In one of the vouched users' profiles, join at least one group and mark groups as private.
Create a file outside of the project (to avoid accidentally exposing the
credentials) with the following format. You will reference this file when
running the tests using the --variables
command line option.
Note that the vouched
key is a list. This is so that multiple vouched users
can be used when running the tests in parallel. It's recommended that you have
as many vouched users as you intend to have tests running in parallel.
{
"web-mozillians-staging.production.paas.mozilla.community": {
"users": {
"vouched": [
{
"username": "vouched",
"email": "[email protected]",
"name": "Vouched User"
}
],
"unvouched": {
"username": "unvouched",
"email": "[email protected]",
"name": "Unvouched User"
},
"private": {
"username": "private",
"email": "[email protected]",
"name": "Private User"
}
}
}
}
Then you can run the tests using Docker:
$ docker build -t mozillians-tests .
$ docker run -it \
--mount type=bind,source=/path/to/variables.json,destination=/variables.json,readonly \
mozillians-tests
You will need a Sauce Labs account, with a .saucelabs
file in your home
directory containing your username and API key, as follows:
[credentials]
username = username
key = secret
Then you can run the tests against Sauce Labs using Docker by passing the
--driver SauceLabs
argument as shown below. The --mount
argument is
important, as it allows your .saucelabs
file to be accessed by the Docker
container:
$ docker build -t mozillians-tests .
$ docker run -it \
--mount type=bind,source=$HOME/.saucelabs,destination=/src/.saucelabs,readonly \
--mount type=bind,source=/path/to/variables.json,destination=/variables.json,readonly \
mozillians-tests pytest --variables /variables.json \
--driver SauceLabs --capability browserName Firefox
See the documentation on specifying capabilities and the Sauce Labs platform configurator for selecting the target platform.
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:
- Follow our simple style guide.
- Fork this project with your own GitHub account.
- Make sure all tests are passing, and submit a pull request.
- Always feel free to reach out to us and ask questions.