网站上线前往往需要做一些压力测试,防止高并发场景时服务器挂掉。压力测试工具有不少,但是最简单的应该算是Apache附带的Apache Benchmark(下面简称AB)了,这里我就对AB的安装使用以及分析做一个简单的介绍。
安装Apache Benchmark(AB)
Windows安装
其中Windows下安装ab比较简单,直接去Apache官网找对应的编译好的Windows包,解压后找到ab.exe,就是这个工具了,
下载地址:https://www.apachehaus.com/cgi-bin/download.plx
Linux安装
接着我们看看Linux下安装,一般的教程都是需要安装httpd这个包,包含了apche服务器以及相关的工具,这里由于我们只需要用到ab这个附带的测试工具,因此只需要单独安装工具包就可以了
CentOS下Yum直接安装:
1 |
|
Ubuntu下也差不多:
1 |
|
命令参数解释
安装好之后直接使用如下命令即可简单测试:
1 |
|
当然每个测试的场景不同,这些必要的参数还是需要设置的:
-n
参数用来设置模拟请求的总次数-c
参数用来设置模拟请求的并发数-t
参数用来设置模拟请求的时间
简单举例,如果要模拟1个用户访问1000次:
1 |
|
如果要模拟500个用户访问1000次(表示每个用户访问2次)
1 |
|
如果要模拟500个用户同时访问,并且每个用户访问停留时间10秒:
1 |
|
以上是常用的参数,其他参数如下,可以根据实际测试场景使用:
-A
采用base64编码向服务器提供身份验证信息,用法: -A 用户名:密码-C
cookie信息,用法: -C key=value-d
不显示pecentiles served table-e
保存基准测试结果为csv格式的文件-g
保存基准测试结果为gunplot或TSV格式的文件-h
显示ab可选参数列表-H
采用字段值的方式发送头信息和请求-i
发送HEAD请求,默认发送GET请求-k
设置ab命令允许1个http会话响应多个请求-p
通过POST发送数据,用法: -p page=1&key=value-P
采用base64编码向服务器提供身份验证信息,用法: -A 用户名:密码-q
执行多余100个请求时隐藏掉进度输出-s
使用Https协议发送请求,默认使用Http-S
隐藏中位数和标准偏差值-v
-v 2 及以上将打印警告和信息,-v 3 打印http响应码,-v 4 打印头信息-V
显示ab工具的版本号-w
采用HTML表格打印结果-x
HTML标签属性,使用 -w 参数时,将放置在<table>
标签中-X
设置代理服务器,用法 -X 192.168.1.1:80-y
HTML标签属性,使用 -w 参数时,将放置在<tr>
标签中-z
HTML标签属性,使用 -w 参数时,将放置在<td>
标签中
测试用例与输出结果分析
使用上面的第二个例子,得到的结果如下:
1 |
|