This project focuses on load testing, validating REST API endpoints and endurance testing of the Platzi Fake Store API, simulating typical user actions such as creating, updating, deleting, and retrieving product details . The goal was to evaluate performance under stress and ensure correct functionality using Apache JMeter. Currently planning to write a blog about what I learned and how to do it.
- Apache JMeter (v5.6+)
- JMeter Plugins (Graphs Generator Listener, Assertions, Timers)
- Postman (for initial testing)
- JSON REST API
- GitHub (for source and documentation)
-
Purpose: Simulate adding new products to the catalog.
-
Assertions:
- Response Code = 201
- Response Data contains expected
title,price,description - Duration Assertion < 2000ms
-
Purpose: Test updating an existing product using a dynamic product ID.
-
Dynamic ID: Captured using
JSON Extractorafter product creation. -
Assertions:
- Response Code = 200
- Updated values reflected in response
-
Purpose: Simulate deletion of a product and confirm status.
-
Assertions:
- Response Code = 200 or 204
-
Purpose: Simulate users browsing products.
-
Assertions:
- Response Code = 200
- Response contains product list or valid details
-
Purpose: Simulating multiple get request for product using parametrized id through csv file.
-
Dynamic ID: Captured from csv file
products_id.csv. -
Assertions:
- Response Code = 200
- Response contains product list or valid details
-
- Outcome: Status code 400 for id of products not in the API.
- Tested for: Valid credentials
- Outcome: Identified API issues (401 Unauthorized)
-
Purpose: Simulate multiple users viewing products and categories under load.
-
Assertions:
- Response Code = 200
- Response contains product list or valid details
-
Purpose: Simulate sudden spike of user requests to viewing products.
-
Assertions:
- Response Code = 200
- Response contains product list or valid details
- Response Time (ms)
- Latency
- Throughput
- Error %
- Assertion Pass/Fail Rate
- Explanation document added in the project folder itself(Process_explanation.docx)
- Summary Report
- Graph Results
- Duration Assertions
- View Results Tree (with sample responses and debug info)
- 401 Unauthorized issue was debugged using Postman.
- Dynamic value handling via JSON Extractor
- Timeout/Response null handling using Assertions
- Parameterization using CSV and Variables planned
-
Clone the repo
-
Open
FakeStoreLoadTest.jmxin Apache JMeter -
Run using GUI or CLI:
jmeter -n -t FakeStoreLoadTest.jmx -l result.jtl -e -o ./report
-
Open
./report/index.htmlto view HTML report
- CI/CD integration using Jenkins
- Integration with Grafana + InfluxDB for real-time monitoring
- Dockerized JMeter execution
Error in this case specifically occurred because thread group was initialized at threads:5 and ramp-up-period = 5 with duration loop of 2. The csv values in product id is given from 1,2,3... and so on. Only valid product in the api was with id no. 5.



