That's really cool, I would definitely consider using something like this if the results are given in a json or other parse-able format. Maybe in Polypane, or it could also make sense in a CI/CD environment.
Are the checks run concurrently? how long does a run for a single site take?
Another nice check would be webhint.io for a11y.
So you would prefer the CLI version? Atm I create the HTML and write it to a file. But it wouldn't be a problem to write the used JS-Object as JSON to somewhere.
Right now I haven't accomplished to let them run in parallel - have to say that I'm PHP developer under normal circumstances.^^
The runtime depends a lot on the cached state of SSLlabs. If there is a cached result (a check was run within the last 24h) it takes ~20sec for my 4pages on my local MBP. The SSLlabs check is really the one that, even if cached, takes the most time.
If there isn't a cached result it will take ~5min/site. But it seems that SSLlabs deletes cached results or doesn't find them even if there was a check in the last 24h. So, even a cronjob that triggers an analysis at midnight wouldn't create a cached/usable result for the next day.
Could be that I add a local caching layer and even drop mocha as a testrunner and switch a simpler approach.
Thanks for the webhint.io tip! Looks good, even if it's somehow overlapping with lighthouse but it was pretty fast, can run on local machine, without API/chrome (if I've seen it right?) - so could be a good addition/replacement.
I think that the really really really big goal could be a tool that accepts a configuration JSON to setup URLs/domains and test-tools with basic configuration. So that you can disable any tool or single parts of it. But for sure also something that allows you to add your own tools.
uncached:
$ node test/index.js
https://astrotomic.info
✓ securityheaders
✓ ssllabs (175963ms)
✓ lighthouse
✓ screenshot
https://studiopolster.de
✓ securityheaders
✓ ssllabs (175858ms)
✓ lighthouse
✓ screenshot
https://janine-pantzek.de
✓ securityheaders
✓ ssllabs (175457ms)
✓ lighthouse
✓ screenshot
https://moinhund.hamburg
✓ securityheaders
✓ ssllabs (176167ms)
✓ lighthouse
✓ screenshot
16 passing (12m)
cached:
$ node test/index.js
https://astrotomic.info
✓ securityheaders
✓ ssllabs
✓ lighthouse
✓ screenshot
https://studiopolster.de
✓ securityheaders
✓ ssllabs
✓ lighthouse
✓ screenshot
https://janine-pantzek.de
✓ securityheaders
✓ ssllabs
✓ lighthouse
✓ screenshot
https://moinhund.hamburg
✓ securityheaders
✓ ssllabs
✓ lighthouse
✓ screenshot
16 passing (40s)
There you see the difference.
And would your usecase be to run it hourly for all your pages (frontpage)? Or in your CI/CD for a single page with all sub-pages? Just want to get some insights in the usecases of others for something like this to check if they can be covered.