external resources to perform the tests, depending on inhouse expertise (or lack of it). Gather or elicit performance requirements (specifications) from users and/or business analysts. Develop a high-level plan (or project charter), including requirements, resources, timelines and milestones. Develop a detailed performance test plan (including detailed scenarios and test cases, workloads, environment info, etc.). Choose test tool(s). Specify test data needed and charter effort (often overlooked, but vital to carrying out a valid performance test). Develop proof-of-concept scripts for each application/component under test, using chosen test tools and strategies. Develop detailed performance test project plan, including all dependencies and associated timelines. Install and configure injectors/controller. Configure the test environment (ideally identical hardware to the production platform), router configuration, quiet network (we don't want results upset by other users), deployment of server instrumentation, database test sets developed, etc. Dry run the tests - before actually executing the load test with predefined users, a dry run is carried out in order to check the correctness of the script. Execute tests – probably repeatedly (iteratively) in order to see whether any unaccounted-for factor might affect the results. Analyze the results - either pass/fail, or investigation of critical path and recommendation of corrective action. Methodology Performance testing web applications According to the Microsoft Developer Network the Performance Testing Methodology consists of the following activities: Identify the Test Environment. Identify the physical test environment and the production environment as well as the tools and resources available to the test team. The physical environment includes hardware, software, and network configurations. Having a thorough understanding of the entire test environment at the outset enables more efficient test design and planning and helps you identify testing challenges early in the project. In some situations, this process must be revisited periodically throughout the project's life cycle. Identify Performance Acceptance Criteria. Identify the response time, throughput, and resource-use goals and constraints. In general, response time is a user concern, throughput is a business concern, and resource use is a system concern. Additionally, identify project success criteria that may not be captured by those goals and constraints; for example, using performance tests to evaluate which combination of configuration settings will result in the most desirable performance characteristics. Plan and Design Tests. Identify key scenarios, determine variability among representative users and how to simulate that variability, define test data, and establish metrics to be collected. Consolidate this information into one or more