/services-test

Tools and test scripts used by the Mozilla Cloud Services team

Primary LanguageJavaScriptMozilla Public License 2.0MPL-2.0

services-test

Description

This repo is intended for: testing tools, test manifests and scripts used by the Mozilla Cloud Services team as part of the Mozilla Cloud Services automated test pipeline.

See: services-qa-jenkins for how these tests are used in Jenkins jobs. This is a private repo that requires permission to view.

Get Involved

You can read about our team and how to get involved at Read the Docs.

Here is a list of contributors to the repo.

Repo Structure

To contribute a new automated test to the services-test repo, please adhere to the following guidelines. This following file structure is required by Jenkins to execute automated tests.

  • {project}/ (directory)
  • One directory per project. For example:
    • services-test/absearch
    • services-test/autopush, etc.
  • {project}/README.md (file)
  • Add README file in project folder with links to: project repo (github), readthedocs, testplan, etc.
  • {project}/{test-type}/ (directory)
  • One project child directory per test-type. For example:
  • services-test/absearch/e2e-test
  • services-test/absearch/schema-check, etc.
  • {project}/{test-type}/run (file)
  • Add a "run" file in each test-type directory which should install all dependencies and kick off a test of the type indicated by the parent directory
  • example: example run file
  • {project}/{test-type}/manifest.ini (file)
  • Add a manifest file in each test-type directory which should specify any environment-specific parameters
  • example: example manifest.ini
  • {project}/{test-type}/misc (files)
  • Any additional files needed by that test type should be self-contained in that directory.

Test Environments

Environments where tests should be run for a given project

TEST ENV DESCRIPTION
stage where most testing happens before prod deployment
stage-loadtest this is a special env for msisnd where we need a different setup for loadtesting. In general loadtesting can take place in stage.
pre-prod final verification in an actual prod env (before DNS switch)
prod final verification to make sure prod deploy was successful. Also, continuous prod testing can be executed as a kind of prod "health check"

Test Types

Specify what kinds of tests should be run for any given environment

TEST TYPE DESCRIPTION
stack-check verify stack procs, urls, etc. are running
config-check verify application configuration
e2e-test client-side test
loadtest verify application scalability
schema-check API test
security ZAP test (TBD)
cdn-test check existence/delivery of remote files