I just found a scrap of paper on my desk. It is the original version 0.0 of Pylot from May 2007 (notice it all fits on 1 printed page). I'm just posting this to look back on someday.
I just did a release of Pylot, the open source web/http performance tool. You can download it here:
http://www.pylot.org/download.html
New features in Pylot 1.21:
Thanks to everyone who contributed to this release! Special thanks to:
Most testing was done on Windows XP and Ubuntu Linux 8.10.
If you have any problems to report, please post to the discussion forum at:
http://clearspace.openqa.org/community/pylot
I used Nagios for health/performance monitoring of devices/servers for years at a previous job. It has been a while, and I'm starting to look into this space again. There are a lot more options out there for remote monitoring these days.
Here is what I have found that look good:
Do you know of any others I am missing? I'll update this list if I get replies. The requirement is that there must be an Open Source version of the tool.
Dana Blankenhorn (from "Ubuntu allies with Amazon and Dell"):
"the fact is Amazon’s EC2 cloud is currently dominating the space.
It’s open for business, it’s ready for your apps, today. It’s not like Google’s cloud, devoted solely to Google applications, and it’s not like Microsoft’s cloud, devoted to Windows, and it’s not like IBM’s clouds, custom-built like a new global subdivision.
Amazon’s cloud is a service businesses use to host serious applications, many of which make money. Standing at the side of such a cloud vendor is good business."
I have been playing around with Amazon's Elastic Compute Cloud (EC2). It allows you to provision virtual machines on-demand and configure and control your own compute clusters. To do external (over a WAN) performance\load testing against your web application or services, you can put together a cloud based test harnesses using some simple tools. My open source tool Pylot does the job well for simple web performance and load tests. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI or shell/console. You define your test cases in an XML file. This is where you specify the requests (url, method, body/payload, etc) and verifications.
It is incredibly easy to provision an instance and launch a virtual machine using the EC2 console. Once you have it up and running, you can just connect to your new virtual machine (via RDP or SSH) and get started.
Here is a screenshot of my terminal session using Pylot (click to enlarge):
You can see I took the following steps:
Thats it! I ran a test today doing 1500 Virtual Users from one instance of 64-bit Fedora Linux, and it took me about 5 minutes to get it setup and running. Python 2.5 is already installed on the image, and no further configuration is needed to run a basic test. To run the Pylot GUI and generate results graphs, you need to install wxPython and Matplotlib.
You can upload your own test case files and run any load test scenario you want. Don't forget, you can create and save your own machine images and launch as many as you want to run a large distributed test.
I'd like to build some tools to make this easier and to create preconfigured machine images for other people to start with. It needs common results collection and remote control of user agents. I'm thinking of a cluster of virtual machines all running Pylot, each running thousands of virtual user agents. EC2 provides the ability to place instances in multiple locations, so this could be used to create a massive geo-distributed test bed with capacity on-demand.
More soon...
The 1.20 release of Pylot is out!
Go grab a copy at: http://www.pylot.org/download.html
"Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning. Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI or shell/console."
new features include:
To get started, visit Getting Started Guide: http://www.pylot.org/gettingstarted.html
Post your questions and feedback in the Pylot forum: http://clearspace.openqa.org/community/pylot
Mark Rogers and I had a nice little hackathon getting this release put together. Special thanks to Mark and the other patch submitters for helping out.
Screenshots:
Here is quick script showing how to use Python to send email from Windows.
This approach uses the Python For Windows Extensions to access Outlook/Exchange with CDO (Collaboration Data Objects).
#!/usr/bin/env python
# Corey Goldberg
from win32com.client import Dispatch
session = Dispatch('MAPI.session')
session.Logon('','',0,1,0,0,'exchange.foo.com\nUserName');
msg = session.Outbox.Messages.Add('Hello', 'This is a test')
msg.Recipients.Add('Corey', 'SMTP:corey@foo.com')
msg.Send()
session.Logoff()
Thanks to OpenQA, I launched a web forum for help and discussions about Pylot:
Pylot Forums
This forum is a place for Pylot users and developers to share: questions, comments, experiences, enhancement requests, bug reports, etc. If you need any help, this is the place to post
What is Pylot?
"Pylot is a free open source tool for testing performance and scalability of web services. It runs HTTP load tests, which are useful for capacity planning, benchmarking, analysis, and system tuning.
Pylot generates concurrent load (HTTP Requests), verifies server responses, and produces reports with metrics. Tests suites are executed and monitored from a GUI or shell/console."
The official Pylot website is located at: www.pylot.org