Load / Stress Testing Using Pylot ver. 1.24.

Summary:

Load testing in a web server has been performed in order to find out if response times meet requirement.

The load test was carried with one user using a python script that sends requests every 110ms over a time span of 1hour.

In order to have multiple users, an open source package called pylot was used. This python bases web testing tool allows to have multiple virtual users through the use of threads.

The Results show that the web site visited: gmail behaves rather well though occasional spikes in the response time are seen.

Notice the spike that shows in the 42nd attempt.

The script used can be found in:

https://florespino.wordpress.com/2009/03/26/load-testing-a-web-server/

Using Pylot – an open source python package.

The use of open source is considered below. The program can be found in: http://www.pylot.org/

Version recommended: 1.24.  Although the results below show version 1.22, a defect in version 1.22 caused the reports to fail if the web site experienced a time-out.  This has been corrected in ver 1.24.

The following sample run has been done using the following Test parameters:

number of agents: 1

test duration in seconds: 60

rampup in seconds: 0

interval in milliseconds: 500

test case xml: c:\tmp\testcase.xml

log messages : False

The process can be started with the graphical user interface, which is invoked with the –g at the end of the python command:

C:\Tmp\pylot_1.22\pylot_1.22>python run.py -g.  Notice that the test case is specified in the file test cases.xml, which is located in the pylot_1.22\pylot_1.22 folder.

Pylot – GoogleMail Performance Results

report generated: 05/06/2009 12:08:06
test start: 05/06/2009 12:07:06
test finish: 05/06/2009 12:08:04

Workload Model

test duration (secs)

58

agents

1

rampup (secs)

0

interval (millisecs)

500

Results Summary

requests

35

errors

0

data received (bytes)

643637

Response Time (secs)

Throughput (req/sec)

Frame1

Frame2

Response Time

Throughput

Timer Groups – Response Times

Timer Group

Count

avg

stdev

min

50th %

80th %

90th%

95th %

99th %

max

default_timer

35

1.711

0.561

1.395

1.505

1.603

2.626

2.895

4.010

4.010

Agent Details

Agent

Requests

Errors

Bytes Received

Avg Response Time (secs)

1

35

0

643637

1.711

Fastest Responding Requests

Request URL

Avg Response Time (secs)

http://mail.google.com/mail/#inbox

1.711

Slowest Responding Requests

Request URL

Avg Response Time (secs)

http://mail.google.com/mail/#inbox

1.711

Using three agents:

Notice how the Response Times are higher, as well as the throughput:

Response Time

Throughput

Ramp-up time

The following is an example that introduces the concept of ramp-up time1.

Pylot – Web Performance Results

http://www.pylot.org/samples/results/results.html

report generated: 08/10/2007 12:19:58
test start: 08/10/2007 12:09:58
test finish: 08/10/2007 12:19:57

Workload Model

test duration (secs)

600

Agents

10

rampup (secs)

600

interval (millisecs)

0

Results Summary

Requests

2202

Errors

0

data received (bytes)

87285078

Response Time (secs)

Throughput (req/sec)

Frame3

Frame4

Response Time

Throughput

Agent Details

Agent

Requests

Errors

Bytes Received

Avg. Response Time

1

484

0

19185276

1.24

2

408

0

16172712

1.32

3

340

0

13477260

1.41

4

278

0

11019642

1.51

5

223

0

8839497

1.61

6

169

0

6698991

1.77

7

128

0

5073792

1.86

8

89

0

3527871

2.01

9

57

0

2259423

2.10

10

26

0

1030614

2.30

Appendix:

Other sample discussions:

On Automating Windows Tasks

Using sqlite to convert a csv file to a database, and viceversa!

Uninstalling Microsoft Sharepoint Services x64

1  Ramp-up Time:

To find out if your hardware is robust enough to handle a certain number of users simultaneously accessing the application, you want to do a stress test. A stress test progressively increases the load of the application to discover the different breaking points  -ref: http://java.sys-con.com/node/782824/mobile

The test results should answer the following questions:

* How many users can the application handle while maintaining an acceptable response time?

* What is the load threshold above which the server begins to generate errors and/or refuse connections?

* Does the server remain functional under high load or does it crash?

To do a stress test, testers should ramp up the load, starting from normal and up to the maximum predicted limit, and monitor the response times and error rates. A sudden change indicates that a threshold has been passed.

Advertisements

2 Responses to “Load / Stress Testing Using Pylot ver. 1.24.”

  1. Jessie Says:

    Hi,florespino:
    I read your passage.That’s great!
    But after I installed the Pylot, I have a problem.
    I never changed any file in folder, when I execute run.py in command line.The error occured.
    error is below:
    Traceback (most recent call last):
    File “run.py”, line 118, in
    import ui.console as pylot_console
    File “C:\pylot_1.26\ui\console\__init__.py”, line 1, in
    from pylot_console import *
    File “C:\pylot_1.26\ui\console\pylot_console.py”, line 28, in
    import win.cpos as cpos
    File “C:\pylot_1.26\ui\console\win\cpos.py”, line 25, in
    getpos = _consolepos.getpos
    NameError: name ‘_consolepos’ is not defined

    Do you know how to fix it?
    Any help or accommandate are appreciated.
    Thanks a lot.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: