views:

91

answers:

2

and our client need we to simulate 50 person to work at the same time on the website, and the response time should be within 5 seconds. But our concern is that if we test at their website, we can not control the network speed, hardware and so on. As that might effect our test result. and another thing is there are some antiforgerytoken in our website, the performance test tool can not simulate this mechanism, after we record the request, and system send it again, it will fail, since the token is invalidated. and I want to know how do you perform this performance test usually ? any suggestions ? Thanks in advance !

+1  A: 

When running load tests, it is really best to emulate your environment as best as possible. If the resources of the test system are different than the production system, you are bound to get different results.

Still, you can run tests with given hardware and report on the numbers you get. For instance, you can know how much bandwidth your system needs regardless of how much the production system has available because that can be measured.

But if you want to measure against what the client will see, you have to do it with the same environment.

Brian Genisio
And what software do you usually use ? Do you have any procedure to do that ?
MemoryLeak
We currently use Visual Studio Team System Test Edition for our load tests. It works well and gives us a lot of data. It is the cheapest load testing solution I have come across. Others on the mareket include LoadRunner and QALoad.
Brian Genisio
+1  A: 

My usual approach is phased.

First, test in the development environment using a simple tool like WCAT. It won't run JavaScript or do postbacks, but it will stress simultaneous requests and threads, which are often major performance bottlenecks.

Once that's working as desired, then move up to Visual Studio Team Test, which supports more complex scenarios. Start in the lab, and then move to a beta / pre-production environment. I also like to use server-side performance counters and monitoring, in addition to or sometimes instead of client-side measurement.

For the anti-forgery logic, for load testing purposes only you might build a version of the system that doesn't have that check.

Next, test with real users in a beta environment. The details depend on the project. If I can't get real users, I've also created setups with tens of PCs running test scripts with real browsers. There are some good third-party tools that can help here, too, such as Load Runner (expensive, though).

Finally, continue to monitor and test once the software goes into production. It's not uncommon for software that works great in beta to fall apart in production due to some unforeseen difference or inconsistency (IIS config, for example).

RickNZ
server-side performance counters and monitoring, Hi I tried several times to connect to remote server to get the counter values, but always failed, it prompt me that i didn't have the permission, do you have any suggestions ? or should i need to install some softwares on the remote server before i connect to it ?
MemoryLeak
The easy way is to use Remote Desktop and perfmon. If you want to use a local perfmon for a remote server, then you need to have the right permissions, have the right port open, etc. I usually just look up those details on MSDN when I need them. IIRC, you will need to be in the same domain or workgroup for the permissions to work right.
RickNZ
Do you have any details for set up the environment for remote monitoring ?I tried many times, but always failed...
MemoryLeak
It can fail for a number of reasons. You might want to post a question at the MSDN forum for perfmon, with the details of what's not working for you: http://social.msdn.microsoft.com/Forums/en-US/perfmon/threads
RickNZ