GithubHelp home page GithubHelp logo

mythmon / services-test Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mozilla-services/services-test

0.0 3.0 0.0 3.94 MB

Tools and test scripts used by the Mozilla Cloud Services team

License: Mozilla Public License 2.0

Shell 6.35% Batchfile 0.17% Python 76.93% HTML 7.11% JavaScript 9.29% Makefile 0.14%

services-test's Introduction

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.

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.
  • README.md (file)
  • Add README file in project folder with links to: project repo (github), readthedocs, testplan, etc.
  • test-type (directory)
  • One project child directory per test-type. For example:
  • services-test/absearch/e2e-test
  • services-test/absearch/schema-check, etc.
  • 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
  • manifest.ini (file)
  • Add a manifest file in each test-type directory which should specify any environment-specific parameters
  • example: example manifest.ini
  • misc (files)
  • Any additional files needed by that test type should be self-contained in that directory.

Docker Instructions

If you don't have docker, follow these instructions

To build your own image from the latest code, from the root of services-test (where the Dockerfile is)

  • docker build -t mozilla-services/services-test .
  • docker run -i -t mozilla-services/services-test /bin/bash

Run tests from the image’s bash shell, e.g.:

  • $ absearch/schema-check/run.sh

TODO: Docker hub

Test Execution via Docker

Execute the schema_check test on absearch:

docker run -it -v /Users/your-username/path/to/services-qa-secrets/secrets:/secrets -v /Users/your-username/.ssh/id_rsa:/root/.ssh/id_rsa -p 5900 -e HOME=/ -w /services-test/absearch/schema-check/ mozilla-services/services-test ./run.sh

Test Manifests

A "test manifest" (manifest.json) ican be found in each project directory. This file specifies all the test types: tag-check, stack-check, e2e-test, etc. that will be run in any given test environment: stage, pre-prod, prod, etc. (see below)

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
tag-check download tag, make project run unit tests
stack-check verify stack procs, urls, etc. are running
e2e-test client-side test
loadtest verify application scalability
schema-check API test
security ZAP test (TBD)

Reference

https://github.com/mozilla-services/services-qa-jenkins

  • Vagrant/Puppet scripts for setting up Services QA Jenkins infrastructure

https://github.com/rpappalax/deploy-verify

  • swiss-army knife tool for handling deployment ticket creation, updates, stack-checks, etc.

services-test's People

Contributors

stuartphilp avatar rpappalax avatar pdehaan avatar chartjes avatar cuff-links avatar cloud-services-qa avatar karlht avatar lavish205 avatar

Watchers

Michael Cooper avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.