运维

WEB压力测试工具

MarginNote 3 - Mac端PDF阅读批注工具 激活码价格:¥69.00
赤友 NTFS for Mac 助手 -  磁盘硬盘格式读写软件注册激活码价格:¥35.00
虫洞 -  iPhone安卓投屏操控 电脑手机多屏协同,价格:¥45.00
namesilo全网最便宜域名注册商,输入折扣码:nsilo20立减1美元!

1.为什么要做WEB压力测试?
很多时候,我们做好的一个web程序,在真正的运营之前,我们要在灰度环境中进行压力测试,试试看这个web程序或者前端代理能支持多少的并发访问,请求等等。当然这个工具也不仅仅是用在新项目上线前的压测,你要是有资源(比如有linux服务器,在windows上装了linux服务器等等),你也可以稍微的测试下你们公司的网站,看看会不会崩掉。当然仅限于小公司的网站,这类小公司的网站一般是没做入口流量的负载均衡,没做缓存,这样的话,只要开多几个终端执行这个压测工具,一般都会出现点这啊那啊的小问题。
再次声明,本文章仅仅是跟大家分享一个web的压力测试方法,并不是教大家去恶搞。
WEB压力测试工具
2.工具介绍
我们使用的简单工具叫做siege,其官网地址是:https://www.joedog.org/
在官方中,有一段英文解析说明了这个siege是用来做说明的,我就帮大家翻译一下siege是用来干嘛的。
Siege是一个http负载测试和基准测试工具。它的目的是让网络开发者在胁迫下测量他们的代码,看看它将如何站起来加载到互联网上。 Siege支持基本认证,cookies,HTTP,HTTPS和FTP协议。 它允许用户使用可配置数量的模拟客户端访问服务器。 这些客户将服务器置于“围困之下”。
上述的就是官方给出的Siege是说明的解析。
3.Siege安装
我选择的Siege版本是3.1.2,你们也可以根据自己的兴趣选择其他的版本,再次就不再多做描述,开始安装吧。
下载官方包:wget http://download.joedog.org/siege/siege-3.1.2.tar.gz
解压安装编译:
# tar xf siege-3.1.2.tar.gz
# cd siege-3.1.2
# ./configure
# make
# make install
创建输出目录并赋权:
# mkdir /usr/local/var/
# chmod 755 /usr/local/var/ -R
4.修改系统的连接数,否则并发上去之后就很难侧了
# cat /etc/security/limits.conf (/etc/security/limits.d/90-nproc.conf)
# End of file
* soft nproc 32000
* hard nproc 32000
* soft nofile 64000
* hard nofile 64000
* soft stack 4000
* hard stack 4000
5.Siege命令常用参数
-c 200 指定并发数200
-r 5 指定测试的次数5
-f urls.txt 制定url的文件
-i internet系统,随机发送url
-b 请求无需等待 delay=0
-t 5 持续测试5分钟
# 注意:-r和-t一般不同时使用
一般情况下我们使用-c 指定并发,以及 -t指定时间就压测就行了。为了保证压测数据的有效性,可以建立几组并发值和时间值,这个要靠你们的经验判断你们的网站怎么压合适,不要一下子就把网站给压垮了。
6.开始进行web压力测试
在这里我就不胡乱压哪个公司的网站了,我就随意找了test.html页面进行压测。只演示一组参数,你们要是做压力测试的话,可以自己设定多组参数进行压测。如果url较多,可以使用-f参数将url写入一个文件,那么压测的时候,机会随机读取指定文件里面录入的url。
# siege -b -c 100 -t 120s http://www.baidu.com/test.html
我这里设置的参数使用了-b(请求无需等待),并发设置了100,时间设置了120秒钟。我们来看下这组数据的压测结果如何吧。
WEB压力测试工具
首选来解释下结果各个指标是什么意思。
Transactions: 总共测试次数
Availability: 成功次数百分比
Elapsed time: 总共耗时多少秒
Data transferred: 总共数据传输
Response time: 等到响应耗时
Transaction rate: 平均每秒处理请求数
Throughput: 吞吐率
Concurrency: 最高并发
Successful transactions: 成功的请求数
Failed transactions: 失败的请求数
由结果来看,120秒钟内进行了99603次请求,请求成功率高达99.95%,还有其他的一些参数,可以对照解析来分析。这个结果还是挺不错的,可能是因为我的测试服务器性能比较牛逼,而且是在同一局域网之内,所以这个数据相对好看些。但是真实的压测肯定不是同一局域网的。
剩下的就靠你们发挥想象力,爱怎么玩就怎么玩啦。本文章就写到这。

(0)

本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!

ToDesk - 安全好用流畅远程控制软件 替代TeamViewer,价格:¥108.00
Eagle - 图片收集管理必备软件 激活码价格:¥119.00
PDF Expert 2 - Mac上优秀的PDF阅读编辑工具,价格:¥119.00

热评文章

发表评论