Hi everyone,
I’m currently exploring performance and load testing in Frappe/ERPNext, and I’d appreciate some guidance or best practices from the community.
Goal:
I want to test how Frappe behaves with very large datasets, such as:
5,000,000+ Sales Orders (each with 10–100 items)
Invoices generated against each Sales Order
1,000,000+ Customers and Items
Using different Cost Centers, Warehouses, and Tax Templates
With multiple user sessions and background workers
What I’m Doing:
Generating test data using custom scripts
Using frappe.enqueue / background jobs for concurrent processing
Running on a production-like setup (bench in production mode)
Planning to simulate multi-user behavior
My Questions:
What’s the recommended way to do performance/load testing in Frappe?
Are there tools or frameworks the community uses?
Is there a preferred method to simulate thousands of concurrent Sales Order insertions and subsequent Invoice creation?
Should I rely on background jobs, or spawn threads/multiprocessing workers?
How can I measure bottlenecks within Frappe (DB, Redis, Worker queue, etc.)?
Any suggestions on tools to monitor system health during the test?
Any database-level optimizations or Frappe config changes that help during high-volume load testing?
Would love to hear from anyone who’s tested with this scale before - any tips?