Apache-ab是著名的Web服务器软件Apache附带的一个小工具,它可以模拟多个并发请求,测试服务器的最大承载压力。
ab 是apachebench的缩写,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
1.下载安装
我下载的是windows版:
下载地址:官网http://httpd.apache.org/
(1)打开官网
(2)找到windows的下载版本
(3)可以直接选择 ApacheHaus
(4)x86是32位的,x64是64位的,根据自己的操作系统选择下载
(5)下载完成后直接解压到具体目录,找到bin目录:
(6)测试运行
在Windows系统下,打开cmd命令行窗口,定位到apache安装目录的bin目录下,输入ab回车,返回该命令的帮助信息即代表安装成功
2.命令参数详细文档,参考官网:http://httpd.apache.org/docs/2.2/programs/ab.html
-n
即requests Number,用于指定压力测试总共的请求次数,默认时,仅执行1一个请求
-c
即concurrency,用于指定压力测试的并发数,就是一次产生的请求个数,默认一次一个
-t
即timelimit,等待响应的最大时间(单位:秒),可以使对服务器的测试限制在一个固定的总时间以内,默认时没有时间限制
-b
即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p
即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u
即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T
即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v
即verbosity,指定打印帮助信息的冗余级别;设置显示信息的详细程度,–4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-w
以HTML表格形式打印结果,默认时,它是白色背景的两列宽度的一张表
-i
使用HEAD请求代替GET请求。
-x
插入字符串作为table标签的属性。
-y
插入字符串作为tr标签的属性。
-z
插入字符串作为td标签的属性。
-C
添加cookie信息,例如:“Apache=1234”(可以重复该参数选项以添加多个),-C cookie-name=value 对请求附加一个Cookie:行,此参数可以重复,用逗号分割
-H
添加任意的请求头,例如:“Accept-Encoding: gzip”,请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A
添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P
添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开,password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
-X
指定使用的代理服务器和端口号,例如:“127.0.0.1:88”。
-V
打印版本号并退出。
-k
使用HTTP的KeepAlive特性。
-k
使用HTTP的KeepAlive特性。
-d
不显示百分比。
-S
不显示预估和警告信息。
-g
输出结果信息到gnuplot格式的文件中。
-e
输出结果信息到CSV格式的文件中。
-r
指定接收到错误信息时不退出程序。
-h
显示用法信息,其实就是ab -help。
虽然ab可以配置的参数选项比较多,但是,一般情况下我们只需要使用-c和-n参数就可以了
ab -n 1000 -c 100 http://www.ml.com/api/user/userLogin//上例表示总共访问http://www.ml.com/api/user/userLogin这个接口1000次,100并发同时执行
3.测试报告
4.数据分析
(1)
(2)网络上消耗的时间的分解:
3.请求的响应时间,整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间
其中 50% 的用户响应时间小于 364 毫秒
66 % 的用户响应时间小于 373 毫秒
以此类推
最大的响应时间小于 1559 毫秒
原文:https://blog.csdn.net/qq_43485197/article/details/87916647