云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

Siege的Web压力测试


安装方式一

wget http://download.joedog.org/siege/siege-latest.tar.gz
或wget https://blog.ossq.cn/wp-content/uploads/2022/11/siege-latest.tar.gz
tar zxf siege-latest.tar.gz
cd siege-4.1.5/
./configure
make & make install

安装方式二

yum install siege
或者
apt install siege

查看是否安装成功:

查看siege安装路径:
$ which siege
/usr/local/bin/siege

查看siege版本:
$ siege -V
SIEGE 4.1.5

GET 请求方式调用

单条地址 重复测试

siege -r 10 -c 25 http://ossq.cn:/xxx?user=10

文件测试:文件里面准备好的多条访问地址(类似于上述的url后跟参数),可以通过参数控制选择是逐条测试或者随机测试:

siege -c 15 -r 50 -b -f test_file &> log.press.$RANDOM &

POST请求方式调用

单条地址 重复测试:

siege -H "Content-Type:application/json" -c 10 -r 10 http://0.0.0.0:5000/xxx POST p1=v1&p2=v2

json文件测试

# 新建json文件

# 1.vim test.json

{
    "p1": p1,
    "p2": p2
}

# 2. 测试语句

# 每秒10个并发跑10次 test.json 为发送的数据内容
siege  -H "Content-Type:application/json"  -c 10 -r 10  'http://0.0.0.0:5000/xxx POST < /tmp/test.json'

注意: 如果url中含有空格和中文,要先进行url编码,否则siege发送的请求url不准确

测试开始

siege -c 100 -r 10 -f urls.txt

-c并发数
-r重复次数

被测试的服务器日志

CPU占用量

监控显示

测试结果

结果参数介绍

-c 25: 25 个仿真用户, -r 10: 每个用户请求的次数;

Transactions:服务器受到的请求次数;

Elapsed time: 整个测试阶段总耗时;

Data transferred:每个仿真用户传输数据大小的总和;

Response time:每次请求耗时的平均时间;

Transaction rate: 服务器每秒能够处理的请求数量;

Throughput: 服务器每秒传输的字节数;

Concurrency: 平均同时连接数;

Successful transactions: 成功连接次数;

Failed transactions: 失败连接次数;

Longest transactions:最长的一次请求时间;

Shortest transactions:最短的一次请求时间;

总结

这个用于GET测试带宽是否足够,更加直观。POST测试数据库并发更加直观。

  • 分享:
评论
还没有评论
    发表评论 说点什么