Introduction
FunkLoad is a functional and load web tester, written in Python, whose
main use cases are:
- Functional testing of web projects, and thus regression testing as well.
- Performance testing: by loading the web application and monitoring
your servers it helps you to pinpoint bottlenecks, giving a detailed
report of performance measurement.
- Load testing tool to expose bugs that do not surface in cursory testing,
like volume testing or longevity testing.
- Stress testing tool to overwhelm the web application resources and test
the application recoverability.
- Writing web agents by scripting any web repetitive task.
Features
Main FunkLoad features are:
- Functional test are pure Python scripts using the pyUnit framework
like normal unit test. Python enable complex scenarios to handle
real world applications.
- Truly emulates a web browser (single-threaded) using an enhanced
Richard Jones’ webunit:
- get/post/put/delete support
- post any kind of content type like application/xml
- DAV support
- basic authentication support
- file upload and multipart/form-data submission
- cookies support
- referrer support
- https support
- https with ssl/tls by providing a private key and certificate (PEM
formatted)
- http_proxy support
- fetching css, javascript and images
- emulating a browser cache
- Advanced test runner with many command-line options:
- set the target server url
- display the fetched page in real time in your browser
- debug mode to display http headers
- check performance of a single page (or set of pages) inside a test
- green/red color mode
- select or exclude tests cases using a regex
- support normal pyUnit test
- support doctest from a plain text file or embedded in python
docstring
- Turn a functional test into a load test: just by invoking the bench
runner you can identify scalability and performance problems. If
needed the bench can distributed over a group of worker machines.
- Detailed bench reports in ReST, HTML, Org-mode, PDF (using
LaTeX/PDF Org-mode export) containing:
- the bench configuration
- tests, pages, requests stats and charts
- the requets that took the most time
- monitoring one or many servers cpu usage, load average,
memory/swap usage and network traffic charts
- an http error summary list
- Differential reports to compare 2 bench reports giving a quick
overview of scalability and velocity changes.
- Trend reports to view the performance evolution with multiple
reports.
- Easy test customization using a configuration file or command line
options.
- Easy test creation using embeded TCPWatch as proxy recorder, so you
can use your web browser and produce a FunkLoad test automatically,
including file upload or any ajax call.
- Provides web assertion helpers to check expected results in responses.
- Provides helpers to retrieve contents in responses page using DOM.
- Easy to install (EasyInstall).
- Comes with examples look at the demo folder.
- Successfully tested with dozen of differents web servers: PHP,
python, Java...
License
FunkLoad is free software distributed under the GNU GPL license.
(C) Copyright 2005-2011 Nuxeo SAS (http://nuxeo.com).
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.