views:

62

answers:

3

I want to benchmark a new server using historical HTTP-request data. I have a textfile that contains one day's worth of real historical requests to a production server. What is the best tool for sending that list of requests on the server I'm testing? The tool I use should be able to configure the following:

  1. Number of threads making the requests
  2. Number of requests/second sent
  3. A list of request URLs to use when making the requests.

Apache Bench seems like a close fit. However, Bench does not seem to be able to take in a list of request URLs as a parameter. What would you recommend?

A: 

I would reccomend Visual Studio Test Edition. It would be a relativley simple matter to create a coded webtest that loads your url's for testing.

This advice predicates a knowledge of C# or VB for coding and the ability to install and licence Visual Studio. Visual Studio does have a trial edition available so you can have a taste of what you are getting first.

Visual Studio does not require the target site to be running any particular hardware or software, but it does provide more information on the load of the server due to the use of Perfmon counters and any ASP.Net application will provide more detail on the running app.

The caveat to this is that I have not actually used any other web testing software.

Nat
A: 

I have been using http_load to pretty good success.

http://acme.com/software/http%5Fload/

Http_load is a Unix command line tool that allows you to specify the number of requests/second and the number of threads to use when running. It pulls urls from a text file that you specify in the command. The tool is very similar to Apache Bench, with the big difference being that http_load allows you to use a list of URLs to be used when making requests. Apache Bench makes request to a single URL only.

mdemmitt
A: 

If all your requests are GET requests (no POST) then you can use the JMeter Access Log Sampler. Here are some straight forward step-by-step instructions on how to set it up. It will run through your requests either in order or using a number of concurrent threads and you can specify how many requests should run. Then you can use the other features of JMeter like reports to analyze the results.

JosephL