Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/debugtalk/stormer
Wrappers for making load test with locust more convienient.
https://github.com/debugtalk/stormer
http-requests locust performance-testing remote-machine ssh-client wrapper
Last synced: about 1 month ago
JSON representation
Wrappers for making load test with locust more convienient.
- Host: GitHub
- URL: https://github.com/debugtalk/stormer
- Owner: debugtalk
- License: mit
- Created: 2017-02-25T16:02:47.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-18T08:00:28.000Z (over 7 years ago)
- Last Synced: 2024-11-01T10:42:31.341Z (about 1 month ago)
- Topics: http-requests, locust, performance-testing, remote-machine, ssh-client, wrapper
- Language: Python
- Homepage:
- Size: 80.1 KB
- Stars: 49
- Watchers: 3
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-locust - stormer - Wrappers for making load test with Locust more convenient. (Tools / Wrappers)
README
# Stormer
Wrappers for making load test with [`locust`](https://github.com/locustio/locust) more convienient.
## Features
- Start locust master and specified number of slaves at once.
- Overwrite test scripts on all remote machines with ease.
- Download remote file/directory to local path.## Dependencies
Stormer is mainly based on [`locustio`](https://github.com/locustio/locust) and [`paramiko`](https://github.com/paramiko/paramiko/), you can install all dependencies through `requirements.txt`.
```bash
$ pip install -r requirements.txt --upgrade
```## Usages
Currently, Stormer supports two subcommands.
```text
$ python main.py -h
usage: main.py [-h] {locust,sput} ...Wrappers for making load test with locust more convienient.
positional arguments:
{locust,sput} sub-command help
locust locust wrapper.
sput scp wrapper for putting files.optional arguments:
-h, --help show this help message and exit
````locust` usage: Start locust master and specified number of slaves with one command.
```text
$ usage: main.py locust [-h] [-f LOCUSTFILE] [-P PORT] [--slaves-num SLAVES-NUM]Start locust master and specified number of slaves with one command.
optional arguments:
-h, --help show this help message and exit
-f LOCUSTFILE, --locustfile LOCUSTFILE
Specify locust file to run test.
-P PORT, --port PORT, --web-port PORT
Port on which to run web host, default is 8089.
--slave-only Only start locust slaves.
--master-host MASTER_HOST
Host or IP address of locust master for distributed
load testing.
--slaves-num SLAVES_NUM
Specify number of locust slaves, default to machine's
cpu count.
````sput` usage: Copy local file/directory to remote machines and overwrite.
```text
$ python main.py sput -h
usage: main.py sput [-h] [--hostsfile HOSTSFILE] [--localpath LOCALPATH] [--remotepath REMOTEPATH]Copy local file/directory to remote machines and overwrite.
optional arguments:
-h, --help show this help message and exit
--hostsfile HOSTSFILE
Specify hosts file to handle.
--localpath LOCALPATH
Specify localpath of file or directory to transfer.
--remotepath REMOTEPATH
Specify remotepath of file or directory to transfer.
```## Examples
Start locust master and locust slaves, the slaves number is equal to the machine's cpu count.
```text
$ python main.py locust -f examples/demo_task.py
[2017-02-26 10:52:04,875] Leos-MacBook-Air.local/INFO/logger: Starting Locust 0.8a2
[2017-02-26 10:52:04,897] Leos-MacBook-Air.local/INFO/logger: Starting web monitor at *:8089
[2017-02-26 01:32:15,757] Leos-MacBook-Air.local/INFO/locust.runners: Client 'Leos-MacBook-Air.local_9cfcb5acf942af4b52063c138952a999' reported as ready. Current
ly 1 clients ready to swarm.
[2017-02-26 01:32:15,757] Leos-MacBook-Air.local/INFO/locust.runners: Client 'Leos-MacBook-Air.local_0dba26cc993de413436db0f854342b9f' reported as ready. Current
ly 2 clients ready to swarm.
[2017-02-26 01:32:15,758] Leos-MacBook-Air.local/INFO/locust.runners: Client 'Leos-MacBook-Air.local_2d49585a20f6bcdca33b8c6179fa0efb' reported as ready. Current
ly 3 clients ready to swarm.
[2017-02-26 01:32:15,782] Leos-MacBook-Air.local/INFO/locust.runners: Client 'Leos-MacBook-Air.local_cc9d414341823d0e9421679b5f9dd4c4' reported as ready. Current
ly 4 clients ready to swarm.
```Only start 4 locust slaves and connect to locust master.
```text
$ python main.py locust -f examples/demo_task.py --slaves-only --master-host --slaves-num 4
```Copy local directory to all remote hosts.
```text
$ python main.py sput --hostsfile examples/hosts.yml --localpath examples --remotepath /root/examples
```