This template repository helps you automate testing of web applications using Serenity/JS, Jasmine, and WebdriverIO, and comes pre-configured with TypeScript, linting, reporting, and example test scenarios.
Use this template to accelerate your test automation setup and generate Serenity/JS HTML reports with trend history, flaky test detection, and an interactive dashboard.
View live reports generated by this template:
- Pre-configured Serenity/JS + Jasmine + WebdriverIO + TypeScript setup
- Example test scenarios demonstrating web application testing
- Screenplay Pattern implementation showcasing reusable tasks and interactions
- Integrated reporting with Serenity/JS HTML Reporter — self-contained reports with trends, flaky test detection, and an interactive dashboard
- ESLint configuration for code quality and consistency
- CI-ready scripts and development environment support
- Ready-to-use GitHub Codespaces environment using the official Serenity/JS Docker image
Launch this project in an online development environment:
Follow the Serenity/JS installation guide to set up your development environment with the following prerequisites:
- Node.js (LTS version recommended)
Create a new GitHub repository from this template and clone it to your machine:
git clone <your-repo-url>
cd <your-project>Install the project dependencies:
npm ciIf your environment requires proxy configuration or an internal registry like Artifactory or Nexus, add an .npmrc file
with the appropriate configuration in your home directory:
proxy=http://user:password@host.mycompany.com:8080/
https-proxy=http://user:password@host.mycompany.com:8080/
strict-ssl=false
registry=https://artifactory.mycompany.com/artifactory/
Run the example tests:
npm test
The HTML report is generated automatically during the test run at ./reports/serenity-js/index.html.
To serve the report locally and open it in your browser:
npm run test:report
The project provides several NPM scripts defined in package.json:
npm run lint # runs code linter
npm run lint:fix # attempts to automatically fix linting issues
npm test # executes the example test suite
# and generates the report under ./reports/serenity-js
npm run test:report # serves the test report at http://localhost:8080
# and opens it in the browser
# Run all tests
npm test
# Run specific test file
npm test -- --spec test/specs/serenity-js_website.spec.ts
# Run in headed mode (disable headless)
# Update wdio.conf.ts to set headless: false in browser capabilitiesThe template follows a clear structure to help you organize your tests:
test/
├── serenity/
│ ├── github-api/ # Example GitHub API-related tasks
│ └── todo-list-app/ # Example todo list app-related tasks
└── specs/
└── serenity-js_website.spec.ts # Jasmine test specifications
wdio.conf.ts # WebdriverIO configuration
reports/serenity-js/ # Generated Serenity/JS HTML reports
Key files:
test/specs/*.spec.ts- Jasmine test specificationstest/serenity/- Tasks, questions, and page objects following the Screenplay Pattern
- Update
baseUrlinwdio.conf.tsto point to your application - Add your test specs to
test/specs/following the examples - Learn how to write Serenity/JS test scenarios in the First Web Scenario tutorial
- Review the CI configuration and adapt it for your CI provider
If the report server fails to start because port 8080 is in use, you can specify a different port:
npx @serenity-js/html-reporter serve --dir ./reports/serenity-js --port 3000 --open- Using Serenity/JS with Jasmine
- Using Serenity/JS with WebdriverIO
- Serenity/JS HTML Reporter
- API Reference
- Screenplay Pattern Guide
- Serenity/JS Project Templates
- More examples and reference implementations
- Tutorial: First Web Scenario
Contributions of all kinds are welcome! Get started with the Contributing Guide.
Join a thriving community of developers using Serenity/JS to deliver high-quality software!
- 📰 Get the latest updates on LinkedIn - Product announcements, tutorials, and best practices
- 📺 Watch tutorials on YouTube - Video guides and conference talks
- 💬 Join the Community Chat - Real-time help and discussions
- 💡 Browse the Discussions Forum - Q&A and feature discussions
- Check out How to...? for answers to common questions
Love Serenity/JS? Help others discover the framework:
⭐ Star the Serenity/JS repository on GitHub
Starring the repository helps increase visibility and shows your support for the project!
The Serenity/JS code base is licensed under the Apache-2.0 license, while its documentation and the Serenity/JS Handbook are licensed under the Creative Commons BY-NC-SA 4.0 International.
See the Serenity/JS License.
Support the ongoing development of Serenity/JS and the open-source community:
Sponsor benefits:
- 🎓 Access to Serenity/JS Playbooks - Advanced patterns and best practices
- 🏆 Priority support in the Community Discussions Forum
- 💚 Support open-source development and help keep Serenity/JS free for everyone
Need dedicated support, training, or consulting for your team?
Contact Jan Molak for:
- 🎯 Consulting & Training - Custom workshops and team training sessions
- 🤝 Corporate Support - Dedicated technical support and SLA-backed assistance
- 🏗️ Architecture Reviews - Expert guidance on test automation strategy and implementation
- 📊 Corporate Sponsorship - Tailored partnership opportunities for organizations
