Chuck's Automated Smoke Tester Experiment

23 views
Skip to first unread message

Charles Severance

unread,
Aug 9, 2020, 12:08:28 AM8/9/20
to dev sakai, saka...@apereo.org
Hi all,

I have had an idea in the back of my mind to build a “zero-configuration” smoke testing system that would put a web tool like Sakai or Tsugi through its paces without the need for any pre-built functionality tests.

The idea is to treat the site as a “site” and crawl every link from every page - like a web crawler would do and note any pages that cause errors for later verification.  Eventually this tool could run on every version and see if something regressed or got fixed.  It does not fill out forms or submit data - it just click on every url and loads every referenced file until It has hit every page in the system.

I have a really simple MVP working at:


It can go after a Sakai on port 8080 or a web site like http://www.tsugicloud.org - it has some special login stuff for Sakai that I need to factor into a plugin once I have it working.

If you point it at a Sakai on localhost - it will run thousands of clicks and find a few errors.  See the README for more details.

This is early days and just a nugget of an idea that I have to build something that can make both Sakai and Tsugi (and any web site) better.  As an example it seems to like www.sakailms.com pretty well.

Have fun and watch this space.

/Chuck

$ rm smoker.sqlite 
$ python3 smoker.py 
Enter web url or enter: https://www.sakailms.org
How many pages:10000
1 https://www.sakailms.org (576885) 200 13
...
No unretrieved HTML pages found

$ python3 broken.py 

403 211 application/xml

404 2866 text/html;charset=utf-8

404 2866 text/html;charset=utf-8

404 2866 text/html;charset=utf-8
4 rows.





Michael Greene

unread,
Aug 11, 2020, 10:27:53 AM8/11/20
to Sakai QA Testing, csev, dev sakai
Unfortunately, i'm not going to have time to dig into this until after the freeze and start of term. This does seem similar to something I've been thinking about - running cyprus.io and lighthouse-ci on pull request for automated qa/a11y testing. Do you think it'd be possible to hard code some URLS for testing so you could target the tests? Like a "this PR affects the assignments project, so only run tests on the assignment pages, not the entire build/webapp" kind of thing.

Looks pretty cool.
MG

Reply all
Reply to author
Forward
0 new messages