A production-grade, community-ready Cypress 13 test automation framework Fork it. Clone it. Ship quality code faster.
π www.skakarh.com Β |Β π’ QAPulse-by-SK Β |Β β Star this repo if it helped you!
| Branch | Description | Clone Command |
|---|---|---|
β
master β You are here |
TypeScript β core boilerplate | git clone https://github.com/QAPulse-by-SK/cypress-boilerplate.git |
π‘ javascript |
JavaScript β same features | git clone -b javascript https://github.com/QAPulse-by-SK/cypress-boilerplate.git |
π΅ with-packages |
JS + QAPulseSK packages | git clone -b with-packages https://github.com/QAPulse-by-SK/cypress-boilerplate.git |
β οΈ Branches are independent β never merged. See BRANCHES.md
Switch to the
with-packagesbranch to see all 3 QAPulseSK packages integrated with 48 passing tests against real-world sites including SuiteCRM.
| Package | What It Does |
|---|---|
qapulsesk-assert |
Fuzzy assertions, schema validation, cross-framework API |
qapulsesk-gen |
HAR β tests, recordings β tests, plain English β tests |
| Category | What's Included |
|---|---|
| ποΈ Architecture | Page Object Model Β· BasePage Β· 12 Custom Commands |
| π E2E Testing | Chrome Β· Firefox Β· Edge Β· Electron |
| π API Testing | ApiHelper class + cy.apiGet/Post/Put/Delete |
| πΈ Visual Regression | Screenshot baselines Β· full-page + element |
| βΏ Accessibility | cypress-axe Β· A11yHelper Β· WCAG 2.1 AA Β· keyboard Β· ARIA Β· labels Β· contrast |
| π§© Component Testing | Cypress CT with React support |
| π Reporting | Mochawesome + Allure + JSON + Custom Terminal Summary |
| π·οΈ Test Tags | cypress-grep Β· @smoke @regression @sanity @critical @e2e @api @visual @a11y |
| π CI/CD | GitHub Actions (multi-browser + Pages + PR comments) Β· Jenkins Β· Azure DevOps |
| π Auth | cy.session() β login once, reuse across all tests |
| π Network | cy.intercept() Β· API mocking Β· request spying |
| π‘οΈ Code Quality | ESLint Β· Prettier Β· TypeScript strict |
| πͺ΅ Logging | cy.logStep() + structured logger |
cypress-boilerplate/
βββ π .github/workflows/cypress.yml # Multi-browser CI + GitHub Pages
βββ π ci/
β βββ Jenkinsfile
β βββ azure-pipelines.yml
βββ π cypress/
β βββ e2e/
β β βββ auth/login.cy.ts
β β βββ home/home.cy.ts
β β βββ advanced/advanced.cy.ts # Intercepts, data-driven, alerts, drag-drop
β βββ api/posts.cy.ts
β βββ accessibility/home.a11y.cy.ts
β βββ visual/home.visual.cy.ts
β βββ component/NavBar.cy.ts
β βββ pages/
β β βββ BasePage.ts
β β βββ example/
β β βββ HomePage.ts
β β βββ LoginPage.ts
β βββ support/
β β βββ commands.ts # 12 custom commands
β β βββ e2e.ts
β β βββ component.ts
β β βββ index.d.ts # TypeScript declarations
β βββ helpers/
β β βββ a11yHelper.ts # 9 accessibility methods
β β βββ apiHelper.ts
β β βββ randomData.ts
β βββ constants/index.ts
β βββ types/index.ts
β βββ utils/logger.ts
β βββ fixtures/
β βββ users.json
β βββ posts.json
βββ π docs/
β βββ ARCHITECTURE.md
β βββ REPORTING.md
β βββ ACCESSIBILITY.md
β βββ CUSTOM-COMMANDS.md
βββ π reporters/
β βββ mergeMochawesome.js
β βββ jsonSummary.js
βββ cypress.config.ts
βββ tsconfig.json
βββ README.md
git clone https://github.com/QAPulse-by-SK/cypress-boilerplate.git
cd cypress-boilerplate
npm install
cp .env.example .env
npm testnpm run cy:open # Open Cypress UI
npm test # Run all (Chrome)
# By browser
npm run test:chrome
npm run test:firefox
npm run test:edge
# By type
npm run test:e2e
npm run test:api
npm run test:visual
npm run test:a11y
# By tag (cypress-grep)
npm run test:smoke
npm run test:regression
npm run test:critical
npm run test:headed # Watch in browsercy.loginAs("admin") // Session-based login
cy.loginWithCredentials("user", "pass") // Explicit credentials
cy.logout()
cy.apiGet("/posts") // API commands
cy.apiPost("/posts", { title: "Test" })
cy.apiPut("/posts/1", { title: "Updated" })
cy.apiDelete("/posts/1")
cy.checkA11yFull() // Full WCAG 2.1 AA scan
cy.checkA11yCritical() // Critical only
cy.interceptApi("GET", "**/posts", "posts") // Network mock
cy.waitForNetworkIdle()
cy.dataCy("my-element") // Selector helpers
cy.getByRole("button", { name: "Submit" })
cy.clearAllCookiesAndStorage()
cy.logStep("My step description")See docs/CUSTOM-COMMANDS.md for full reference.
npm run report:mochawesome # Beautiful HTML report
npm run report:allure # Allure dashboard
npm run report:json # Terminal summaryimport { A11yHelper } from "../helpers/a11yHelper";
A11yHelper.assertNoViolations()
A11yHelper.assertNoCriticalViolations()
A11yHelper.assertComponentAccessible("nav")
A11yHelper.assertImagesHaveAltText()
A11yHelper.assertFormLabels()
A11yHelper.assertSingleH1()
A11yHelper.assertAriaLandmarks()
A11yHelper.assertKeyboardNavigable()| Variable | Default | Description |
|---|---|---|
BASE_URL |
https://the-internet.herokuapp.com |
E2E target |
BRAND_URL |
https://www.skakarh.com |
Visual/a11y site |
API_BASE_URL |
https://jsonplaceholder.typicode.com |
API base |
TEST_USERNAME |
tomsmith |
Login username |
TEST_PASSWORD |
SuperSecretPassword! |
Login password |
- GitHub Actions β Multi-browser Β· GitHub Pages Β· PR comments
- Jenkins β
ci/Jenkinsfile - Azure DevOps β
ci/azure-pipelines.yml
See CONTRIBUTING.md Β· BRANCHES.md
MIT Β© QA Pulse by SK
Built with β€οΈ by QA Pulse by SK
π skakarh.com Β Β·Β π’ QAPulse-by-SK Β Β·Β β Star if it helped!
Created by QA Pulse by SK Β· skakarh.com