当前位置: 首页 > 工具软件 > Siege > 使用案例 >

Siege工具的使用

邹俊拔
2023-12-01

Siege工具的使用

简介

Siege是一款高性能的Http压力测试工具。
Siege支持身份验证、cookies、http、https和ftp等协议。它旨在让Web开发人员测量其代码的性能,以了解它如何在互联网上加载。它允许用户使用可配置数量的并发模拟用户访问Web服务器。性能测量包括测试的经过时间,传输的数据量(包括标头),服务器的响应时间,事务速率,吞吐量,并发性以及返回的确定次数。

安装

下载Siege:http://download.joedog.org/siege/
我这里下载了最新的版本 siege-4.0.4.tar.gz

tar -xzvf siege-4.0.4.tar.gz
cd siege-4.0.4
./configure
make 
make install

可以通过

siege -version

查看版本号

使用说明

输入参数

输入名称解释说明
-V, –version打印版本信息
-h, –help打印帮助信息
-C, –config显示配置信息
-v, –verbose打印冗余配置信息。
-g, –get显示HTTP交易。
-c, –concurrent=NUM设置并发用户数
-u, –url=”URL”设置被测Web的URL
-i, –internet用户模拟、随机访问URL
-b, –benchmark .基准测试。
-t, –time=NUM设置测试时间。
-r, –reps=NUM设置测试次数
-f, –file=FILE更改配置文件存档
-R, –rc=FILE更改siegerc文件和环境变量
-l, –log测试日志
-m, –mark=”text”标记测试日志
-d, –delay=NUM设置时间延迟
-H, –header=”text”增加测试头文件
-A, –user-agent=”text”设置代理测试请求

输出参数

输出名称解释说明
Transactions访问次数
Availability成功次数
Elapsed time测试用时
Data transferred测试传输数据量
Response time平均响应时间
Transaction rate每秒事务处理量
Throughput吞吐率
Concurrency并发用户数
Successful transactions成功传输次数
Failed transactions失败传输次数|
Longest transaction最长响应时间|
Shortest transaction最短响应时间|

并发数量配置

siege默认只支持255个并发数,可以自己自定义,修改/root/.siege/siege.conf下的limit数值。

使用

基本使用

这边对需要简单参数的请求可使用一下命令进行测试

siege "http://localhost:8080/test POST {\"name\":\"songyaxu\"}" -r 5 -c 100

复杂的使用

这边因为接口的原因无法使用重复参数测试,随意这边使用shell写了一个生产测试url的脚本。

#!/bin/bash
count=50
rm -r ./json*
for ((i = 1;i<=count;i++))
do
name="json"$i.json
touch $name
echo { >> $name
echo  \"messageType\": 6, >> $name
echo  \"data\": \"\{\\\"s\\\":\\\"sss\\\",\\\"status\\\":1,\\\"name\\\":\\\"songyaxu\\\"\}\", >> $name
echo  \"callback\": [ >> $name
echo    { >> $name
echo      \"name\":\"bbbz\", >> $name
echo      \"url\": \"http://localhost:8080/postFail\", >> $name
echo      \"method\": \"post\", >> $name
echo      \"headers\": { >> $name
echo        \"content-type\": \"application/x-www-form-urlencoded\" >> $name
echo      } >> $name
echo    } >> $name
echo  ], >> $name
echo  \"sendCallback\":{ >> $name
echo      \"name\":\"bbbz\", >> $name
echo      \"url\": \"http://localhost:8080/postFail4\", >> $name
echo      \"method\": \"post\", >> $name
echo      \"headers\": { >> $name
echo        \"content-type\": \"application/x-www-form-urlencoded\" >> $name
echo      } >> $name
echo    }, >> $name
echo  \"uniqueKey\":\""key"$i\", >> $name
echo  \"canceledUniqueKeyList\":[\"zzz3\",\"zzz4\"], >> $name
echo  \"timeStamp\":\"2019-09-04 18:30:00\", >> $name
echo  \"retryPolicy\":1 >> $name
echo } >> $name

echo "正在创建第"$i"个文件"
done

echo "创建请求文件urls.txt"
touch urls.txt
for (( i = 1; i <= count ; i++ ))
do
echo http://localhost:8080/test/test POST \<./json$i.json >> urls.txt
done

echo "successful!!!"

这里通过count可以创建不同数量的请求参数。

通过以下方式进行测试。

siege -c 100 -r 1 -f ./urls.txt
 类似资料: