apache bench压力测试

157 阅读1分钟

前言

最近在工作中有这么一个需求:测试原子服务的 QPS 有多少,一种方式是用 Jenkins 跑压力测试,另一种就是今天要用的 apache bench (ab) 测试工具,ab 是用于对 Apache 超文本传输​​协议(HTTP)服务器进行基准测试的工具。

原理

ab 命令会创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,它既可以用来测试 apache 的负载压力,也可以测试 nginx、tomcat、IIS 等其它 web 服务器的压力。

压力测试

这里就不展开讲 ab 的语法,直接讲 ab 进行压力测试的命令,详细语法大家可以参考ab官方文档

在当前目录下新建 post.json 文件存放 json 格式的请求 post.json: {"data":{"uri":"cdn.yeqiongzhou.com/pulp.jpg"}}

ab -n 6000 -c 60 -p post.json -T application/json -H "Authorization:xxx uid=xxx" "http://12.34.56.78:1024/v1/ab"

下面来详细介绍这条命令,让大家能够快速上手使用。

  • -n 6000 代表测试 6000 次
  • -c 60 代表模拟了 60 个客户端来请求相应的接口,也就是请求的并发数
  • -p 包含了需要 post 的文件地址,和 -T 一起使用
  • -H 请求头信息
  • 最后跟上要请求的接口地址