几款常用压测工具介绍与使用
现在市面上的压测工具数不胜数,挑几款常用的做个简单的介绍。
1、Apache ab
ab是apache自带的压力测试工具,使用起来非常方便 。
安装
1. ab运行需要依赖apr-util包,安装命令为:
yum install apr-util
2. 需要yumdownload命令下载,没有该命令的话,可以:
yum install yum-utils
3. 新建一个目录,下载解压用:
cd /opt mkdir abtmp cd abtmp yum install yum-utils.noarch yumdownloader httpd-tools* rpm2cpio httpd-tools*.rpm | cpio -idmv
4. 将./user/bin/ab复制到系统bin下即可:
cp /opt/abtmp/usr/bin/ab /usr/bin
5. 使用如下命令查看是否安装成功:
ab -V
6. ab –help可以进行需要的测试
压测
Options are: -n requests 要执行的请求次数 -c concurrency 并发数量 -s timeout 响应时间
执行:
# 总共100个并发执行1000此请求,超时时间为1s ab -n 1000 -c 100 -s 1 http://www.baidu.com
2、wrk
wrk 是一款c语言开发的现代的http性能基准测试工具,使用简单,功能强大。
安装
可以从github上下载源码编译安装
压测
wrk的命令选项并不多,很容易使用
Usage: wrk <options> <url> Options: -c, --connections <N> 建立的连接 -d, --duration <T> 执行测试时间 -t, --threads <N> 线程数量 -s, --script <S> 使用lua脚本(非常强大的功能,有兴趣可以深入研究) -H, --header <H> 为每一个HTTP请求添加HTTP头 --latency 在压测结束后,打印延迟统计信息 --timeout <T> 超时时间 -v, --version Print version details Numeric arguments may include a SI unit (1k, 1M, 1G) Time arguments may include a time unit (2s, 2m, 2h)
# 10个线程100个连接压测30s wrk -c100 -t10 -d30s http://www.baidu.com
3、JMeter
Apache JMeter 是由java编写的一个GUI测试工具,功能强大且结果多样。
安装
可以去下载安装。
使用
1. 建立 Plan
2. 建立Thread Group
建立好 Plan后就可以建立Thread Group了, 建立方式:选中Plan 后, Edit > Add > Threads > Thread Group
Thread Group 可以设置线程的一些参数,主要是 Number of Threads(users) 和 Loop Count
3. 添加Listener
Listener主要生成一些结果报告,添加方式为:选中Thread Group后 Edit > Add > Listener
可以看到有很多结果报告,我平时主要用到以下几个结果报告
-
View Results Tree Aggregate Report Graph Results View Results Table
View Results Tree
这个报告会生成请求树,点击可以查看每个请求的信息
Aggregate Report
这个报告会生成请求的聚合统计信息, 主要参数就是QPS, 传输速度等
Graph Results
强大的图形报告结果
图形结果一些说明
-
No of Samples(样本数): 代表向服务器发送的请求数目 Deviation(偏离):代表服务器相应时间变化的数据的分布 Latest Sample(最新样本): 表示服务器相应最后一个请求的时间 Throughtput(吞吐率):这里是服务器每分钟对数据的处理量 Average(平均值): 表示总运行的时间除以发送给服务器的请求数 Median(中间值): 代表有一半的服务器时间低于该值,而另一半高于该值
根据图形结果得到的一些分析
- 吞吐率起步的时候比较低,随着请求数量越来越多,吞吐率先增后减
- 偏离值还不错,保持一个很平稳的状态 如果偏离数量随着请求数量越来越大, 说明服务器越来越不稳定
借鉴处:
上一篇:
Python 安装包管理工具 pip
下一篇:
5款软件压力测试工具分享