一个大规模的压力测试框架。
项目描述
#Stresser

Stresser是一个大型压力测试框架,由一个
**Commander**(客户端)和任意数量的* *士兵**(服务器)。
通过广播预定义的**任务**,指挥官可以触发所有士兵
同时生成工作负载。
一个任务可以是:
* [Sikuli](http://www.sikuli.org/) - 非常适合基于 GUI 操作的测试。
* 脚本 - 例如类 Unix 系统上的 `script.sh` 或 Windows 上的 `batch.bat`。
* bin - 二进制可执行文件。
要产生更多压力,只需添加更多士兵。
## 安装
你可以通过`pip`来安装Stresser:
```bash
pip install stresser
```
## 快速启动
安装Stresser 后,为
指挥官和士兵准备配置文件。然后分别运行 `stress-commander` 和 `stress-soldier`
。
### 启动士兵 士兵
的示例配置文件:
```INI
[amqp]
# 消息代理服务器的 AMQP
服务器 = 5.5.6.6
[bin]
# Sikuli 的 runIDE.cmd 的路径
sikuli_cmd = C:\sikuli\runIDE。 cmd
# Shell 路径(仅限 *nix 系统)
shell = /bin/zsh
```
开始监听任务:
```
$ stress-soldier
infant.conf [x] Soldier bd88148e-fa36-4017-ac5b-099ba83570fe 正在等待 RPC请求
...
```
### 启动指挥官指挥官
的示例配置文件(定义了一个Sikuli任务):
```INI
[amqp]
# The AMQP server for message broker
server = 5.5.6.6
[task]
# Task name
name = The First Task
# 任务类型,例如 sikuli、script 和 bin。
type = sikuli
# 士兵将下载的可执行文件的
URL url = http://5.5.6.6:8000/first.skl
# 士兵的数量。
当得到指定数量的# 个结果时,Commander 将停止。
count = 32
```
开始广播任务:
```
$ stress-commander command.conf
[x] 广播任务:'第一个任务'...
```
### 士兵执行任务
指挥官广播任务后,士兵被唤醒下载并
执行该任务。您可能会在士兵的控制台上看到以下消息:
```
[x] Soldier bd88148e-fa36-4017-ac5b-099ba83570fe 正在等待 RPC 请求
[.] 发现任务:'第一个任务'
[.] 从 http 下载任务可执行文件: //5.5.6.6:8000/first.skl
[.] Running task: 'The First Task'
...(任务的一些输出)
[.] Task: 'The First Task' is completed
```
### The收集完所有士兵的结果后指挥官停止在
指挥官的控制台上:
```
[.] Solider dfbe093d-54e0-4b6d-adb3-6935f3c6a31e 花了 0:12:02 完成。
[.] Solider 1bcfb3e2-dd69-4957-ab6d-be91422c44f7 花了 0:12:03 完成。
...(跳过)
[.] 士兵 bd88148e-fa36-4017-ac5b-099ba83570fe 花了 0:11:59 完成。
```
任务在所有士兵上完成后指挥官会停止,但士兵
仍在运行,因此您可以一遍又一遍地提交另一个任务。
## 要求
您只需部署一个使用
[AMQP](http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) 的消息代理。
## Versioning
Stresser 遵循 [Semantic Versioning](http://semver.org/),SemVer 和
SemVerTag。

Stresser是一个大型压力测试框架,由一个
**Commander**(客户端)和任意数量的* *士兵**(服务器)。
通过广播预定义的**任务**,指挥官可以触发所有士兵
同时生成工作负载。
一个任务可以是:
* [Sikuli](http://www.sikuli.org/) - 非常适合基于 GUI 操作的测试。
* 脚本 - 例如类 Unix 系统上的 `script.sh` 或 Windows 上的 `batch.bat`。
* bin - 二进制可执行文件。
要产生更多压力,只需添加更多士兵。
## 安装
你可以通过`pip`来安装Stresser:
```bash
pip install stresser
```
## 快速启动
安装Stresser 后,为
指挥官和士兵准备配置文件。然后分别运行 `stress-commander` 和 `stress-soldier`
。
### 启动士兵 士兵
的示例配置文件:
```INI
[amqp]
# 消息代理服务器的 AMQP
服务器 = 5.5.6.6
[bin]
# Sikuli 的 runIDE.cmd 的路径
sikuli_cmd = C:\sikuli\runIDE。 cmd
# Shell 路径(仅限 *nix 系统)
shell = /bin/zsh
```
开始监听任务:
```
$ stress-soldier
infant.conf [x] Soldier bd88148e-fa36-4017-ac5b-099ba83570fe 正在等待 RPC请求
...
```
### 启动指挥官指挥官
的示例配置文件(定义了一个Sikuli任务):
```INI
[amqp]
# The AMQP server for message broker
server = 5.5.6.6
[task]
# Task name
name = The First Task
# 任务类型,例如 sikuli、script 和 bin。
type = sikuli
# 士兵将下载的可执行文件的
URL url = http://5.5.6.6:8000/first.skl
# 士兵的数量。
当得到指定数量的# 个结果时,Commander 将停止。
count = 32
```
开始广播任务:
```
$ stress-commander command.conf
[x] 广播任务:'第一个任务'...
```
### 士兵执行任务
指挥官广播任务后,士兵被唤醒下载并
执行该任务。您可能会在士兵的控制台上看到以下消息:
```
[x] Soldier bd88148e-fa36-4017-ac5b-099ba83570fe 正在等待 RPC 请求
[.] 发现任务:'第一个任务'
[.] 从 http 下载任务可执行文件: //5.5.6.6:8000/first.skl
[.] Running task: 'The First Task'
...(任务的一些输出)
[.] Task: 'The First Task' is completed
```
### The收集完所有士兵的结果后指挥官停止在
指挥官的控制台上:
```
[.] Solider dfbe093d-54e0-4b6d-adb3-6935f3c6a31e 花了 0:12:02 完成。
[.] Solider 1bcfb3e2-dd69-4957-ab6d-be91422c44f7 花了 0:12:03 完成。
...(跳过)
[.] 士兵 bd88148e-fa36-4017-ac5b-099ba83570fe 花了 0:11:59 完成。
```
任务在所有士兵上完成后指挥官会停止,但士兵
仍在运行,因此您可以一遍又一遍地提交另一个任务。
## 要求
您只需部署一个使用
[AMQP](http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) 的消息代理。
## Versioning
Stresser 遵循 [Semantic Versioning](http://semver.org/),SemVer 和
SemVerTag。