apache bench使用入门

简介

apache bench(简称为ab)是apache提供用于对apache http server进行基准测试的工具。但是由于其安装和使用简单,所以也可以用于对HTTP接口的压力测试和性能测试。

安装

Ubuntu

  1. 使用apt在线安装:sudo apt install apache2-utils
  2. 检查安装是否成功:ab -V

使用

常用参数说明

参数 用途
-n requests 设定请求总次数
-c concurrency 设定并发的请求数,可以理解为同一时间内访问的客户端数
-t timelimit 测试所用的时间上限(单位为秒),默认无上限。如果设置这个参数二没有设置请求总次数,则请求总次数为50000(-n 50000)。
-s timeout 每次响应的最大等待时间(单位为秒),默认值为30s.注意这个-s中的s是小写的。
-p postfile 调用POST方法的时候的数据,postfile为数据文件的地址。需要通过-T设置Content-Type头部
-u putfile 调用PUT方法的时候的数据,postfile为数据文件的地址。需要通过-T设置Content-Type头部
-T content-Type 用于POST/PUT方法中设置Content-Type头部
-H custom-header 添加头部Header,需要注意custome-header的格式为key:value。
-C attribute 添加Cookie,格式为key=value
-m method 设置请求方法。
-v verbosity 显示调试信息。verbosity为数字,可以看做是输出信息的级别。
-w 以HTML表格形式输出测试结果

测试报告解读

参数 用途
Server Software 网站用的HTTP服务器软件信息
Server Hostname 网站的域名
Server Port 网站占用的端口
SSL/TLS Protocol 网站所用的SSL/TLS协议信息
Concurrency Level 并发级别,可以看做是模拟的客户端数目
Time taken for tests 测试花费的总时间
Complete requests 完成的请求数目,就是指成功返回200的请求,注意请求超时不算入这个数目
Failed requests 失败的请求书,只要返回码不是200,或者超时都会计算入内。
Requests per second 每秒请求数,这个值是用总请求数除以测试花费的总时间的值。
Time per request 每个请求花费的时间。
Non-2xx responses 非200系列状态码的响应数。

例子

  1. 模拟1个客户端请求100次:ab -n 100 http://www.example.com/
  2. 模拟100个客户端请求10000次:ab -n 10000 -c 100 http://www.example.com/
  3. 调用POST方法的接口10次,传输的数据格式为JSON:ab -n 10 -p json-file http://www.example.com/
  4. 调用OPTIONS方法的接口10次:ab -n 10 -m OPTIONS http://www.example.com/
  5. 输出每次请求的返回信息:ab -n 10 -v 2 http://www.example.com/

注意事项

  1. 使用-H Content-Type 不能代替-T Content-Type指定Content-Type 头部
  2. 如果提示ab: invalid URL,可能是URL最右边缺少/,例如http://www.example.com需要改为http://www.example.com/
  3. 需要注意如果压测的HTTP接口是通过返回结果判断是否成功(只要能响应都会返回200状态码),则需要自行去想办法识别失败的请求。

你可能感兴趣的:(开源技术入门)