This project is a test automation framework for the NinjaRMM application, built using Playwright and TypeScript. It follows modern testing practices and implements the Page Object Model (POM) design pattern.
- Framework: Playwright with TypeScript
- Design Pattern: Page Object Model (POM)
- Test Reports: Allure Reporting
- Code Quality: ESLint & Prettier
- Browser Support: Chrome, Firefox, WebKit
- CI/CD: GitHub Actions Integration
- Environment Management: Dotenv
- Test Data Management: POJO Structure
├── tests/ # Test scenarios
├── page-objects/ # Page Object Model classes
├── fixtures/ # Test fixtures
├── env/ # Environment configurations
├── pojos/ # Plain Old JavaScript Objects
├── allure-results/ # Allure test results
├── allure-report/ # Generated Allure reports
└── test-results/ # Test execution results
- Node.js >= 18.0.0
- npm or yarn
- Git
- Clone the repository:
git clone [repository-url]
- Install dependencies:
npm install
- Create a
.env
file in the root directory with the following variables:
TEST_USER_EMAIL=your_email
TEST_USER_PASSWORD=your_password
BASE_URL=your_base_url
npm test
npm run execute:chrome # Run tests in Chrome
npm run execute:firefox # Run tests in Firefox
npm run execute:webkit # Run tests in WebKit
npm run execute:mobile # Run tests in Mobile Chrome
npm run report # Open Allure report
npm run test:report # Run tests and generate report
After test execution, you can find:
- Allure reports in the
allure-report/
directory - Test results in the
test-results/
directory - Playwright reports in the
playwright-report/
directory
Currently implemented test scenarios:
- Login functionality tests
- Password reset functionality tests
- Form validation tests
- Security tests (SQL injection, XSS)
The project uses:
- ESLint for code linting
- Prettier for code formatting
- TypeScript for type safety
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the ISC License.
- Software QA Engineer Ugur Yaman
- Add API test scenarios
- Implement performance testing
- Add more comprehensive documentation
- Create test data management system
- Add utility functions library
- Implement cross-browser testing
- Add visual regression testing
- Implement parallel test execution optimization # ninjaOne_UgurYaman