A lightweight, Redis-powered Test Data Service for Performance & Automation Testing
Managing test data in distributed performance tests is painful:
- ❌ CSV files don’t scale
- ❌ Data duplication across threads
- ❌ No central coordination
- ❌ VTS limitations
TestDataService solves this.
- 📤 Upload CSV datasets
- 📊 View & manage data via UI
- 🔁 Share data across threads & nodes
- 🎯 Fetch unique records using POP (queue behavior)
- 🧹 Clear / Drop / Export datasets
JMeter / API Clients
↓
TestDataService API
↓
Redis
| Concept | Meaning |
|---|---|
| Instance | Logical grouping (like VTS port) |
| Table | Dataset |
| Row | JSON record |
| POP | Fetch + remove (queue) |
- Upload CSV → auto-converted & mapped to JSON in backend
- Append / Overwrite datasets
- Export data back to CSV
- Instance & table selection
- Grid view (like VTS)
- Sticky headers
- Record count
- GET by index
- POP (queue-based unique data)
- POST (append data to table)
- Clear table (keep structure)
- Drop table (delete completely)
GET /tds/getByIndex?instance=demo&table=users&index=0
GET /tds/pop?instance=demo&table=users
POST /tds/push?instance=demo&table=users
POST /tds/upload
-
Add HTTP Sampler: GET /tds/pop?instance=demo&table=users
-
Add JSON Extractor: id → $.id
email → $.email
👉 Each thread gets unique data
- Java (Spring Boot)
- Redis
- HTML + JS (lightweight UI)
- POP is destructive (data is removed)
- Ensure proper dataset size for load tests
- Redis must be running
redis-server
mvn spring-boot:run
- Pagination / virtual scrolling
- Authentication
- Multi-user support
- Redis clustering
- JMeter plugin
PRs welcome. Keep it simple, clean, and scalable.
This started as a VTS replacement…
👉 It’s now a Test Data Platform