Skip to main content

Functional and load web tester.

Project description

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

    • accept gzip content encoding

    • 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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page