您的位置:首页 > 数码常识数码常识
AB压力测试(ab压测工具)
2025-05-10人已围观
AB压力测试(ab压测工具)
在学习ab工具之前,我们需了解几个关于压力测试的概念
ab压测工具
吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second=Complete requests / Time taken for tests
并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数 / 并发用户数),即 Time per request=Time taken for tests /( Complete requests / Concurrency Level)
服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即 Time taken for / testsComplete requests。可以看到,它是吞吐率的倒数,同时,它也=用户平均请求等待时间/并发用户数,即 Time per request / Concurrency Level。
ab工具简介
ab全称为:apache bench
在官网上的解释如下:
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
其他网站解释:
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
下载ab工具
Window官方下载地址:https:///cgi-bin/download.plx
下载完成后解压,修改解压根目录下的conf/httpd.conf文件的端口配置,默认是80端口,应该是被占用了,无法安装,可以自行修改为其他,我在这里修改为8088端口,然后输入命令安装:httpd -k install
启动ab工具
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去,我是在bin目录下打开命令行的
开始测试
输入命令ab -n 100 -c 10 http://test.com/ 其中-n表示请求数,-c表示并发数
其余命令请参见 http://apache.jz123.cn/programs/ab
ab参数说明
有关 ab 命令的使用,我们可以通过帮助命令进行查看。如下:
下面我们对这些参数,进行相关说明。如下:
参数
说明
-n
在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c
一次产生的请求个数。默认是一次一个。
-t
测试所进行的最大秒数。其内部隐含值是 -n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p
包含了需要 POST 的数据的文件。
-P
对一个中转代理提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。
-T
POST数据所使用的 Content-type 头信息。
-v
设置显示信息的详细程度 -4 或更大值会显示头信息,3 或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。
-V
显示版本号并退出。
-w
以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i
执行 HEAD 请求,而不是 GET。
-X
对请求使用代理服务器。
-x
设置 属性的字符串。
-y
设置
-z
设置
属性的字符串。
-C
对请求附加一个 Cookie 行。其典型形式是 name=value 的一个参数对,此参数可以重复。
-H
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,“Accept-Encoding:zip/zop;8bit”)。
-A
对服务器提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
-h
显示使用方法。
-d
不显示 “percentage served within XX [ms] table” 的消息(为以前的版本提供支持)。
-e
产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比 gnuplot 格式更有用。
-g
把所有测试结果写入一个 gnuplot 或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor 甚至 Excel 中。其中的第一行为标题。
-k
启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能。
-q
如果处理的请求数大于 150,ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 -q 标记可以抑制这些信息。
属性的字符串。
测试结果分析
上面的命令运行完毕后就出来测试报告了
这段展示的是web服务器的信息,可以看到服务器采用的是nginx,域名是wan.bigertech.com,端口是80
这段是关于请求的文档的相关信息,所在位置“/”,文档的大小为338436 bytes(此为http响应的正文长度)
这段展示了压力测试的几个重要指标
Concurrency Level: 100==>并发请求数Time taken for tests: 50.872 seconds==>整个测试持续的时间Complete requests: 1000==>完成的请求数Failed requests: 0==>失败的请求数Total transferred: 13701482 bytes==>整个场景中的网络传输量HTML transferred: 13197000 bytes==>整个场景中的HTML内容传输量Requests per second: 19.66 [#/sec] (mean)==>吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值Time per request: 5087.180 [ms] (mean)==>用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值Time per request: 50.872 [ms] (mean, across all concurrent requests)==>服务器平均请求处理时间,大家最关心的指标之三Transfer rate: 263.02 [Kbytes/sec] received==>平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题这段表示网络上消耗的时间的分解这段是每个请求处理时间的分布情况,50%的处理时间在4930ms内,66%的处理时间在5008ms内…,重要的是看**90%**的处理时间。关于登录的问题
有时候进行压力测试需要用户登录,怎么办? 请参考以下步骤:
先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来如果只用到一个Cookie,那么只需键入命令: ab -n 100 -C key=value http://test.com/ 如果需要多个Cookie,就直接设Header: ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2” http://test.com/总结
总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。
同类型的压力测试工具还有:webbench、siege、http_load等
开始测试
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去
我是在bin目录下打开命令行的 注意,下面的是错误的,因为需要在域名后加上/path
报错信息如下:
必须要接有path 所以我换一下测试命令:
-n 表示请求数,-c 表示并发数. s为path,表示指定测试地址,不指定可能会报”ab: invalid url” 错误. 另外还有-t 表示多少s内并发和请求
测试出来的数据如下:
因为ab工具消耗小,所以有些人也用来进行ddos攻击,算一种ddos攻击工具
[Linux]ApacheBench(ab)压力测试工具AB的简介
ab是apachebench命令的缩写。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等
ab的原理
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机
ab的安装
安装命令:yum -y install httpd-tools 查看版本命令:ab -V 查看参数说明:ab --help
ab的使用 常用方式:ab -c 500 -n 5000 http://localhost/
使用注意
1、MAC中应该是自带了Apache。
2、在使用ab命令时,并发了过高会出现错误:Too many open files,由于系统打开文件数量限制了。
查看系统打开文件数量,命令:ulimit -a
修改打开文件数量,修改成1024,命令:ulimit -n 1024
查看修改后情况,命令:ulimit -n
上面就是小居数码小编今天给大家介绍的关于(ab压测工具)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
记账小工具推荐2023(记账小软件哪个好)
音频格式转换工具哪个好用(音频格式转换软件有哪些)
pdf视图工具栏不显示如何调出来(pdf视图工具栏不见了)
吸管工具快速吸取PS界面外的颜色教程(ps颜色吸管工具怎么用)
153551
在学习ab工具之前,我们需了解几个关于压力测试的概念
ab压测工具
吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second=Complete requests / Time taken for tests
并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数 / 并发用户数),即 Time per request=Time taken for tests /( Complete requests / Concurrency Level)
服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即 Time taken for / testsComplete requests。可以看到,它是吞吐率的倒数,同时,它也=用户平均请求等待时间/并发用户数,即 Time per request / Concurrency Level。
ab工具简介
ab全称为:apache bench
在官网上的解释如下:
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
其他网站解释:
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
下载ab工具
Window官方下载地址:https:///cgi-bin/download.plx
下载完成后解压,修改解压根目录下的conf/httpd.conf文件的端口配置,默认是80端口,应该是被占用了,无法安装,可以自行修改为其他,我在这里修改为8088端口,然后输入命令安装:httpd -k install
启动ab工具
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去,我是在bin目录下打开命令行的
开始测试
输入命令ab -n 100 -c 10 http://test.com/ 其中-n表示请求数,-c表示并发数
其余命令请参见 http://apache.jz123.cn/programs/ab
ab参数说明
有关 ab 命令的使用,我们可以通过帮助命令进行查看。如下:
下面我们对这些参数,进行相关说明。如下:
参数
说明
-n
在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c
一次产生的请求个数。默认是一次一个。
-t
测试所进行的最大秒数。其内部隐含值是 -n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p
包含了需要 POST 的数据的文件。
-P
对一个中转代理提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。
-T
POST数据所使用的 Content-type 头信息。
-v
设置显示信息的详细程度 -4 或更大值会显示头信息,3 或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。
-V
显示版本号并退出。
-w
以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i
执行 HEAD 请求,而不是 GET。
-X
对请求使用代理服务器。
-x
设置 属性的字符串。
-y
设置
-z
设置
属性的字符串。
-C
对请求附加一个 Cookie 行。其典型形式是 name=value 的一个参数对,此参数可以重复。
-H
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,“Accept-Encoding:zip/zop;8bit”)。
-A
对服务器提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
-h
显示使用方法。
-d
不显示 “percentage served within XX [ms] table” 的消息(为以前的版本提供支持)。
-e
产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比 gnuplot 格式更有用。
-g
把所有测试结果写入一个 gnuplot 或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor 甚至 Excel 中。其中的第一行为标题。
-k
启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能。
-q
如果处理的请求数大于 150,ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 -q 标记可以抑制这些信息。
属性的字符串。
测试结果分析
上面的命令运行完毕后就出来测试报告了
这段展示的是web服务器的信息,可以看到服务器采用的是nginx,域名是wan.bigertech.com,端口是80
这段是关于请求的文档的相关信息,所在位置“/”,文档的大小为338436 bytes(此为http响应的正文长度)
这段展示了压力测试的几个重要指标
Concurrency Level: 100==>并发请求数Time taken for tests: 50.872 seconds==>整个测试持续的时间Complete requests: 1000==>完成的请求数Failed requests: 0==>失败的请求数Total transferred: 13701482 bytes==>整个场景中的网络传输量HTML transferred: 13197000 bytes==>整个场景中的HTML内容传输量Requests per second: 19.66 [#/sec] (mean)==>吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值Time per request: 5087.180 [ms] (mean)==>用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值Time per request: 50.872 [ms] (mean, across all concurrent requests)==>服务器平均请求处理时间,大家最关心的指标之三Transfer rate: 263.02 [Kbytes/sec] received==>平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题这段表示网络上消耗的时间的分解这段是每个请求处理时间的分布情况,50%的处理时间在4930ms内,66%的处理时间在5008ms内…,重要的是看**90%**的处理时间。关于登录的问题
有时候进行压力测试需要用户登录,怎么办? 请参考以下步骤:
先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来如果只用到一个Cookie,那么只需键入命令: ab -n 100 -C key=value http://test.com/ 如果需要多个Cookie,就直接设Header: ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2” http://test.com/总结
总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。
同类型的压力测试工具还有:webbench、siege、http_load等
开始测试
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去
我是在bin目录下打开命令行的 注意,下面的是错误的,因为需要在域名后加上/path
报错信息如下:
必须要接有path 所以我换一下测试命令:
-n 表示请求数,-c 表示并发数. s为path,表示指定测试地址,不指定可能会报”ab: invalid url” 错误. 另外还有-t 表示多少s内并发和请求
测试出来的数据如下:
因为ab工具消耗小,所以有些人也用来进行ddos攻击,算一种ddos攻击工具
[Linux]ApacheBench(ab)压力测试工具AB的简介
ab是apachebench命令的缩写。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等
ab的原理
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机
ab的安装
安装命令:yum -y install httpd-tools 查看版本命令:ab -V 查看参数说明:ab --help
ab的使用 常用方式:ab -c 500 -n 5000 http://localhost/
使用注意
1、MAC中应该是自带了Apache。
2、在使用ab命令时,并发了过高会出现错误:Too many open files,由于系统打开文件数量限制了。
查看系统打开文件数量,命令:ulimit -a
修改打开文件数量,修改成1024,命令:ulimit -n 1024
查看修改后情况,命令:ulimit -n
上面就是小居数码小编今天给大家介绍的关于(ab压测工具)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
记账小工具推荐2023(记账小软件哪个好)
音频格式转换工具哪个好用(音频格式转换软件有哪些)
pdf视图工具栏不显示如何调出来(pdf视图工具栏不见了)
吸管工具快速吸取PS界面外的颜色教程(ps颜色吸管工具怎么用)
153551
很赞哦! ()
下一篇:返回列表