An open API service indexing awesome lists of open source software.

https://github.com/selectel/ftpbench

Benchmark for load testing FTP servers
https://github.com/selectel/ftpbench

benchmark community ftp

Last synced: about 1 year ago
JSON representation

Benchmark for load testing FTP servers

Awesome Lists containing this project

README

          

.. -*- mode: rst -*-

What is ``ftpbench``?
---------------------

It's benchmark for load testing FTP servers.

Feature
-------

* login benchmark
* upload benchmark (STOR command)
* download benchmark (RETR command)
* run test for multiple servers
* auto-detection for dns round-robin records
* save result to cvs file

Requires
--------

* gevent (http://www.gevent.org/)
* dnspython (http://www.dnspython.org/)
* docopt (http://docopt.org)
* Timecard (https://github.com/selectel/timecard)

Installation
------------

Simple from pypi::

$ pip install ftpbench

From source::

$ git clone https://github.com/selectel/ftpbench
$ cd ftpbench/
$ python setup.py install # auto install all requires

Standalone for ubuntu::

$ apt-get install python-gevent python-dnspython
$ git clone https://github.com/selectel/ftpbench
$ cd ftpbench/ftpbench/
$ wget https://raw.githubusercontent.com/docopt/docopt/master/docopt.py
$ wget https://raw.githubusercontent.com/selectel/timecard/master/timecard/timecard.py
$ python ftpbench.py --help

Usage
-----

Run::

$ ftpbench --help

FTP benchmark.

Usage:
ftpbench --help
ftpbench -h -u -p [options] login
ftpbench -h -u -p [options] upload [-s ]
ftpbench -h -u -p [options] download [-s ] [--files ]

Connection options:
-h , --host= FTP host [default: 127.0.0.1:21]
You can list multiple servers, separated by commas,
e.g.: -h 10.0.0.1,10.0.0.2,10.0.0.3.
Auto-detection of dns round-robin records is supported.
For IPv6 use brackets,
e.g.: -h [2001:db8::216:cbff::42]:21.
-u , --user= FTP user
-p , --password= FTP password

Timing options:
-t , --timeout= Timeout for operation [default: 10]
--maxrun= Duration of benchmarking in minutes [default: 5]
--fixevery= Recording period for stat values [default: 5]

Benchmark options:
-c , --concurrent= Concurrent operations [default: 10]
--csv= Save result to csv file
Base ftp dir to store test files
-s , --size= Size of test files in MB [default: 10]
--files Number of files generated for download test [default: 10]