Skip to main content

一个大规模的压力测试框架。

项目描述

#Stresser

![最新版本](https://pypip.in/version/stresser/badge.svg)

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-0.2.1.tar.gz (5.7 kB 查看哈希)

已上传 source