性能测试工具 wrk 使用教程

被面试官经常问到之前开发的系统接口 QPS 能达到多少,经常给不出一个数值,支支吾吾,导致整体面试效果降低?
原因基本是一些公司中,做完功能测试就完了,压根不会有性能测试这一步,或者说并发量较少,没有必要进行性能测试,亦或者,交给测试人员后,只要整体问题不大,测试报告一般也是不会再给后端人员看的,这就导致我们在面试的时候,场面一度尴尬 !!!
其实,不单单是针对面试,作为一名后端开发者,我们在完成一个接口开发后,在交给测试工程师之前,经常也会想知道,自己写的这个接口的性能如何呢?吞吐量能达到多少?QPS(Query per second 每秒处理完的请求数) 能达到多少呢?
这个时候,我们就需要借助一些常用的性能测试工具,如 Apache ab, Apache JMeter (互联网公司用的较多),LoadRunner 等 。
我们今天主要说一说轻量级性能测试工具 wrk 。
目录一、什么是 wrk
二、 wrk 的优势&劣势

  • 2.1 优势
  • 2.2 劣势
三、wrk 安装
  • 3.1 linux 安装
  • 3.2 macOS 安装
  • 3.3 Window 10 安装
  • 3.4 验证一下,是否安装成功
四、如何使用
  • 4.1 简单使用
  • 4.2 wrk 子命令参数说明
  • 4.3 测试报告
  • 4.4 使用 Lua 脚本进行复杂测试
五、总结
六、参考文档
七、赠送面试&学习福利资源
一、什么是 wrk摘自官方 GitHub 上的英文介绍:
性能测试工具 wrk 使用教程

文章插图
 
翻译一下:
wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载 。
PS: 其实,wrk 是复用了 redis 的 ae 异步事件驱动框架,准确来说 ae 事件驱动框架并不是 redis 发明的, 它来至于 Tcl 的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而被大家所熟知 。
二、 wrk 的优势&劣势2.1 优势在说 wrk 的优势之前,瞅一下 wrk 的 GitHub Star 数,也能侧面反映下它的可靠性:
性能测试工具 wrk 使用教程

文章插图
 
Wow ! 截止笔者截图为止, Star 数已经达到了 19742 !!!
再来说说 wrk 的优势:
  • 轻量级性能测试工具;
  • 安装简单(相对 Apache ab 来说);
  • 学习曲线基本为零,几分钟就能学会咋用了;
  • 基于系统自带的高性能 I/O 机制,如 epoll, kqueue, 利用异步的事件驱动框架,通过很少的线程就可以压出很大的并发量;
2.2 劣势wrk 目前仅支持单机压测,后续也不太可能支持多机器对目标机压测,因为它本身的定位,并不是用来取代 JMeter, LoadRunner 等专业的测试工具,wrk 提供的功能,对我们后端开发人员来说,应付日常接口性能验证还是比较友好的 。
三、wrk 安装wrk 只能被安装在类 Unix 系统上,所以我们需要一个 Linux 或者 MacOS 环境 。windows 10 安装需要开启自带的 Ubuntu 子系统 。
3.1 Linux 安装3.1.1 Ubuntu/Debian依次执行如下命令:
sudo apt-get install build-essential libssl-dev git -ygit clone https://github.com/wg/wrk.git wrkcd wrkmake# 将可执行文件移动到 /usr/local/bin 位置sudo cp wrk /usr/local/bin3.2.2 centos / RedHat / Fedora依次执行如下命令:
sudo yum groupinstall 'Development Tools'sudo yum install -y openssl-devel git git clone https://github.com/wg/wrk.git wrkcd wrkmake# 将可执行文件移动到 /usr/local/bin 位置sudo cp wrk /usr/local/bin3.2 MacOS 安装Mac 系统也可以通过先编译的方式来安装,但是更推荐使用 brew 的方式来安装, 步骤如下:
  1. 安装 Homebrew,安装方式参考官网 https://brew.sh (也就一行命令的事);
  2. 安装 wrk: brew install wrk;
3.3 Window 10 安装Windown 10 需要在 Windows 功能 里勾选 适用于 Linux 的 Windows 子系统, 然后通过 bash 命令切换到 Ubuntu 子系统 。接下来,参考 3.1.1 Ubuntu 的操作系通中,安装 wrk 的步骤 。
由于笔者使用的是 MacOS, Windows 上的安装步骤,并没有实际操作过,具体安装步骤,您可以参考官方 Windows 10 的安装教程:https://github.com/wg/wrk/wiki/Installing-wrk-on-Windows-10,或者用您喜欢的搜索引擎来搜索 Windows 10 如何启用 Ubuntu 子系统后,再安装 wrk,亦或者通过安装 Linux 虚拟机的方式来使用 wrk 。
3.4 验证一下,是否安装成功命令行中输入命令:


推荐阅读