Perfect — here’s a complete 1000-word blog about JMeter testing for DICOM file upload by 50 users, including details on handling the mandatory field before upload, test setup, configuration, assertions, and performance insights.
It’s written in a professional, SEO-ready style — ideal for testing summary tools, readability plugins, or QA blog publishing.
Performance Testing DICOM File Uploads Using Apache JMeter for 50 Concurrent Users
In healthcare applications, smooth and secure handling of DICOM (Digital Imaging and Communications in Medicine) files is crucial. These files store medical imaging data such as X-rays, MRIs, and CT scans — and they’re often large in size. Ensuring that a web application can handle multiple simultaneous uploads without lag or failure is vital for reliability and user trust.
This blog explains how to use Apache JMeter to simulate 50 concurrent users uploading DICOM files, while ensuring a mandatory form field is filled before each upload. You’ll learn how to design, execute, and analyze such a performance test step by step.
1. Why DICOM File Upload Testing Matters
Healthcare platforms frequently process large volumes of imaging data uploaded by doctors, radiologists, or hospital administrators. A failure during these uploads can delay diagnoses and disrupt workflows.
Performance testing ensures that:
- Uploads complete successfully under peak load.
- Mandatory form validations function correctly.
- The server maintains consistent response times even under stress.
- No data corruption or timeout occurs during parallel uploads.
By using Apache JMeter, QA engineers can simulate realistic load conditions and measure server behavior accurately before production release.
2. Understanding the Test Scenario
Here’s the testing scenario you’ll focus on:
- Application Type: Healthcare web portal
- Feature Under Test: DICOM file upload module
- Users: 50 concurrent users
- Action: Each user fills a mandatory field (e.g., “Patient ID” or “Case Reference”) before uploading one DICOM file
- Goal: Verify system stability, response time, and upload success rate under concurrent requests
This scenario mirrors real-world use cases where multiple healthcare professionals upload patient imaging data simultaneously.
3. Test Prerequisites
Before designing the test, make sure you have:
- Apache JMeter Installed – Use version 5.5 or later.
- DICOM Files Ready – Collect multiple test DICOM files of varied sizes (e.g., 2 MB to 20 MB) to simulate realistic uploads.
- API Endpoint or Upload URL – The web application endpoint handling file uploads, usually a REST or multipart POST request.
- User Credentials (if login is required) – Use a CSV Data Set Config in JMeter for parameterized login credentials.
- Mandatory Field Information – Know the exact name or key of the field required before upload (for example:
patientId).
4. Designing the Test Plan in JMeter
Let’s break down the steps to configure the test.
Step 1: Create a Test Plan
Open JMeter and create a new Test Plan named:
“DICOM File Upload Load Test – 50 Users”
Add a meaningful description for future reference.
Step 2: Add a Thread Group
Inside the Test Plan, add a Thread Group to simulate users:
- Number of Threads (Users): 50
- Ramp-up Period: 30 seconds (gradual load)
- Loop Count: 1 (one upload per user)
This configuration ensures 50 concurrent upload actions within a 30-second interval.
Step 3: Add HTTP Request Defaults
To avoid repeating URLs in every request:
- Right-click the Thread Group → Add → Config Element → HTTP Request Defaults
- Enter the server name or IP (e.g.,
healthcare-portal.com) - Set the path to your upload endpoint, such as
/api/upload/dicom
Step 4: Handle Mandatory Field Input
Before the upload step, add an HTTP Request Sampler for the form submission step (if the system requires form validation before upload).
For example:
- Method: POST
- Path:
/api/form/validate - Parameters:
patientId→ Use CSV Data Set Config to provide 50 unique IDs.
This ensures each virtual user fills the required field before uploading.
💡 Tip: You can use a Regular Expression Extractor to capture any token or ID returned from the form submission (e.g.,
formToken) and reuse it in the upload request.
Step 5: Add File Upload Request
Next, add another HTTP Request Sampler named:
“Upload DICOM File”
Set the parameters as follows:
- Method: POST
- Path:
/api/upload/dicom - Body Data: Use the Files Upload section.
- Add a file reference such as:
- File Path:
${__P(file1)}(parameterized for flexibility) - Parameter Name:
dicomFile - MIME Type:
application/dicom
- File Path:
If your system requires the mandatory field data again during upload, include it as a form-data parameter along with the file.
Step 6: Configure CSV Data for Dynamic Inputs
Use CSV Data Set Config to provide user-specific inputs like:
patientIdfilePathusername/password(if applicable)
Example CSV structure:
patientId,filePath,username,password
P1001,/data/DICOM1.dcm,user1,pass1
P1002,/data/DICOM2.dcm,user2,pass2
...
This ensures each simulated user has unique, realistic data.
Step 7: Add Listeners for Analysis
To monitor performance, add:
- View Results in Table – to view response codes and latency.
- Aggregate Report – to check average response time, throughput, and error percentage.
- Summary Report – for overall performance insights.
- View Results Tree (optional) – for debugging during the initial test.
Step 8: Add Assertions
Assertions validate correctness:
- Response Assertion: Ensure the upload response includes
"success": trueor status code 200. - Duration Assertion: Ensure upload completes within acceptable time (e.g., under 10 seconds).
Step 9: Add Timers and Think Time
Simulate real user behavior using a Gaussian Random Timer or Constant Timer (e.g., 2–5 seconds delay between form fill and file upload). This prevents all 50 users from uploading simultaneously and mimics real-world pacing.
5. Executing the Test
After setting up, save and run the test plan.
During execution:
- Monitor CPU, memory, and network utilization on the server.
- Use JMeter Dashboard Report for detailed performance graphs.
- Observe any failures, timeout errors, or throughput drops.
Example goal:
The system should handle 50 concurrent uploads with <5% error rate and average response time < 8 seconds.
6. Analyzing Results
After execution, analyze:
- Throughput: Should remain steady as load increases.
- Response Time: Spikes indicate potential bottlenecks.
- Error %: Should remain below threshold (<2–5%).
- Server Logs: Check for exceptions, upload timeouts, or validation failures.
If response time exceeds expected limits:
- Optimize file handling APIs.
- Enable caching or asynchronous upload queues.
- Increase backend thread pools or storage I/O bandwidth.
7. Best Practices for DICOM Upload Testing
- Use Smaller Ramp-Up: Prevents sudden overload at test start.
- Separate Login and Upload Scenarios: Use reusable tokens to reduce setup time.
- Use Distributed Testing: For large-scale tests, use multiple JMeter slaves.
- Test with Realistic File Sizes: Simulate actual DICOM file sizes from the field.
- Secure Sensitive Data: Mask credentials or patient identifiers in logs.
- Use Command-Line Mode (Non-GUI): For efficient load execution.
8. Key Takeaways
- JMeter is ideal for simulating concurrent DICOM file uploads in healthcare systems.
- The mandatory field validation step should always precede the upload to ensure data integrity.
- Proper parameterization and assertions ensure both performance and functional accuracy.
- Performance reports and dashboards give visibility into system limits and stability under real-world conditions.
By following this approach, QA teams can confidently verify that the healthcare application will perform reliably even when dozens of professionals upload patient imaging data simultaneously — ensuring uninterrupted, safe, and efficient workflows.