Wrk相信是HTTP性能测试工具中最强悍的了,基于C的编写性能非常强。唯一不好的就是对Windows支持不友好。最近在使用它来测试组件实现的HTTP/HTTPS性能,下面介绍一下这个工具的安装和使用。
由于之前的测试是在Ubuntu下进行,所以就说一下这组件在Ubuntu下的安装使用。
sudo apt-get update
sudo apt-get install build-essential libssl-dev git -y
以上操作是更新系统和安装git相关工具
git clone https://github.com/wg/wrk.git wrk
下载代码,不过国内的服务器这个地址不好使,可以使用以下地址
git clone https://gitee.com/beetlex-io/wrk.git
如果系统不包括unzip的话,需要安装这个包,否则在编译wrk的时会报错
sudo apt-get instaul unzip
接下来就可以编译安装wrk了
make
sudo cp wrk /usr/local/bin
安装完成后就可以测试了
~/wrk$ wrk -c 10 -t 5 -d 20s http://test.beetlex-io.com/?Protobuf=100 :
Running 20s test @ http://test.beetlex-io.com/?Protobuf=100
5 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 388.83us 2.97ms 62.69ms 99.23%
11.90k 0.86k 13.07k 92.54%
1189556 requests in 20.10s, 5.79GB read
59182.80 :
295.13MB :
以上只是简单的定义连接数,线程数,时长和测试地址即可以开始测试,测试完成后就有一个简单的测试报告。其实我们最关心的是Requests/sec这个值,即是每秒的请求响应数。
如何方便测试HTTPS?
其实只要在测试连接的http标识改成https即可,但有个证书问题要解决的,wrk会对证书验证和连接的相关性,如果不匹配就无法进行测试了。可以通过lua来处理,建立一个ignore_ssl_errors.lua文件,然后填写以下内容
wrk.headers["Host"] = "example.com"
wrk.scheme = "https"
wrk.verify_ssl = false
在测试的时候指定
wrk -t12 -c400 -d30s -s ignore_ssl_errors.lua https://example.com
不过以上方式我没有测试成功,我是通过修改Hosts来解决
sudo vi /etc/hosts
在文件中添加指定的地址就可以
# This file is automatically generated by WSL based on the Windows hosts file:
# %WINDIR%\System32\drivers\etc\hosts. Modifications to this file will be overwritten.
127.0.0.1 localhost
127.0.1.1 WIN-6MPLC4ASIPB.localdomain WIN-6MPLC4ASIPB
127.0.0.1 test.beetlex-io.com
通过配置本地域名就可以顺利测试https服务了。
如果你想不安装就能测试又要能在windows下运行的话可以选择
https//github.com/codesenberg/bombardier
单个文件免安装,提供了linux,windows可直接运行。虽然在高压下没有wrk好,但对于大部分应用服务来说也是足够,这个工具同样也是支持https的。
如果你想有个更直观的测试工具可以用BeetleX实现的可视化压测工具,支持用例管理,可变参数函数和文件提交等各种测试功能。
链接:https://pan.baidu.com/s/1WTjFpJ7ze28ih8hQ92BTbQ?pwd=okf9
提取码:okf9
下载 webbenchmark-1.5-win64/webbenchmark-1.5-linux64
如果你不了解如何测试自己的HTTP/HTTPS服务性能或不知道如何评估可以联系我。
BeetleX
开源跨平台通讯框架(支持TLS)
提供HTTP,Websocket,MQTT,Redis,RPC和服务网关开源组件
个人微信:henryfan128 QQ:28304340
有丰富的高吐网络服务设计经验https://github.com/beetlex-io/
本文暂时没有评论,来添加一个吧(●'◡'●)