ab性能测试工具使用
最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程
废话不多说,请看正文!
ab全称为:apache bench
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
安装
ab下载地址:https://www.apachehaus.com/cgi-bin/download.plx
下载软件时,注意自己系统的位数,下载对应的安装包,下载后的文件解压,例如将解压的文件夹放在D盘,从文件夹进入D:\httpd-2.4.52-o111m-x64-vc15\Apache24\bin ,在文件路径上输入cmd回车,就会进入该路径的命令窗口,输入 httpd -k install 运行,然后执行 ab -h 会显示一堆ab的帮助,则以及安装成功了。
参数详解
-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 | 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开转化为base64编码传值。 |
-P | 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。 |
-X | 指定使用的代理服务器和端口号,例如:”126.10.10.3:88”。 |
-V | 打印版本号并退出。 |
-k | 使用HTTP的KeepAlive特性。 |
-d | 不显示百分比。 |
-S | 不显示预估和警告信息。 |
-g | 输出结果信息到gnuplot格式的文件中。 |
-e | 输出结果信息到CSV格式的文件中。 |
-r | 指定接收到错误信息时不退出程序。 |
-h | 显示用法信息,其实就是ab -help。 |
用法样例
执行 ab -n 10 -c 10 “https://tieba.baidu.com/index.html?traceid=“ 会报如下错误:SSL not compiled in; no https support,如果出现这样的错误把ab后面加上abs,abs用于执行https的请求,ab拥有执行http的请求。
以上是测试结果的数据,除此之外还有其他一些信息,需要说明下,如下:
Server Software 表示被测试的Web服务器软件名称。
Server Hostname 表示请求的URL主机名。
Server Port 表示被测试的Web服务器软件的监听端口。
Document Path 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型。
Document Length 表示HTTP响应数据的正文长度。
Concurrency Level 表示并发用户数,这是我们设置的参数之一。
Time taken for tests 表示所有这些请求被处理完成所花费的总时间。
Complete requests 表示总请求数量,这是我们设置的参数之一。
Failed requests 表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。
Total transferred 表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。
HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。
Requests per second 吞吐率,计算公式:Complete requests/Time taken for tests
Time per request 用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。
Time per requet(across all concurrent request) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests 正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level。
Transfer rate 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests 这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
Percentage of requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request 即对于单个用户而言,平均每个请求的处理时间。
样例二:
输入命令
ab -n 100 -c 10 http://test.com/
其中-n表示请求数,-c表示并发数
测试结果分析
上面的命令运行完毕后就出来测试报告了
- 这段展示的是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性能测试工具使用相关推荐
- 转 Mac 使用ab性能测试工具
Mac 使用ab命令进行压测 1.在Mac中配置Apache ①启动Apache,打开终端 sudo apachectl -v 如下显示Apache的版本 sudo apachectl start 这 ...
- apache性能测试工具ab使用详解
网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...
- 开源性能测试工具 - Apache ab 介绍
开源性能测试工具 - Apache ab 介绍 简介 ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可 ...
- 性能测试工具ab和wrk
ab测试工具是Apache安装后自带的性能测试工具,Windows Linux OSX都可以 ab -h 查看帮助命令 $ ab -n1000 -c10 http://39.107.77.94:808 ...
- 性能测试工具-ab介绍
1 ab工具简介: 全称:apache bench:ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如 ...
- python编写测试工具-python 写一个性能测试工具(一)
国庆重新学习了一下go的gin高性能测试框架. 用JMeter来测试gin与flask接口的性能,差别很大. 为什么我自己不尝试写一个性能工具,性能工具的核心就是 并发 和 请求. 请求可以选择Pyt ...
- 史上最全的Web性能测试工具大全(下 )
2019独角兽企业重金招聘Python工程师标准>>> 本文继续为大家介绍Web开发中常用的性能测试工具,如果你有其他性能测试产品推荐,欢迎交流! Opera Dragonfly O ...
- [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...
- java接口测试工具_这 5 款实用性能测试工具,你会如何选择?
当我们做性能测试的时候,测试协议需要用到性能测试工具.市场上有很多可以做性能测试的工具.有些是收费的,有些是开源免费的.选择的时候它是否友好支持所有的协议呢?现在带大家来看看一些行业中常用的流行的性能 ...
- Web Service 性能测试工具比较
背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒). 以微信服务器为例,每个用户用独立的登录token,做各种操作 ...
最新文章
- python OOP (1)
- 马明哲新年内部讲话透露新战略:全面开启3.0时代
- #135. 二维树状数组 3:区间修改,区间查询
- [Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类
- oracle利用分隔符,组合查询想表达的任何话
- matlab目标支持包安装问题,配置系统目标文件
- MATLAB Simulink
- MathWorks 中国
- android js调试
- [LeetCode]:116:Populating Next Right Pointers in Each Node
- CSS选择器种类及使用方法
- 面向对象(OOP)基本概念及基本语法
- 问题七:operator+=()是什么鬼函数?(重载操作符)
- 《数据分析思维手册》和《数据分析师的职场真相》全集整理好啦,下载保存!...
- keras中文版官方文档
- 基于布隆过滤器实现敏感词识别和过滤 1
- 今年本人英语六级分数剖析
- 计算机网络路由器和网关设置路由器,【计算机网络】网关和路由器功能的有哪些不同...
- 哪些窗体置顶得程序是怎么实现得?
- iOS 3DTouch 功能
- 文本prompting综述
- Java代码审计手册(1)