Workload Modeling for ERP Load Tests
The foundation of a meaningful ERP load test is an accurate workload model that represents real user behavior. Mining ERP audit logs, SQL Server trace data, and application server access logs reveals the actual transaction mix, think times, and concurrency patterns. A typical ERP workload model includes 60-70% inquiry transactions (screen lookups, reports), 20-30% data entry transactions (orders, receipts, adjustments), and 5-10% batch processing (MRP, posting, EDI).
Each transaction type must be scripted with realistic data--using the same item number or customer for every test iteration produces unrealistically favorable cache behavior.
- Analyze ERP audit logs and SQL Profiler traces to determine the actual transaction mix by module and operation type
- Model user think time (time between actions) realistically: 15-30 seconds for data entry, 5-10 seconds for inquiries
- Create test data pools with hundreds of unique items, customers, orders, and warehouses to prevent artificial cache warming
- Include batch process simulation (MRP, financial posting) running concurrently with interactive user transactions
- Define peak load scenarios based on actual business peaks: month-end close, seasonal order spikes, go-live concurrency
Test Execution with JMeter, k6, and Gatling
ERP load testing tools must handle stateful multi-step transactions with session management, CSRF tokens, and complex form submissions. Apache JMeter is the most widely used tool for ERP load testing due to its recording proxy, session handling, and extensive protocol support. k6 provides a developer-friendly JavaScript scripting approach with excellent metrics collection.
For ERP-specific testing, record user workflows through the ERP web interface, parameterize dynamic values (session IDs, CSRF tokens, item numbers), and validate response content to detect functional errors under load--not just HTTP 200 responses.
- Use JMeter Recording Controller or browser-based proxy to capture ERP transaction workflows for test script creation
- Parameterize session tokens, CSRF values, and business data using CSV data sets and JMeter variables for realistic test data
- Add response assertions that validate ERP business content (order created successfully, quantity updated) beyond HTTP status codes
- Configure JMeter thread groups to model ramp-up: add 10 users per minute until reaching peak load to identify the breaking point
- Use k6 cloud or Grafana Cloud k6 for distributed load generation when testing ERP systems from multiple geographic locations
Performance Analysis and Bottleneck Identification
Load test results must be analyzed across all system tiers simultaneously: ERP application server, database server, network, and storage. Correlate response time degradation with resource utilization metrics to identify which tier is the bottleneck. Common ERP load test findings include database lock contention on inventory tables at 50+ concurrent users, application server thread pool exhaustion at 100+ sessions, and storage I/O saturation during concurrent batch and interactive processing.
'
- Collect SQL Server wait statistics, Perfmon counters, and application server metrics during the entire load test execution window
- Graph response times per transaction type against concurrent user count to identify the inflection point where performance degrades
- Correlate response time spikes with SQL Server wait type changes to pinpoint database-tier bottlenecks under load
- Monitor application server thread pool utilization, garbage collection pauses, and connection pool wait times during peak load
- Generate a load test report documenting max sustainable concurrency, response time percentiles (p50, p95, p99), and bottleneck root causes
Try it here, free
Excel Manufacturing Production Planning and Tracking Worksheet
An editable production worksheet for small manufacturers. Enter planned and actual quantities per order and work center, and it calculates hours, yield and attainment, then exports to Excel.
Planning an ERP load test? Netray designs and executes realistic load tests that find performance problems before your users do--schedule a test planning session.