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
Microsoft Communities