编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

wrk的QPS统计中过滤掉错误请求(wireshark显示过滤器表达式)

wxchong 2024-10-12 12:35:02 开源技术 8 ℃ 0 评论

前言

wrk是一款使用比较广泛的HTTP压测工具。有着使用简单,高性能,支持Lua脚本的优点。

关于wrk的命令、参数等使用方法,本文不做详细的说明。有机会在后续专门一篇来介绍wrk的使用。今天要聊的是一个wrk的使用缺陷:wrk默认统计QPS时,没有区分成功和错误的请求。比如,10秒钟处理了1000个请求,但其中有200个返回HTTP Code为500。这时候统计的QPS期望为(1000 - 200) / 10。但wrk会使用10000 / 10。给测试结果造成偏差。

使用Lua脚本

如何过滤掉错误的请求呢?wrk本身并没有提供相关的命令或参数。但是wrk是支持Lua脚本的。可以在wrk执行生命周期的各个时间点,执行Lua脚本,实现自定义的逻辑。

在wrk的git官方文档中有关于Lua脚本的说明,我们找到了一个done方法:

done方法在压测执行完后被执行。而且done的入参中包含了本次压测的统计数据,其中就有以下的重要信息:

  1. 执行时间
  2. 总的请求数
  3. 执行的错误数量

可以在Lua脚本中根据请求数和错误请求数,计算出有效的请求数,除以执行时间,就是有效的QPS了。

Lua的代码比较简单,如下:

执行wrk时,通过--script指定Lua脚本即可。

wrk -t4 -c600 -d30s --script /to/some/path/qps.lua http://127.0.0.1:8080/hello

效果如图所示:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表