HTTP压力测试工具wrk的安装及测试
一、预先安装需求项
为了安装顺利,不受权限的限制,首先可以把用户切换为root用户# su
+ 输入root用户对应的密码
1.1 安装支持后续操作的一些组件
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
1.2 安装编译套件
yum install gcc perl-ExtUtils-MakeMaker
二、安装or升级版本管理工具git
2.1 查看git版本
git --version
若libiconv字符集转换库没安装而出现错误:error: /utf8.c:463: undefined reference to 'libiconv'
解决方案:依次执行如下命令(无以上error则略过)
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# tar zxvf libiconv-1.14.tar.gz
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install
2.2 卸载旧版本git
在CentOS6.3系统环境下,如果以上查询的版本比较早(如:1.7.1版本),对后续的安装wrk会受到阻碍,故需升级git到新版本(如:2.2.1版本)
卸载旧版本的目录为:
yum remove git
2.3 安装新版本git
1)下载git 2.2.1进行编译安装;2)将git添加到环境变量
# wget https://github.com/git/git/archive/v2.2.1.tar.gz
# tar -zxvf v2.2.1
# cd git-2.2.1
# make configure
# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
# make all doc
# make install install-doc install-html
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc
再次查看安装新版本git后的效果:
git --version
三、正式安装wrk
切换到src目录,再次检验是否安装git
# cd /usr/local/src
# yum install git -y
3.1 克隆wrk安装文件到本地
# git clone https://github.com/wg/wrk.git
3.2 编译wrk文件
# cd wrk
# make
若出现错误:xmlto: command not found,可以尝试重新安装xmlto:# yum -y install xmlto
3.3 创建软链接到指定目录
# ln -s /usr/local/src/wrk/wrk /usr/local/bin
3.4 检验wrk是否安装成功
# wrk
[[email protected] wrk]# wrk
Usage: wrk <options> <url>
Options:
-c, --connections <N> Connections to keep open
-d, --duration <T> Duration of test
-t, --threads <N> Number of threads to use
-s, --script <S> Load Lua script file
-H, --header <H> Add header to request
--latency Print latency statistics
--timeout <T> Socket/request timeout
-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)
四、wrk性能测试
4.1 配置待测网站的IP指向到内网
根据测试环境的要求,进行环境配置,比如有的网站不允许在外网正式环境进行压测,就需要配置一个指向内网的环境进行测试
打开hosts编辑器# vim /etc/hosts
配置当前环境的hosts,格式为:
# IP1 url1
# IP2 url2
...
# IPx urlx
ESC键从编辑模式切换到正常模式,然后输入:wq
保存并退出
4.2 测试http协议网站的性能
[[email protected] /]# wrk -t2 -c10 -d15 --latency http://www.baidu.com
Running 15s test @ http://www.baidu.com
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 35.64ms 1.31ms 48.59ms 79.38%
Req/Sec 138.40 13.52 151.00 89.00%
Latency Distribution
50% 35.50ms
75% 36.13ms
90% 37.09ms
99% 40.33ms
4151 requests in 15.05s, 60.83MB read
Socket errors: connect 0, read 29, write 0, timeout 0
Requests/sec: 275.72
Transfer/sec: 4.04MB
4.3 wrk参数含义
1)语法中的参数
-t:需要模拟的线程数
-c:需要模拟的连接数
-d:测试的持续时间
--timeout:超时的时间
--latency:显示延迟统计
2)结果显示的指标
Latency:响应时间
Req/Sec:每个线程每秒钟的完成的请求数
Avg:平均
Max:最大
Stdev:标准差
推荐阅读
-
Linux中安装使用http_load对服务器进行压力测试的教程
-
自动化测试之selenium的安装及使用
-
详解Mysql5.7自带的压力测试命令mysqlslap及使用语法
-
使用Apache ab工具对Apache服务器进行简单的压力测试
-
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
-
使用HTTP-REPL工具测试ASP.NET Core 2.2中的WEB API项目
-
详解Idea中HTTP Client请求测试工具的使用
-
APP测试工具monkey的安装和常用命令及日志分析
-
Python: HTTP文件下载压力测试工具
-
Python: HTTP文件下载压力测试工具