Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛒 JMeter Grocery Store API Performance Testing

📌 Project Overview

This project demonstrates end-to-end API Performance Testing using Apache JMeter on the Simple Grocery Store REST API.

The objective was to evaluate the application's performance under different user loads while comparing the effect of request pacing using Constant Timer.

The project follows an end-to-end API workflow including authentication, cart creation, item management, and order creation.


🚀 Project Objectives

  • Perform API Performance Testing using Apache JMeter
  • Simulate concurrent users
  • Compare performance with and without request pacing
  • Execute tests in Non-GUI mode
  • Generate professional HTML Dashboard Reports
  • Analyze response times, throughput, and error rates
  • Document findings and recommendations

🛠 Tech Stack

  • Apache JMeter 5.6.3
  • REST API
  • JSON
  • HTTP Header Manager
  • JSON Extractor
  • Constant Timer
  • HTML Dashboard Report
  • Git
  • GitHub

🌐 Application Under Test

Application

Simple Grocery Store REST API

API Documentation

https://github.com/vdespa/Postman-Complete-Guide-API-Testing/blob/main/simple-grocery-store-api.md


🔄 API Workflow

The following APIs were executed sequentially.

GET  API Status
        │
        ▼
GET  All Products
        │
        ▼
GET  Single Product
        │
        ▼
POST Create Cart
        │
        ▼
POST Add Item To Cart
        │
        ▼
GET  Get Cart
        │
        ▼
POST Register API Client
        │
        ▼
POST Create Order

🔗 Correlation

Dynamic values were captured using JSON Extractor.

Values extracted:

  • cartId
  • accessToken

These values were reused in subsequent API requests using JMeter Variables.


🔐 Header Management

HTTP Header Manager was used for

  • Content-Type : application/json
  • Authorization : Bearer Token

⏱ Constant Timer

Constant Timer was used to introduce request pacing.

Purpose:

  • Simulate realistic user behavior
  • Avoid unrealistic request bursts
  • Compare server performance with and without delays

📊 Test Scenarios

Scenario Users Constant Timer
Scenario 1 1000
Scenario 2 1000
Scenario 3 2000
Scenario 4 2000
Scenario 5 3000
Scenario 6 3000

📈 Performance Reports

Each scenario includes

  • HTML Dashboard
  • Aggregate Report
  • Summary Report
  • JTL Result File

Reports are available inside

HTML Reports/

📄 Project Report

A detailed company-style performance testing report is included.

Performance Report/

The report contains

  • Executive Summary
  • Test Strategy
  • Test Environment
  • API Workflow
  • JMeter Design
  • Scenario Analysis
  • Response Time Analysis
  • Throughput Analysis
  • Error Analysis
  • Recommendations
  • Final Conclusion

📷 Screenshots

Sample screenshots are available inside

Screenshots/

📂 Repository Structure

JMeter-Grocery-Store-API-Performance-Testing
│
├── HTML Reports
│
├── JMeter Test Plan
│
├── Performance Report
│
├── Results
│
├── Screenshots
│
└── README.md

💡 Key Learning

During this project I learned

  • API Performance Testing
  • Correlation using JSON Extractor
  • Authorization using Bearer Token
  • Header Management
  • Request Pacing
  • HTML Dashboard Analysis
  • Aggregate Report Interpretation
  • Throughput Analysis
  • Non-GUI Test Execution
  • Performance Report Preparation

👨‍💻 Author

Abhidept Singh

QA Engineer | Manual Testing | API Testing | Performance Testing | Selenium Automation

LinkedIn: (Add your LinkedIn URL)

GitHub: https://github.com/abhideptsingh

About

Performance testing of a RESTful Grocery Store API using Apache JMeter with load testing, correlation, authentication, HTML dashboards, and detailed performance analysis.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages