Return to
PerformanceTestingGuidance
Mark's suggested steps
* Step 1: Test Planning and Objectives
* Step 2: Create Test Scripts
* Step 3: Create
LoadTest (Workload or Scenario)
* Step 4: Identify Metric/measurements
* Step 5: Test Execution
* Step 6: Analyze Results & Retest
Mark's Load Testing Steps + Details
* Step 1. Identify Objectives
* Step 2. Create test scripts
* Step 3. Create load test
* Step 4. Execute the test
* Step 5. Analyze the results.
* Step 6. Report results
* Step 7. Evaluate the need for more testing
Step 1. Identify Objectives
* Write a simple performance objective for the component: “The component should process 100 requests/sec with
* sub-second response time without exceeding a maximum CPU utilization of 75%.”
Step 2. Create test scripts
* Create a short test script to create requests against the component – “The web test scenario is to submit random data to 3 data fields on the .NET web service.”
* 1. make sure the parameter data is random and/or unique to avoid any server-side caching
* 2. set the test script to execute multiple iterations without end, so you can run Workloads of various durations (e.g. more than 30 minutes)
* 3. set a delay for each iteration of the transaction (e.g. 1 second) – this will serve as a control on the test/experiment
* 4. add a wrapper around the request from the test script, to measure the request response time
Step 3. Create load test
* Create a Load Test (workload) that will take a single instance of your test script (or virtual user), and gradually add more instances over time – increasing the load on the component. “The test Workload will start with 1 thread of the test driver, and increase 5 threads every 15 seconds until 75% CPU is reached and maintained.”
* 1. be sure to measure resource utilization on the server(s): CPU, Memory, Disk and Network at a minimum.
* 2. if you can, set thresholds in your testing tool according to your Performance Test Objectives
Step 4. Execute the test
* 1. First execute a quick smoke test to make sure the test script and remote perfmon counters are working correctly
* 2. Reset the system and start a formal test run execution, making sure you are gathering all measurement from the System-Under-Test
Step 5. Analyze the results.
* 1. If the test passes (e.g. reached 75% CPU and processed 100 reqs/sec), you are done testing. Proceed to Step 6.
* 2. If the test fails (e.g. reached 75% CPU, but only processed 53 reqs/sec), you must diagnose the bottleneck and optimize the system
* 1. Check the resources being used – CPU, Disk, Network, Memory (anything look over-utilized there?)
* 2. Check data sources – is there a bottleneck on database behind the webservice?
* 3. Check for queuing – do you see Web Service requests being queued, as they are waiting on back-end resources?
* 4. Find the bottleneck and fix it.
* 5. Goto Step 4.
Step 6. Report results.
* Write a performance test results report – show how well the system did under load.
Step 7. Evaluate the need for more testing
* Consider doing more testing – like stress testing.
Return to
PerformanceTestingGuidance