Loading repository data…
Loading repository data…
Sindhuja-janardhanan-QA / repository
Senior-level E2E & API automation framework using Playwright, TypeScript, and Page Object Model. Includes Azure DevOps CI/CD integration and AI-driven testing patterns.
Senior-level E2E & API automation framework using Playwright, TypeScript, and Page Object Model. Includes Azure DevOps CI/CD integration and enterprise-grade testing patterns.
├── src/
│ ├── pages/ # Page Object Model
│ │ └── BasePage.ts # Base page with wrapped Playwright actions
│ ├── api/ # API testing layer
│ │ └── UserClient.ts # API client with CRUD operations
│ ├── data/ # Test data management
│ │ └── users.json # Data-driven test scenarios
│ └── utils/ # Utility functions
├── tests/
│ └── e2e/ # Test files
│ ├── login.test.ts # Basic login tests
│ ├── data-driven-login.test.ts # Data-driven examples
│ └── api-ui-hybrid.test.ts # API-UI integration tests
├── playwright.config.ts # Playwright configuration
├── tsconfig.json # TypeScript configuration
├── azure-pipelines.yml # Azure DevOps CI/CD pipeline
└── package.json # Dependencies and scripts
# Clone the repository
git clone https://github.com/Sindhuja-janardhanan-QA/playwright-typescript-azure-framework.git
cd playwright-typescript-azure-framework
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install
# Run tests
npm test
# Run all tests
npm test
# Run tests with browser visible
npm run test:headed
# Run tests in debug mode
npm run test:debug
# View test report
npm run test:report
# Run ESLint
npm run lint
# Fix ESLint issues
npm run lint:fix
# TypeScript type checking
npm run type-check
This framework is pipeline-ready with comprehensive Azure DevOps integration. The azure-pipelines.yml provides:
Create Azure DevOps Project
# Connect your repository to Azure DevOps
# Repository → Build and Release → New Pipeline
# Select "Existing Azure Pipelines YAML file"
# Choose azure-pipelines.yml from your repository
Configure Pipeline Variables
# Default variables in azure-pipelines.yml:
NODE_VERSION: '20.x'
CI: 'true'
Enable Test Results
Monitor Pipeline
# Modify azure-pipelines.yml for your needs:
# - Change agent OS (windows-latest, macos-latest)
# - Add environment-specific configurations
# - Configure deployment stages
# - Add custom test reporting
# - Integrate with external tools
// Automatically generates tests for each user in JSON data
usersData.forEach((user, index) => {
test(`Login test for ${user.userType} user: ${user.description}`, async ({ page }) => {
// Test implementation with dynamic assertions
});
});
// Step 1: Create data via API
const createdPost = await apiClient.createPost(postData);
// Step 2: Verify in UI
await page.goto(`/posts/${createdPost.id}`);
await expect(page.locator('.post-title')).toHaveText(createdPost.title);
try {
await apiClient.getPost(invalidId);
} catch (error) {
expect(error).toBeInstanceOf(APIError);
expect(error.status).toBe(404);
}
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
This framework demonstrates enterprise-level SDET capabilities:
Perfect for SDET portfolio interviews and enterprise testing roles!