Quickly Extending into Testing with Docker

DevOps practitioners must get feedback from quality assurance and security testing as early in the development pipeline as possible. When continuously building and deploying web application projects, being able to run a test and get output on it within minutes is a super power skill that gets teams ahead of potential problems. In this workshop, be prepared to use Docker to run multiple tests on your websites, learn about what the different tests are used for, and then become familiar with the output to interpret them for actionable feedback. We will analyze the following testing capabilities.

  • Performance
  • Security
  • SEO
  • Accessibility

Dev, Ops, Sec, and QA resources should all gain knowledge about the entire pipeline and find new ways to collaborate on testing. Docker allows teams to experiment quickly and determine what systems help the work in the most useful way.

Slideshare

 

Commands I run

chmod o+w docker-tests/

chmod o+w docker-tests/*

docker run --rm -v /root/docker-tests/sitespeed.io:/sitespeed.io      sitespeedio/sitespeed.io:8.15.2 https://tomcudd.com

docker run --rm --name lighthouse -it -v /root/docker-tests/lighthouse:/home/chrome/reports --cap-add=SYS_ADMIN femtopixel/google-lighthouse https://tomcudd.com

docker run -v /root/docker-tests/zap:/zap/wrk/:rw -t owasp/zap2docker-stable      zap-baseline.py -t https://tomcudd.com -g gen.conf -r tomcudd.html

docker run -it --rm -v /root/docker-tests/checklink:/home/checklink stupchiy/checklink -H https://tomcudd.com > /root/docker-tests/checklink-report.html

mkdir docker-tests/pa11y

vim docker-tests/pa11y/config.json

docker run -it -v /root/docker-tests/pa11y/config.json:/tmp/config.json      digitalist/pa11y-ci:latest pa11y-ci -c /tmp/config.json > /root/docker-tests/pa11y/pa11y-output.txt

Config file

[root@c7v2 ~]# cat pa11y/config.json
		{
		    "defaults": {
		      "chromeLaunchConfig": {
		         "args": ["--no-sandbox"]
		       },
		        "timeout": 60000
		    },
		    "urls": [
		        "https://tomcudd.com"
		    ]
		}

Info about Docker commands

--rm == clean up the running container when done
-v == mount a volume
--name with -it to allocate pseudo-TTY
--cap-add=SYS_ADMIN == to allow the range of systems administration operations

Links

Pixabay Images Used