You will need to set up different tests:
- Normal test, simulate users like they will behave. You will implement think time (no http fury 1s between pages). One way is to record a web session, so you will have realistic time to complete/read each page. Load will come step by step until you reach the average current load in production
- Rupture test: Same as before, but add load until you get the first http 500 error. The goal is to know how much load you can manage until it will break
- Long running test. You keep the first scenario running for 12 hours, to be sure you don't have memory leak, or performance degradation over time.
After/before each test, you must put back the platform as before: restore database, reboot to clean memory and cache.
You will also implement a warm-up: Launch scenarios once before the real test, so web pages are compiled, connection to database made. Else, the first call will always be bad in your stats.
You can add complexity, like:
- use different scenarios (visitors/guest, members), that will performs differently.
- Simulate differents bandwidth access
- Randomize searched word and think time.
One last important thing: You MUST save all completed scenario to be able to make them again exactly the same way, so you can compare performance with previous tests.