A production-grade API automation framework built using Rest Assured, TestNG, and Allure, with OAuth 2.0 authentication, parallel-safe tests, and CI/CD integration using GitHub Actions.
The latest test execution report is automatically published to GitHub Pages.
Latest Allure Report (GitHub Pages)
https://nitishjha72.github.io/Spotify-RestAssured-API-Testing-Framework/
The report always reflects the most recent CI run.
- Java 21
- Rest Assured
- TestNG
- Allure
- Maven
- GitHub Actions
- OAuth 2.0 (Spotify API)
The framework follows a layered, scalable architecture:

- No
BaseTestinheritance - Stateless API layer
- Thread-safe token management
- Reusable request specifications
- Environment-driven configuration
- CI-friendly and parallel-safe
- Uses OAuth 2.0 (Authorization Code + Refresh Token)
- Access tokens are:
- Fetched dynamically
- Cached with expiry handling
- Reused safely across parallel tests
- Sensitive data is never committed to the repository
SPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETSPOTIFY_REFRESH_TOKEN
Supported environments:
devqa(default)
mvn clean test- Dynamic test data generation
- No shared mutable state
- Independent resource lifecycle per test
- Safe for parallel CI execution
- Allure reports are generated after every test run
- Environment metadata is injected into the report
- Reports are:
- Uploaded as CI artifacts
- Published to GitHub Pages
- Only the latest report is published
allure open allure-reportImplemented using GitHub Actions.
- Push to main
- Pull requests
- Manual execution with environment selection
- Scheduled execution (every 7 days)
- Run API tests
- Generate Allure report
- Publish report to GitHub Pages
- Expose report link in workflow summary
- Authorization headers are masked in logs
- Sensitive form parameters are not logged
- No secrets appear in logs, reports, or the repository
- Create playlist
- Get playlist
- Update playlist
- Validation error scenarios
- Authentication failure scenarios
- Allure reports must be served over HTTP
- Opening
index.htmldirectly will not work due to browser security restrictions - GitHub Pages provides a stable public URL for report access
Nitish Jha
Senior SDET