docker/siege/README.md

54 lines
2.0 KiB
Markdown
Raw Normal View History

# Siege
Siege是一款开源的压力测试工具可以根据配置对一个WEB站点进行多用户的并发访问记录每个用户所有请求过程的相应时间并在一定数量的并发访问下重复进行。它支持下面3种操作模式
1. Regression (when invoked by bombardment)Siege从配置文件中读取URLs按递归方式逐个发送请求
2. Internet simulation (Siege从配置文件中读取URLs随机选取URL发送请求)
3. Brute force (在命令行上写上一个单独的URL发送请求)
2019-04-15 15:59:57 +08:00
官网文档: [Siege Manual](https://www.joedog.org/siege-manual/)
镜像构建参考: [jstarcher/siege](https://github.com/jstarcher/siege)
## 使用
2019-04-15 15:59:57 +08:00
### 基础命令
```
docker run --rm registry.cn-hangzhou.aliyuncs.com/kennylee/siege -c5 -r1 www.baidu.com
```
2019-04-15 16:11:48 +08:00
### 命令中使用文件
2019-04-15 15:59:57 +08:00
由于容器环境所以若想在siege命令中使用到文件时需要在命令中挂载到容器内部然后把传入内部地址传入到命令中才能正常使用参考如下
2019-04-15 15:59:57 +08:00
```
docker run --rm registry.cn-hangzhou.aliyuncs.com/kennylee/siege -c10 -r10 -f /opt/urls.txt
```
2019-04-15 16:20:43 +08:00
### 命令别名
修改linux环境下的`.bashrc`或`.zshrc`文件,添加别名命令,内容参考如下:
```
alias siege='docker run --rm -v "/tmp/siege:/tmp" registry.cn-hangzhou.aliyuncs.com/kennylee/siege'
```
重新打开一个控制台或者 `source .bashrc` 让命令生效,然后就可以直接想在本地安装的一样使用了
```
siege -c5 -r1 www.baidu.com
```
2019-04-15 16:11:48 +08:00
## 关于此镜像
这个镜像使用docker的 `multi-stage` 特性来构建了在ubuntu环境下编译包然后把编译后的文件拷贝到Alpine使用原因有两点:
1. Apline构建镜像后的体积偏大构建完后体积去到170MB.
2. Apline构建编译Siege 4.0.4版本失败实测最高只能构建3.1.4的版本。
Alpine构建脚本可参考 [brainsiq/alpine-siege](https://github.com/brainsiq/alpine-siege)编译失败的问题[无独有偶](https://github.com/JoeDog/siege/issues/124)