Multi-Framework Support
Works with Playwright, Puppeteer, Cypress, and Selenium WebDriver. Same API, same rules - integrates seamlessly with your existing test suite.
Security auditing for Playwright, Puppeteer, Cypress & Selenium WebDriver. Run 250+ vulnerability checks alongside your functional tests. Catch issues before attackers do.
import { SecurityAuditor } from 'qastell'; test('security audit', async ({ page }) => { await page.goto('https://your-app.com'); const auditor = new SecurityAuditor(page); await auditor.assertNoViolations(); // Your app is now fortified });
Defense is universal. Castle in English, Kastell in German, Castell in Welsh, Castel in Romanian – all from Latin castellum, the fortress that protects what matters.
QAstell brings that same principle to test automation: a fortress built into your CI/CD pipeline.
Everything you need to catch vulnerabilities in your web applications before they reach production.
Works with Playwright, Puppeteer, Cypress, and Selenium WebDriver. Same API, same rules - integrates seamlessly with your existing test suite.
Comprehensive coverage across XSS, CSRF, injection attacks, misconfigurations, and dozens more vulnerability types.
Industry-standard severity ratings with OWASP Top 10 and CWE references for every finding.
Export to HTML, JSON, JUnit XML for CI/CD, or SARIF for GitHub/GitLab code scanning. See live examples →
Scans complete in under a second. Run security checks on every commit without slowing down your CI/CD.
Include or exclude rule categories, set severity thresholds, skip specific rules. Full control over your scans.
From install to your first security scan in four simple steps.
npm install qastell
Add SecurityAuditor to your test
Run audit on any page
Review report and remediate
Copy, paste into your terminal, hit Enter. That's it.
npx -y create-playwright@latest qastell-demo --quiet && cd qastell-demo && npm i qastell && echo 'import{test}from"@playwright/test";import{SecurityAuditor}from"qastell";test("security",async({page})=>{await page.goto("https://example.com");const a=new SecurityAuditor(page);const r=await a.audit();console.log("Issues:",r.summary.total,"| Critical:",r.summary.bySeverity.critical,"| High:",r.summary.bySeverity.high);});' > tests/security.spec.ts && npx playwright test security --reporter=list
mkdir -p qastell-demo && cd qastell-demo && npm init -y && npm i qastell puppeteer && node -e 'const p=require("puppeteer"),{SecurityAuditor}=require("qastell");(async()=>{const b=await p.launch(),pg=await b.newPage();await pg.goto("https://example.com");const a=new SecurityAuditor(pg),r=await a.audit();console.log("Issues:",r.summary.total,"| Critical:",r.summary.bySeverity.critical,"| High:",r.summary.bySeverity.high);await b.close()})();'
mkdir -p qastell-demo/cypress/e2e && cd qastell-demo && npm init -y && npm i qastell cypress && echo 'const{defineConfig}=require("cypress");module.exports=defineConfig({e2e:{supportFile:false}})' > cypress.config.js && echo 'const{SecurityAuditor}=require("qastell");it("security",()=>{cy.visit("https://example.com");cy.window().then(async(win)=>{const a=new SecurityAuditor(win),r=await a.audit();cy.log("Issues: "+r.summary.total+" | Critical: "+r.summary.bySeverity.critical+" | High: "+r.summary.bySeverity.high)})})' > cypress/e2e/security.cy.js && npx cypress run --spec cypress/e2e/security.cy.js
mkdir -p qastell-demo && cd qastell-demo && npm init -y && npm i qastell selenium-webdriver && node -e 'const{Builder}=require("selenium-webdriver"),chrome=require("selenium-webdriver/chrome"),{SecurityAuditor}=require("qastell");(async()=>{const o=new chrome.Options();o.addArguments("--headless","--no-sandbox");const d=await new Builder().forBrowser("chrome").setChromeOptions(o).build();await d.get("https://example.com");const a=new SecurityAuditor(d),r=await a.audit();console.log("Issues:",r.summary.total,"| Critical:",r.summary.bySeverity.critical,"| High:",r.summary.bySeverity.high);await d.quit()})();'
Works on macOS, Linux, and Windows (with WSL). Requires Node.js 18+.
Playwright users: First-time setup may require sudo npx playwright install-deps for system dependencies.
WebDriver users: Requires Chrome browser installed. ChromeDriver is downloaded automatically.
Security tip: Always review commands before running them. These install packages from npm and execute code.
Start free, upgrade when you need more. No hidden fees. All prices include VAT.
Comprehensive coverage for modern web application vulnerabilities.
Start scanning for vulnerabilities in minutes. No credit card required for free tier.
Get Started Free