{"id":22589100,"url":"https://github.com/rajatt95/testautomationframework_yt_rajat_api_playwright_js","last_synced_at":"2025-04-10T21:45:38.556Z","repository":{"id":220718392,"uuid":"752325419","full_name":"rajatt95/TestAutomationFramework_YT_Rajat_API_Playwright_JS","owner":"rajatt95","description":"This project is a Test Automation Framework built using Playwright and Javascript for automated testing of REST APIs.","archived":false,"fork":false,"pushed_at":"2024-02-28T02:13:41.000Z","size":32,"stargazers_count":6,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T21:45:25.635Z","etag":null,"topics":["crud-operations","custom-utilities","github-actions","javascript","nodejs","playwright","playwright-html-report","rest-api","test-automation","vscode"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/@rajatt95","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatt95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-03T16:30:25.000Z","updated_at":"2024-10-11T18:46:31.000Z","dependencies_parsed_at":"2024-12-08T08:12:22.343Z","dependency_job_id":"2d09d3df-b165-48bb-bf99-504a3c6c4b07","html_url":"https://github.com/rajatt95/TestAutomationFramework_YT_Rajat_API_Playwright_JS","commit_stats":null,"previous_names":["rajatt95/testautomationframework_yt_rajat_api_playwright_js"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_API_Playwright_JS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_API_Playwright_JS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_API_Playwright_JS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_API_Playwright_JS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatt95","download_url":"https://codeload.github.com/rajatt95/TestAutomationFramework_YT_Rajat_API_Playwright_JS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248305879,"owners_count":21081562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud-operations","custom-utilities","github-actions","javascript","nodejs","playwright","playwright-html-report","rest-api","test-automation","vscode"],"created_at":"2024-12-08T08:12:16.532Z","updated_at":"2025-04-10T21:45:38.532Z","avatar_url":"https://github.com/rajatt95.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n    #/**\n    # * @author Rajat Verma\n    # * Email: rajatvermaa95@gmail.com\n    # * GitHub Profile: https://github.com/rajatt95\n    # * GitHub Page: https://rajatt95.github.io/\n    # * LinkedIn: https://www.linkedin.com/in/rajatt95/\n    # * Topmate: https://topmate.io/rajatt95\n    # * Telegram: https://t.me/rajatt95\n    # * Instagram: https://www.instagram.com/rajattvermaa95/\n    # * YouTube: https://www.youtube.com/@rajatt95\n    # * WhatsApp Community: https://chat.whatsapp.com/DVRP0ViD0YwELUKF2XMJHy\n    # * WhatsApp Channel: https://whatsapp.com/channel/0029Va9XXMhJ93waOU5Xer3r\n    # */\n    #/***************************************************/\n--\u003e\n---\n# 💻 Test Automation Framework | API \n\n[![Playwright](https://img.shields.io/badge/Playwright-34495E?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://playwright.dev/)\n[![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)](https://js.org/index.html) \n\n[![VS Code](https://img.shields.io/badge/VS_Code-007ACC?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)](https://code.visualstudio.com/)\n[![Playwright HTML Reporter](https://img.shields.io/badge/Playwright%20HTML%20Reporter-\u003cCOLOR\u003e?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://www.npmjs.com/package/playwright-html-reporter)\n[![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge\u0026logo=github-actions\u0026logoColor=white)](https://github.com/features/actions) \n\n## 📑 Table of Contents\n\u003c!-- # - [Video Tutorial](#video-tutorial) --\u003e\n- [Introduction](#introduction)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Running Tests](#running-tests)\n- [Project Structure](#project-structure)\n- [Configuration](#configuration)\n- [Continuous Integration](#continuous-integration)\n- [Reporting](#reporting)\n- [Other Projects](#other-projects)\n- [Technical Documents](#technical-documents)\n- [Contacts](#contacts)\n\n## 📖 Introduction\nThis repository contains a Test Automation Framework built using Playwright and Javascript for automated testing of REST APIs.\n\n\u003c!-- ## 🎥 Video Tutorial\n\n\u003ca href=\"https://www.youtube.com/watch?v=g0nG6aPbpl4\u0026list=PLrBBHmoBFxBUu9G7haETpa0B03H9GnfKX\"\u003e \u003cimg src=\"https://img.youtube.com/vi/g0nG6aPbpl4/0.jpg\" alt=\"Test Automation Framework | WEB | Cypress + JS\" width=\"200\"\u003e \u003c/a\u003e\n\nClick on the image above to watch the tutorials. --\u003e\n\n## 🛠️ Prerequisites\n\n- [![Node.js](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org/) (v18.16.1 or higher recommended)\n- [![npm](https://img.shields.io/badge/npm-CB3837?style=for-the-badge\u0026logo=npm\u0026logoColor=white)](https://www.npmjs.com/) (v9.5.1 or higher recommended)\n\n## ▶️ Getting Started\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/rajatt95/TestAutomationFramework_YT_Rajat_API_Playwright_JS.git\n   ```\n\n2. Navigate to the project directory:\n\n   ```bash\n   cd TestAutomationFramework_YT_Rajat_API_Playwright_JS\n   ```\n\n3. Install dependencies:\n\n   ```bash\n   npm install\n   ```\n\n## 🚀 Running Tests\n\n  ```bash\n  npm run playwright:tests\n  ```\n\n## 📁 Project Structure\n\nThe tests follow a modular and maintainable structure:\n\n```\n|-- .github\n|     |-- workflows\n|          |-- 01_api_tests.yml\n|          |-- 02_api_tests_select_env.yml\n|-- test-data\n|     |-- login\n|          |-- login-successful.json\n|          |-- login-unsuccessful.json\n|     |-- register\n|          |-- register-successful.json\n|          |-- register-unsuccessful.json\n|     |-- users\n|          |-- user_create.json\n|          |-- user_update_patch.json\n|          |-- user_update_put.json\n|-- tests-reqres\n|     |-- login.spec.js\n|     |-- register.spec.js\n|     |-- users.spec.js\n|-- utils\n|     |-- EndpointUtils.js\n|     |-- RequestBodyUtils.js\n|     |-- RequestUtils.js\n|     |-- ResponseUtils.js\n|     |-- VerificationUtils.js\n|-- .gitignore\n|-- package.json\n|-- playwright.config.js\n```\n\n- `playwright-report`: Contains the HTML report for tests (Logs are attached).\n- `test-data`: Contains external files (example: user create/update data) that can be used to mock data during tests.\n- `tests-reqres`: Contains the actual test files. You can organize your tests into subdirectories as needed. \n- `utils`: Contains the Utilities that provides methods for asserting different conditions on web elements, handling requests and responses.\n\n## ⚙️ Configuration\n\n- Modify `playwright.config.js` for playwright configuration settings such as\n  - `baseURL`\n  - `testDir`\n  - `reporter`\n\n## 🔄 Continuous Integration\n\nThis project is configured for CI using Github Actions. Check the configurations in `.github/workflows/*.yml`.\n\n- `01_api_tests.yml`: This workflow executes tests in pre-defined environment PROD.\n- `02_api_tests_select_env.yml`: This workflow will first ask User to select the environment (DEV / Pre-PROD / PROD) for tests execution.\n\n## 📊 Reporting\n\nPlaywright HTML report (Logs are attached) is stored in the `playwright-report` directory.\n\n## 🔭 Other Projects\n\n- [![Java](https://img.shields.io/badge/Java-007396?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/programming-language-java)  - \n  [![Selenium](https://img.shields.io/badge/Selenium-43B02A?style=for-the-badge\u0026logo=selenium\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/selenium-automation-frameworks)\n  [![Appium](https://img.shields.io/badge/Appium-40C4FF?style=for-the-badge\u0026logo=appium\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/appium-automation-frameworks)\n  [![Rest Assured](https://img.shields.io/badge/Rest%20Assured-5B47A5?style=for-the-badge\u0026logo=rest-assured\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/restassured-automation-framework)\n\n- [![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)](https://github.com/stars/rajatt95/lists/programming-language-javascript) - \n[![Cypress](https://img.shields.io/badge/Cypress-17202C?style=for-the-badge\u0026logo=cypress\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/cypress-automation-frameworks)\n[![Playwright](https://img.shields.io/badge/Playwright-34495E?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/playwright-automation-frameworks)\n\n- [![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/programming-language-python) -\n  [![Requests](https://img.shields.io/badge/Requests-2CA5E0?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/requests-automation-framework)\n\n## 📄 Technical Documents\n\n- [![Google Drive](https://img.shields.io/badge/Google%20Drive-4285F4?style=for-the-badge\u0026logo=google-drive\u0026logoColor=white)](https://drive.google.com/drive/folders/1tne9pZjgWvfrS0l9tVHs6k1jnQHpTLoA?usp=sharing)\n- [![GitHub Repository](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/rajatt95/Documents)\n\n## 📧 Contacts\n\n- [![Email](https://img.shields.io/badge/Email-rajatvermaa95%40gmail.com-green)](mailto:rajatvermaa95@gmail.com)\n- [![GitHub Profile](https://img.shields.io/badge/GitHub-Profile-blue)](https://github.com/rajatt95)\n- [![GitHub Page](https://img.shields.io/badge/GitHub-Page-lightgrey)](https://rajatt95.github.io/)\n- [![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue)](https://www.linkedin.com/in/rajatt95)\n- [![Topmate](https://img.shields.io/badge/Topmate-Profile-red)](https://topmate.io/rajatt95)\n- [![Telegram](https://img.shields.io/badge/Telegram-Channel-blue)](https://t.me/rajatt95)\n- [![Instagram](https://img.shields.io/badge/Instagram-Profile-orange)](https://www.instagram.com/rajattvermaa95/)\n- [![YouTube](https://img.shields.io/badge/YouTube-Channel-red)](https://www.youtube.com/@rajatt95)\n- [![WhatsApp Community](https://img.shields.io/badge/WhatsApp-Community-brightgreen)](https://chat.whatsapp.com/LP20xMGvxnEL88GoB58bo1)\n- [![WhatsApp Channel](https://img.shields.io/badge/WhatsApp-Channel-brightgreen)](https://whatsapp.com/channel/0029Va9XXMhJ93waOU5Xer3r)\n\nFeel free to reach out if you have any questions, or suggestions, or just want to chat!\n\nThanks for visiting my GitHub profile! 😊\n\n\u003cp align=\"left\"\u003e \u003cimg src=\"https://komarev.com/ghpvc/?username=rajatt95\u0026label=Profile%20views\u0026color=0e75b6\u0026style=flat\" alt=\"rajatt95\" /\u003e \u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_api_playwright_js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_api_playwright_js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_api_playwright_js/lists"}