Siege 概述

Siege 是一款高性能的 HTTP 压力测试工具。它支持身份验证、Cookies,以及 HTTP、HTTPS 和 FTP 协议。

安装 Siege

若要支持 HTTPS 协议,需要先下载并安装 OpenSSL。

1. 安装 OpenSSL

下载地址:https://github.com/openssl/openssl

git clone https://github.com/openssl/openssl
cd openssl
./config --prefix=/usr/local/openssl
make
make install
openssl version

2. 安装 Siege

下载地址:http://download.joedog.org/siege/siege-4.0.4.tar.gz

tar zxvf siege-4.0.4.tar.gz
cd siege-4.0.4
make clean
./configure --prefix=/usr/local/siege --with-ssl=/usr/local/openssl
make 
make install

安装完成后,可通过 siege -V 验证安装结果。

注意:Siege 默认只支持 255 个并发数。如需自定义,可修改配置文件 /root/.siege/siege.conf 下的 limit 数值。

命令参数

参数描述
-V, --version打印版本号
-h, --help打印帮助信息
-C, --config打印当前配置信息
-g, --get拉取 HTTP 头信息
-p, --print打印整个页面的内容
-c, --concurrent=NUM并发用户数量,默认 10 个
-r, --reps=NUM运行次数
-d, --delay=NUM随机时间延迟(秒)
-b, --benchmark请求没有延迟
-i, --internet模拟网络用户随机点击 URL
-f, --file=FILE选择指定的 URL 文件
-R, --rc=FILE指定 siegerc 文件
-l, --log[=FILE]日志文件,默认是 PREFIX/var/siege.log
-H, --header="text"给请求添加头,支持多个
-A, --user-agent="text"给请求设置 User-Agent
-T, --content-type="text"给请求设置 Content-Type

性能指标

指标描述
Transactions命中次数
Availability命中率
Elapsed time整个压测花费的时间,从第一个请求开始到最后一个结束
Data transferred整个压测数据传输的总和
Response time响应时间是响应每个模拟用户请求所花费的平均时间
Transaction rate事务速率,即服务器每秒能够处理的平均事务数(事务数除以经过的时间)
Throughput吞吐量,即从服务器到所有模拟用户每秒传输的平均字节数
Concurrency并发是同时连接的平均数,这是一个随服务器性能下降而上升的数字
Successful transactions成功事务次数
Failed transactions失败事务次数
Longest transaction最长事务时间
Shortest transaction最短事务时间

应用举例

1. 基础应用

siege -c10 -r1 -p url

2. 支持多个 Header 参数

siege -c10 -r1 -p --header="Authorization: Bearer b7c75bae-9d68-4a74-bffb-95eb08a40918" --header="sg: 123456"

3. 支持 Application/json 方式请求

siege -c1 -r1 "http://192.168.16.101:6005/bpm/processInstances/review PUT <./1.json"

4. 支持从文件读取 URL

siege -c9 -r1 -f url.txt
说明:本文安装步骤与示例基于 Siege 4.0.4 版本编写,不同版本间命令参数或配置文件路径可能存在差异。