前端测试 AB 工具 (apache bench) 初探

FelixKang · 2018年08月14日 · 最后由 paul 回复于 2018年08月15日 · 3588 次阅读

闲聊扯淡

今天一个前端开发小哥哥问我,“测试大佬,知道 AB 么?”
AB?angelababy,谁不知道啊,怎么问我这个?
不对,没有这么简单,于是我百度谷歌一下,噢,原来是 apache bench,一个搞性能的工具;
于是我回 “apache bench 嘛,怎么了,你要搞性能么?”
小哥哥仿佛找到了救星 “是啊,上司要我预研一下,准备搞,大佬厉害啊,帮我看看这个东西怎么看”
然后丢给我一个这个

emmmmm,啥玩意啊,看着倒是蛮高端大气上档次的,继续祭出谷歌大法,一番研究之后,给他丢了个这个

欢声笑语中,对面打出了 GG,在一堆 666 图后,收下了开发小哥哥的膝盖;

tip:
测试大佬仅为搞笑,本人测试 3 年小萌新一枚

知识点记录

ab 是 Apache 超文本传输协议 (HTTP) 的性能测试工具。是 Apache 自带的压力测试工具,主要对服务器进行网站访问压力测试;

输入命令
ab -n 200000 -c 200 XXXXXXX(请求链接);其中-n 表示请求数,-c 表示并发数

命令输完,报告就出来了,牛的一批;

大概可以分成四段

  • 服务器信息和文档信息
  • 一堆指标
  • 消耗时间
  • 每个请求处理时间的分布情况

如我图所示
第一段:
web 服务器的信息:swoole_http_server
(这里其实还是有不少内容的,比如这个 swoole_http_server 是啥,nginx 相关的一些;
可以看这个https://wiki.swoole.com/wiki/page/326.html
域名是 127.0.0.1
端口是 8080
请求的文档的相关信息,所在位置 “/”
文档的大小为 12 bytes(此为 http 响应的正文长度)

第二段:
Concurrency Level: 200
//并发请求数
Time taken for tests: 6.956 seconds
//整个测试持续的时间
Complete requests: 200000
//完成的请求数
Failed requests: 0
//失败的请求数
Keep-Alive requests : 200000
//保持连接的请求数
Total transferred: 33025410 bytes
//整个场景中的网络传输量
HTML transferred: 2401848 bytes
//整个场景中的 HTML 内容传输量
Requests per second: 28752.66 #/sec
//吞吐率,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值
Time per request: 6.956 ms
//用户平均请求等待时间,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
Time per request: 0.035ms
//服务器平均请求处理时间
Transfer rate: 4636.56 [Kbytes/sec] received
//平均每秒网络上的流量

第三段:
这个消耗时间,比较简单,就不多讲了

第四段:
每个请求处理时间的分布情况,这里有资料说,主要看 90%,也不知道为什么,有时间去研究一下

后记

截止目前,看似说了一堆,其实没啥营养,毕竟就是些基础,10min 谷歌,谁都会,那么我们到底怎么用这个到自己的项目,去监测或者考量性能达不达标呢;
这就要结合具体需求了,还需要一堆性能知识,这个嘛,欲知后事如何,请看下回分解;

共收到 4 条回复 时间 点赞

大佬,等你下回分解

大佬,等你下回分解

AB 测试简单接口性能还挺好用的,复杂的...说多了都是泪。参考多少线主要还是看测试项目的性能基线,比如之前测过一个项目,上线要求高,直接是看 95% 和 99% 是否达标的。

大佬,等你下回分解

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册