QA automation tool — 2026
Zong Health Scanner
A website health scanner built during my QA Automation internship at Zong 5G. Give it a URL and it loads the page in a real browser, then runs eight checks: visual changes, broken links, console errors, load time, SEO basics, security headers, mobile layout and accessibility. The results come back as one emailed report.
- 8checks per scan
- 6security headers
- 0.5%visual change threshold
The goal
Catch problems on staging sites before users do, without someone checking every page by hand: pages that changed visually, links that no longer work, slow loads, weak SEO, missing security headers, mobile overflow and accessibility issues.
What I built
Scanner engine
A headless browser driven by Playwright loads each page, takes screenshots and inspects it, so the checks run against what a real user would see.
Visual regression
Each scan is compared with an approved baseline screenshot pixel by pixel. If more than 0.5% of the page changed, the scan flags it and saves a difference image showing exactly where.
Links, SEO and security headers
Links on the page are checked, with known bot-blocking sites such as LinkedIn handled so they do not raise false alarms. SEO signals are read from the page (title, meta description, a single h1, canonical link, Open Graph title and robots), and six security headers are verified: Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy.
Performance, mobile and accessibility
Each scan records console errors and how long the page takes to become ready and to finish loading. It reloads the page at a 375px phone width to catch horizontal overflow, and runs axe-core to collect accessibility violations, rated by impact.
API and dashboard
A Flask API with endpoints to run a scan, approve a new baseline and list reports, which can be protected with an API key, plus a small web dashboard and a health endpoint. Results get a severity rating and go out as an HTML email report.
Automation with n8n
An n8n workflow starts with a form and calls the scanner API, so non-developers can run a scan without touching code.
Packaging and documentation
The scanner ships as a Docker image built on the official Playwright image and served by Gunicorn, so it runs the same everywhere. A slide deck and a product document sit alongside the code.
The stack
- Scanner
- PythonPlaywrightaxe-corePillowNumPy
- API
- FlaskGunicorn
- Automation
- n8n
- Packaging
- Docker
The outcome
- Packaged as a Docker image that runs the same on any machine.
- Can be triggered from a no-code n8n form by people who do not write code.
- Documented with a slide deck and a product document.
Don't take my word
Anyone can write “it works”. This checks the code for real, right now, from a server, and shows exactly what it finds.
BUILDING SOMETHING SIMILAR?