| 1 |
#! /usr/bin/env python |
|---|
| 2 |
# (C) Copyright 2005 Nuxeo SAS <http://nuxeo.com> |
|---|
| 3 |
# Author: bdelbosc@nuxeo.com |
|---|
| 4 |
# |
|---|
| 5 |
# This program is free software; you can redistribute it and/or modify |
|---|
| 6 |
# it under the terms of the GNU General Public License version 2 as published |
|---|
| 7 |
# by the Free Software Foundation. |
|---|
| 8 |
# |
|---|
| 9 |
# This program is distributed in the hope that it will be useful, |
|---|
| 10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 12 |
# GNU General Public License for more details. |
|---|
| 13 |
# |
|---|
| 14 |
# You should have received a copy of the GNU General Public License |
|---|
| 15 |
# along with this program; if not, write to the Free Software |
|---|
| 16 |
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
|---|
| 17 |
# 02111-1307, USA. |
|---|
| 18 |
# |
|---|
| 19 |
# |
|---|
| 20 |
"""FunkLoad package setup |
|---|
| 21 |
|
|---|
| 22 |
$Id: setup.py 24768 2005-08-31 14:01:05Z bdelbosc $ |
|---|
| 23 |
""" |
|---|
| 24 |
import ez_setup |
|---|
| 25 |
ez_setup.use_setuptools() |
|---|
| 26 |
from setuptools import setup, find_packages |
|---|
| 27 |
#from distutils.core import setup |
|---|
| 28 |
from funkload.version import __version__ |
|---|
| 29 |
|
|---|
| 30 |
setup( |
|---|
| 31 |
name="funkload", |
|---|
| 32 |
version=__version__, |
|---|
| 33 |
description="Functional and load web tester.", |
|---|
| 34 |
long_description="""\ |
|---|
| 35 |
FunkLoad is a functional and load web tester, written in Python, whose |
|---|
| 36 |
main use cases are: |
|---|
| 37 |
|
|---|
| 38 |
* Functional testing of web projects, and thus regression testing as well. |
|---|
| 39 |
|
|---|
| 40 |
* Performance testing: by loading the web application and monitoring |
|---|
| 41 |
your servers it helps you to pinpoint bottlenecks, giving a detailed |
|---|
| 42 |
report of performance measurement. |
|---|
| 43 |
|
|---|
| 44 |
* Load testing tool to expose bugs that do not surface in cursory testing, |
|---|
| 45 |
like volume testing or longevity testing. |
|---|
| 46 |
|
|---|
| 47 |
* Stress testing tool to overwhelm the web application resources and test |
|---|
| 48 |
the application recoverability. |
|---|
| 49 |
|
|---|
| 50 |
* Writing web agents by scripting any web repetitive task, like checking if |
|---|
| 51 |
a site is alive. |
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 |
Main FunkLoad features are: |
|---|
| 55 |
|
|---|
| 56 |
* FunkLoad is free software distributed under the `GNU GPL`. |
|---|
| 57 |
|
|---|
| 58 |
* Functional test are pure Python scripts using the pyUnit framework like |
|---|
| 59 |
normal unit test. Python enable complex scenarios to handle real world |
|---|
| 60 |
applications. |
|---|
| 61 |
|
|---|
| 62 |
* Truly emulates a web browser (single-threaded) using Richard Jones' |
|---|
| 63 |
webunit: |
|---|
| 64 |
|
|---|
| 65 |
- basic authentication support |
|---|
| 66 |
- cookies support |
|---|
| 67 |
- referrer support |
|---|
| 68 |
- http proxy support |
|---|
| 69 |
- fetching css, javascript and images |
|---|
| 70 |
- emulating a browser cache |
|---|
| 71 |
- file upload and multipart/form-data submission |
|---|
| 72 |
- https support |
|---|
| 73 |
|
|---|
| 74 |
* Advanced test runner with many command-line options: |
|---|
| 75 |
|
|---|
| 76 |
- set the target server url |
|---|
| 77 |
- display the fetched page in real time in your browser |
|---|
| 78 |
- debug mode |
|---|
| 79 |
- green/red color mode |
|---|
| 80 |
- select test case using a regex |
|---|
| 81 |
- support normal pyUnit test |
|---|
| 82 |
- support doctest from a plain text file or embedded in python docstring |
|---|
| 83 |
|
|---|
| 84 |
* Turn a functional test into a load test: just by invoking the bench runner |
|---|
| 85 |
you can identify scalability and performance problems. |
|---|
| 86 |
|
|---|
| 87 |
* Detailed bench reports in ReST or HTML (and PDF via ps2pdf) |
|---|
| 88 |
containing: |
|---|
| 89 |
|
|---|
| 90 |
- the bench configuration |
|---|
| 91 |
- tests, pages, requests stats and charts with percentiles. |
|---|
| 92 |
- the 5 slowest requests. |
|---|
| 93 |
- servers cpu usage, load average, memory/swap usage and network traffic |
|---|
| 94 |
charts. |
|---|
| 95 |
- an http error summary list |
|---|
| 96 |
|
|---|
| 97 |
* Easy test customization using a configuration file or command line options. |
|---|
| 98 |
|
|---|
| 99 |
* Easy test creation using TCPWatch as proxy recorder, so you can use your web |
|---|
| 100 |
browser and produce a FunkLoad test automatically. |
|---|
| 101 |
|
|---|
| 102 |
* Provides web assertion helpers. |
|---|
| 103 |
|
|---|
| 104 |
* Provides a funkload.CPSTestCase to ease Zope and Nuxeo CPS testing. |
|---|
| 105 |
|
|---|
| 106 |
* Easy to install (EasyInstall) and use, see examples in the demo folder. |
|---|
| 107 |
""", |
|---|
| 108 |
author="Benoit Delbosc", |
|---|
| 109 |
author_email="bdelbosc@nuxeo.com", |
|---|
| 110 |
url="http://funkload.nuxeo.org/", |
|---|
| 111 |
download_url="http://funkload.nuxeo.org/funkload-%s.tar.gz"%__version__, |
|---|
| 112 |
license='GPL', |
|---|
| 113 |
keywords='testing benching load performance functional monitoring', |
|---|
| 114 |
packages= ['funkload'], |
|---|
| 115 |
package_dir={'funkload': 'funkload'}, |
|---|
| 116 |
scripts=['scripts/fl-monitor-ctl', 'scripts/fl-credential-ctl', |
|---|
| 117 |
'scripts/fl-run-bench', 'scripts/fl-run-test', |
|---|
| 118 |
'scripts/fl-build-report', |
|---|
| 119 |
'scripts/fl-import-from-tm-recorder', |
|---|
| 120 |
'scripts/fl-install-demo', |
|---|
| 121 |
'scripts/fl-record'], |
|---|
| 122 |
classifiers=[ |
|---|
| 123 |
'Development Status :: 4 - Beta', |
|---|
| 124 |
'Environment :: Console', |
|---|
| 125 |
'Intended Audience :: Developers', |
|---|
| 126 |
'Intended Audience :: System Administrators', |
|---|
| 127 |
'Natural Language :: English', |
|---|
| 128 |
'License :: OSI Approved :: GNU General Public License (GPL)', |
|---|
| 129 |
'Operating System :: OS Independent', |
|---|
| 130 |
'Programming Language :: Python', |
|---|
| 131 |
'Topic :: Internet :: WWW/HTTP :: Site Management', |
|---|
| 132 |
'Topic :: Software Development :: Testing', |
|---|
| 133 |
'Topic :: Software Development :: Quality Assurance', |
|---|
| 134 |
'Topic :: System :: Benchmark', |
|---|
| 135 |
'Topic :: System :: Monitoring', |
|---|
| 136 |
], |
|---|
| 137 |
# setuptools specific keywords |
|---|
| 138 |
install_requires = ['webunit == 1.3.8', |
|---|
| 139 |
'docutils >= 0.3.7'], |
|---|
| 140 |
zip_safe=True, |
|---|
| 141 |
package_data={'funkload': ['data/*', |
|---|
| 142 |
'demo/simple/*', 'demo/zope/*', |
|---|
| 143 |
'demo/cmf/*', 'demo/xmlrpc/*', |
|---|
| 144 |
'demo/*.txt', |
|---|
| 145 |
'tests/*',]}, |
|---|
| 146 |
# this test suite works only on an installed version :( |
|---|
| 147 |
# test_suite = "funkload.tests.test_Install.test_suite", |
|---|
| 148 |
) |
|---|