超实用压力测试工具-ab工具

article/2025/10/8 13:34:29

写在前面


在学习ab工具之前,我们需了解几个关于压力测试的概念

  1. 吞吐率(Requests per second)
    概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
    计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
    Request per second = Complete requests / Time taken for tests

  2. 并发连接数(The number of concurrent connections)
    概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

  3. 并发用户数(The number of concurrent users,Concurrency Level)
    概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

  4. 用户平均请求等待时间(Time per request)
    计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
    Time per request = Time taken for tests /( Complete requests / Concurrency Level)

  5. 服务器平均请求等待时间(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工具


进入apache官网 http://httpd.apache.org/ 下载apache即可

启动ab工具


以windows环境下,apache安装路径为C:\apache\Apache24\为例

打开终端,输入命令
cd C:\apache\Apache24\bin
即可启动ab

开始测试


输入命令
ab -n 100 -c 10 http://test.com/
其中-n表示请求数,-c表示并发数

其余命令请参见 http://apache.jz123.cn/programs/ab.html

测试结果分析


上面的命令运行完毕后就出来测试报告了

完整测试报告

  • 这段展示的是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工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。
同类型的压力测试工具还有:webbench、siege、http_load等

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等学习资源。


http://chatgpt.dhexx.cn/article/91CXm8uC.shtml

相关文章

接口压测测试

Jmeter测试接口(包括登陆操作) 创建HTTP Request先登录参考: http://blog.csdn.net/ab_2016/article/details/78249686 注意:勾选FollowRedirects 自动重定向Redirect Automatically:HttpClient接收到请求后&#x…

接口测试及常用接口测试工具

首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你…

【接口压测】

感悟 最近在做的项目中,需要去做核心接口的压测工作,初次在实际项目中进行接口压测,本人属实有点慌张. 在经历了几周的时间,自己的压测脚本,从最初的单线程,变成多线程,最后又通过协程的方式去实现. 接口压测,首先需要去选择一款适合自己的压测工具,jmeter,loadrunner,locust等…

Postman 接口压力测试

第一步:点击Collections中的 按钮新增一个Collection 第二步:新增一个 request 第三步(可选):可以分别对 collection 和 request 进行重命名 第四步:修改 request 中的 RequestBody 以及 URL,…

常用的接口测试工具有哪些?

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"加群",加入新技术群 来源:8rr.co/nxMW Poster 这是火狐浏览器的一个插件,如果你想调试服务器,发出HTTP请求,Poster操作简单,你先…

接口测试工具

一、Apifox和Postman各自的定义 1、Postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 。 2、A…

api接口压力测试

可借助Apache组件进行压力测试 E:\phpStudy\Apache\bin\ab.exe 使用于http请求 E:\phpStudy\Apache\bin\abs.exe 使用于https请求 出现如下图就是请求成功的,执行命令 abs.exe -c 60 -n 1000 https://test.shop.cn/user/login 用于GET请求,并发60&…

一个简单的接口压力测试

最近接到一个需求,对一个微信公众号上的一个登录进行压力测试,看是否存在压力问题。 刚拿到需求有点瞢,1.这个程序不是公司的开发做的,是第三方做的2.没有问题说明,只能自己想把法。 好吧,领导要求完成任务…

API 接口压力测试

1、下载siege的安装包,我用的是siege-4.0.4.tar.gz 版本的。 下载地址:http://download.joedog.org/siege/ cd siege-4.0.4 ./configure make sudo make install 2、测试 post接口 siege -c 100 -t 10s -b http://192.168.***.***:7027/predict P…

ab一款好用的压力测试工具

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

强大的接口测试与压力测试工具——postmanjmeter

对于系分的项目,我使用了postman做接口测试,用jmeter做压力测试。下面来谈谈这两个工具的使用方法。 Postman postman是一款很方便的接口测试工具,有app也有chrome插件,它可以模拟用户发起的各类HTTP请求,然后获得相应…

压力测试工具----JMeter

一、压力测试介绍及性能指标 1.压力测试介绍 压力测试考察当前软硬件环境下系统能承受的最大负荷并帮助找出系统的瓶颈所在,压测都是为了系统在线上的处理能力和稳定性维持在一个标准的范围内,做到心中有数.   使用压力测试,我们有希望找到…

接口压力测试:Jmeter【专门做接口压力测试】

QPS/Throughput极限测试: 一压力测试课程介绍 1、2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介:讲解课程安排,使用的Jmeter版本讲课风格:涉及的组件,操作配置多,不会一次性讲解&#xff…

接口压力测试工具JMeter

工欲善其事必先利其器 1,JMeter JMeter是Apache用的Java语言编写的压力测试工具可以做一下类型的测试 接口测试:对外部系统接口和本系统之间的接口这两个接口之间的测试,本系统之间各个内部系统接口之间的测试,没有界面支撑性能…

压力测试+接口测试(工具jmeter)

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在 linux/w…

接口压力测试工具(推荐)

做开发的同学一定会遇到接口对接,今天介绍两个对接测试两个我个人认为比较好的测试工具 postman和jmeter 1、postman通常用于做接口测试,同时也可以用于作为压力测试 2、jmeter做压力测试 通常我们用postman主要是接口请求测试,这里就不用…

查看linux系统网关地址,Centos/Linux下如何查看网关地址/Gateway地址

Centos/Linux下如何查看网关地址/Gateway地址? Linux下查看网关的命令还是很多的,不过如果IP是DHCP获取,那么有些命令是不适用的,当然也有通用的查询网关命令. 1.ifconfig -a 和 cat /etc/resolv.conf (主要查看ip/netmask和dns)…

linux 添加路由网关

1,查看网关 route -n2,删除和添加设置默认网关: route del default gw 192.100.10.0 route add default gw 192.100.10.03,添加网关/设置网关: route add -net 192.100.10.0 netmask 255.255.255.0 dev eth0 #…

Linux网关设置

root用户登录后,先关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld $ systemctl disable firewalld $ cd /etc/sysconfig/network-scripts/ $ vi ./ifcfg-ens33 进入这个界面 打开菜单栏——编辑——进入虚拟网络编辑器——点击 新的虚拟机ip需要设置在12…

LINUX查看IP 网关 DNS

https://www.cnblogs.com/liguangsunls/p/6803739.html ifconfig查看IP: netstat -rn 查看网关 route -n 查看网关 配置 dns : 使用 vim 修改 /etc/resolv.conf 文件, 修改好后可以使用 nslookup 和 dig 命令进行验证。 vi /etc/resolv.conf nslook…