{"id":21826916,"url":"https://github.com/kvishalrj/qeats_performance_testing","last_synced_at":"2025-03-21T12:21:48.238Z","repository":{"id":265021325,"uuid":"894882970","full_name":"kvishalrj/QEats_Performance_Testing","owner":"kvishalrj","description":"A food delivery application","archived":false,"fork":false,"pushed_at":"2024-11-27T07:17:47.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T08:26:33.362Z","etag":null,"topics":["jmeter","postman","signoz"],"latest_commit_sha":null,"homepage":"https://www.crio.do/learn/portfolio/vishal-kumar-criodo/ME_SDET_XPERF/","language":null,"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/kvishalrj.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-11-27T07:07:58.000Z","updated_at":"2024-11-27T17:43:15.000Z","dependencies_parsed_at":"2024-11-27T08:35:51.504Z","dependency_job_id":null,"html_url":"https://github.com/kvishalrj/QEats_Performance_Testing","commit_stats":null,"previous_names":["kvishalrj/qeats_performance_testing"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvishalrj%2FQEats_Performance_Testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvishalrj%2FQEats_Performance_Testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvishalrj%2FQEats_Performance_Testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kvishalrj%2FQEats_Performance_Testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kvishalrj","download_url":"https://codeload.github.com/kvishalrj/QEats_Performance_Testing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244795521,"owners_count":20511521,"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":["jmeter","postman","signoz"],"created_at":"2024-11-27T18:11:25.250Z","updated_at":"2025-03-21T12:21:48.211Z","avatar_url":"https://github.com/kvishalrj.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# QEats Performance Testing\n\n## Overview\n**QEats** is a food delivery application, and the purpose of this project is to monitor the performance of the application under high load and ensure it meets expected benchmark metrics.\n\n### Project Highlights:\n- Wrote and executed **JMeter** tests to validate the **happy flow** of the application under various load conditions.\n- Tested the application under different **load scenarios** to evaluate business metrics and application performance.\n- Used **SigNoz** for monitoring the host machine's metrics where the test-bed was set up, ensuring comprehensive visibility of the system’s health during tests.\n- Focused on performance validation for critical application functionalities, ensuring they could handle expected user traffic without degradation in performance.\n- Provided insights into system behavior under load, identifying areas for performance optimization.\n\n## Tools and Technologies Used:\n- **JMeter**\n- **SigNoz**\n- **Postman**\n\n## Project Structure:\nThe project is organized into the following modules:\n\n1. **JMeter Test Scripts**:\n   - Contains the test scripts that simulate various user activities and actions on the QEats application to test its performance under load.\n   - Includes tests for user login, placing orders, browsing menu items, and checking order statuses.\n\n2. **Performance Metrics**:\n   - In-depth performance metrics collected from **SigNoz** to track resource utilization and system health during the tests.\n   - Host machine metrics (CPU, memory, network) monitored throughout the test runs to provide a full picture of performance.\n\n3. **Test Execution Reports**:\n   - Contains the results of each test, providing detailed logs, performance graphs, and insights into how the application performed under various conditions.\n\n4. **Postman Collections**:\n   - A collection of **Postman** API tests used for validating backend API performance and response times, providing a comprehensive view of the application's behavior under load.\n\n## Features Implemented:\n- **Load Testing**:\n  - Simulated different load scenarios with varying numbers of concurrent users to measure response times, throughput, and system stability.\n- **Performance Monitoring**:\n  - Integrated with **SigNoz** to monitor system health and resource usage during the tests.\n- **Business Metrics Testing**:\n  - Validated critical business metrics like order placement time, browsing response time, and transaction processing under load.\n- **Test Results Reporting**:\n  - Detailed test execution reports, including **response times**, **throughput**, and **error rates** under various load conditions.\n- **Scalability Validation**:\n  - Ensured the system could scale under increasing traffic loads and meet expected service levels.\n\n## How to Run:\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/kvishalrj/QEats_Performance_Testing.git\n   ```\n2. Ensure **JMeter** and **SigNoz** are installed and configured.\n3. Import the JMeter test plan into **JMeter** for executing the load tests.\n4. Run the tests and observe performance metrics in **SigNoz**.\n\n### Running Tests:\n#### Using JMeter:\n- Open the JMeter test plan (`.jmx` file) in **JMeter**.\n- Configure the number of threads (virtual users) to simulate various load scenarios.\n- Run the tests and analyze the results in the **Summary Report** and **Graphs**.\n\n#### Monitoring Performance with SigNoz:\n- Access the **SigNoz** dashboard to monitor host machine metrics in real time while tests are running.\n- Review the metrics to identify potential bottlenecks and areas of improvement.\n\n## Reporting:\nAfter the test run, detailed reports are generated:\n- **Performance Graphs**: Found in the `reports/` directory, showing metrics like response times, throughput, and errors.\n- **Test Logs**: Detailed logs for each test, including timestamps and actions performed.\n- **System Metrics**: Collected data on CPU, memory, and network usage during test execution, available through **SigNoz**.\n\n## Future Scope:\n- Enhance test coverage to include stress and spike testing scenarios.\n- Integrate performance tests with CI/CD pipelines to continuously validate performance with every code change.\n- Optimize performance based on identified bottlenecks and resource consumption patterns.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkvishalrj%2Fqeats_performance_testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkvishalrj%2Fqeats_performance_testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkvishalrj%2Fqeats_performance_testing/lists"}