No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ci-scripts Remove debug commands, use "phpcompatibility" namespace instead of "w… Aug 6, 2018
config/prod Fix configs after fresh install. Sep 9, 2018
drush Added security audit drush commands. Jun 21, 2017
private_files
scripts QAS-58 | Renamed the refactor script. Apr 19, 2017
web Add dependencies. Sep 9, 2018
.env.example Add .env to be used in compose.yml files. Aug 7, 2018
.gitignore Add .env to be used in compose.yml files. Aug 7, 2018
.travis.yml Try figuring out why the compatibility check fails. Aug 6, 2018
API.md QAS-139 | Clean up the API docs and move the REST related documentati… Oct 26, 2017
CHANGELOG.md QAS-143 | IMPORTANT, READ THE CHANGELOG BEFORE UPDATING! Oct 25, 2017
DRUPAL_README.txt README.md added. TIET-20 Oct 5, 2016
INSTALL.md Extend install instructions with required config overrides. Sep 4, 2018
LICENSE.txt Core update 8.2.0-rc2 -> 8.2.0 TIET-20 Oct 6, 2016
README.md Add roadmap. Aug 7, 2018
composer.json
composer.lock Replace AMQPLib with BunnyLib. Aug 14, 2018
docker-compose.prod.yml Cleanup the docker-compose files. Aug 7, 2018
docker-compose.yml Update nginx, as wodby removed the old version from the dockerhub. Sep 9, 2018
phpcs.sh Add PHPCS.sh for local CS checking. Aug 6, 2018
phpcs.xml
phpunit.xml.dist
prod-startup.sh Fix permissions for helper scripts. Aug 7, 2018
run-test-queue.sh Add initial remote runner code. Aug 10, 2018
shutdown.sh
startup.sh Fix permissions for helper scripts. Aug 7, 2018
update-docker-prod.sh Update to drush 9. Oct 10, 2017
update-docker.sh
update-prod.sh Update to drush 9. Oct 10, 2017
update.sh Update to drush 9. Oct 10, 2017
weekly-cron.sh

README.md

QAShot

Build Status

QAShot is a Drupal 8 application which provides a UI to use BackstopJS to execute A/B testing of 2 sites.

Features:

  • Test queue; Tests are put into a queue and are executed as soon as possible.
  • UI to manage BackstopJS test cases.

Disclaimer

QAShot is heavily in development. Breaking changes with no automatic upgrade paths might be introduced to it without notice. Use or update it at your own discretion.

Roadmap

QAShot will undergo big changes in the future.

Remote BackstopJS execution

We are developing a QAShot Worker project. This will serve as a remote execution stack independent from, but used with this Drupal based project. This will allow us to make the Drupal instance more lightweight and increase test execution speed.

Full rewrite

We would like to also keep local run capabilities, but supporting both in a sustainable way is not possible. This means, a full back-end rewrite will start hopefully soon.

Docker

The project comes with a docker-compose.yml based on the Docker4Drupal environment (v1.3.0). A custom docker image is used for the PHP container, as we needed to include BackstopJS and its dependencies. Name: havelantmate/drupal_php See:

Cron

The tests are not run automatically, they are first put into a queue which is managed with cron. If you want the tests to run, you have to set up a cron job on the system.

If you are using the docker environment described in this repo, just use this: ( crontab -l ; echo "* * * * * /bin/sh /run-test-queue.sh" ) | crontab -

See https://www.drupal.org/node/23714 for more cron info.

Installation

The UI part is a standard Drupal installation. Drupal dependencies are managed with composer.

To import the existing configuration, you need to set the site uuid to the exported one: drush config-set "system.site" uuid "f700763e-1289-406f-919e-98dc38728a53" -y

You also need to remove shortcuts from the fresh install, as the standard profile creates some by default: drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'

To run the tests, you need BackstopJS installed globally.

Detailed install guide is in the INSTALL.md

API

Endpoints are exposed by the qa_shot_rest_api module. For more information how to use it see API.md file.