1) We should plan the load test only when the functional stability of our application gets established.
2) We should ensure that the number of users must not be directly proportional to the response time.
3) We should try to execute the stress test for short duration only.
4) We should try to have large amount of unique data in the data pool as far as possible.
5) We should not load the load creating client machines at capacities in excess of 80% of CPU & memory.
6) We should try to avoid creation of detailed logs in the tool to conserve the disk IO in various client machines.
7) We should parameterize the script so that we can access the application with various configurable URLs. This will help us in reusing the script when the application gets moved form one box to the other.
8) We should try to use rendezvous points for synchronizing the requests before form submission actions in our script as & when needed. This will help us in getting concurrent hits at the time of submission of form.
9) We should try to avoid downloading of image files if possible. Reason being, during real time situation, the image files do not get downloaded each time.
10) Keep a log of consistency of response time over elapsed period & the same should be compared with various test runs.
11) We should ensure submission of all successful requests & ensure that the log files are matching. We should ensure that all requests that are triggering the operations in database, be recorded in the database.
12) We should ensure minimum size of queues at any particular time during the test.
13) In case of problem, priority of our suspicion must be on the database & business logic layer as compared to the web server.