最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程

废话不多说,请看正文!

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%的处理时间。

关于登录的问题

有时候进行压力测试需要用户登录,怎么办?
请参考以下步骤:

  1. 先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来

  2. 如果只用到一个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性能测试工具使用相关推荐

  1. 转 Mac 使用ab性能测试工具

    Mac 使用ab命令进行压测 1.在Mac中配置Apache ①启动Apache,打开终端 sudo apachectl -v 如下显示Apache的版本 sudo apachectl start 这 ...

  2. apache性能测试工具ab使用详解

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  3. 开源性能测试工具 - Apache ab 介绍

    开源性能测试工具 - Apache ab 介绍 简介 ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可 ...

  4. 性能测试工具ab和wrk

    ab测试工具是Apache安装后自带的性能测试工具,Windows Linux OSX都可以 ab -h 查看帮助命令 $ ab -n1000 -c10 http://39.107.77.94:808 ...

  5. 性能测试工具-ab介绍

    1 ab工具简介: 全称:apache bench:ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如 ...

  6. python编写测试工具-python 写一个性能测试工具(一)

    国庆重新学习了一下go的gin高性能测试框架. 用JMeter来测试gin与flask接口的性能,差别很大. 为什么我自己不尝试写一个性能工具,性能工具的核心就是 并发 和 请求. 请求可以选择Pyt ...

  7. 史上最全的Web性能测试工具大全(下 )

    2019独角兽企业重金招聘Python工程师标准>>> 本文继续为大家介绍Web开发中常用的性能测试工具,如果你有其他性能测试产品推荐,欢迎交流! Opera Dragonfly O ...

  8. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具

    更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...

  9. java接口测试工具_这 5 款实用性能测试工具,你会如何选择?

    当我们做性能测试的时候,测试协议需要用到性能测试工具.市场上有很多可以做性能测试的工具.有些是收费的,有些是开源免费的.选择的时候它是否友好支持所有的协议呢?现在带大家来看看一些行业中常用的流行的性能 ...

  10. Web Service 性能测试工具比较

    背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒). 以微信服务器为例,每个用户用独立的登录token,做各种操作 ...

最新文章

  1. python OOP (1)
  2. 马明哲新年内部讲话透露新战略:全面开启3.0时代
  3. #135. 二维树状数组 3:区间修改,区间查询
  4. [Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类
  5. oracle利用分隔符,组合查询想表达的任何话
  6. matlab目标支持包安装问题,配置系统目标文件 - MATLAB Simulink - MathWorks 中国
  7. android js调试
  8. [LeetCode]:116:Populating Next Right Pointers in Each Node
  9. CSS选择器种类及使用方法
  10. 面向对象(OOP)基本概念及基本语法
  11. 问题七:operator+=()是什么鬼函数?(重载操作符)
  12. 《数据分析思维手册》和《数据分析师的职场真相》全集整理好啦,下载保存!...
  13. keras中文版官方文档
  14. 基于布隆过滤器实现敏感词识别和过滤 1
  15. 今年本人英语六级分数剖析
  16. 计算机网络路由器和网关设置路由器,【计算机网络】网关和路由器功能的有哪些不同...
  17. 哪些窗体置顶得程序是怎么实现得?
  18. iOS 3DTouch 功能
  19. 文本prompting综述
  20. Java代码审计手册(1)

热门文章

  1. html中引入的图标库,动态引入阿里图标库
  2. 电影院购票系统ssm (含论文)
  3. 行情数据接口-美股版
  4. c语言大作业:员工工资管理系统
  5. python-docx读取word段落的样式字体
  6. office 2010 安装时出错 MSXML版本6.10.1129.0终极解决方案
  7. 使用python抓取分析链家网二手房数据
  8. 2021-05-24
  9. Mysql官网下载教程
  10. 【路径规划】全局路径规划算法——Dijkstra算法(含python实现)