ab命令 是一个测试你 Apache http 服务器的工具,你可以通过这个工具,指定一个单位时间内向 apache 发出的请求数量来看看你的 Apache 和机器配合的性能如何

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

一、安装

centos:yum install httpd-tools -y

ubuntu:apt install httpd-tools -y

二、命令格式

-n  即requests,用于指定压力测试总共的执行次数。
-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,指定打印帮助信息的冗余级别。
-w  以HTML表格形式打印结果。
-i  使用HEAD请求代替GET请求。
-x  插入字符串作为table标签的属性。
-y  插入字符串作为tr标签的属性。
-z  插入字符串作为td标签的属性。
-C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X  指定使用的和端口号,例如:"126.10.10.3:88"。
-V  打印版本号并退出。
-k  使用HTTP的KeepAlive特性。
-d  不显示百分比。
-S  不显示预估和警告信息。
-g  输出结果信息到gnuplot格式的文件中。
-e  输出结果信息到CSV格式的文件中。
-r  指定接收到错误信息时不退出程序。
-h  显示用法信息,其实就是ab -help。

三、命令使用场景

对api接口地址https://192.168.31.231:8282/help进行,并发用户100,1000次请求的压力测试

(GET方式) 

ab -c 100 -n 1000  https://192.168.31.231:8282/help

(POST方式) 

ab -c 100 -n 1000 -p postfile.ab https://192.168.31.231:8282/help

centos 内存压力模拟 linux 压力测试命令_请求头


Server Software: web服务器软件及版本 Server Hostname: 请求的地址 Server Port: 请求的端口 Document Path: 请求的页面路径 Document Length: 页面大小 Concurrency Level: 并发数 Time taken for tests: 测试总共花费的时间 Complete requests: 完成的请求数 Failed requests: 失败的请求数 Write errors: 写入错误 Total transferred: 总共传输字节数,包含http的头信息等 HTML transferred: html字节数,实际的页面传递字节数 Requests per second: 每秒处理的请求数,服务器的吞吐量(重要) Time per request: 平均数,用户平均请求等待时间 Time per request: 服务器平均处理时间 Transfer rate: 平均传输速率(每秒收到的速率)