Mac下的Web性能压力测试工具:ab(ApacheBench)
Web开发,少不了的就是压力测试,它是评估一个产品是否合格上线的基本标准。
ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具。apache自带ab工具,可以测试Apache、IIS、Tomcat、Nginx等Web服务器,因为apache是跨平台的,所以在Mac、Linux、Windows等系统下,只要安装了apache就能使用ab工具。
Ubuntu系统安装测试工具:sudo apt-get install apache2-utils
CentOS系统安装测试工具:yum -y install httpd-tools
Windows系统Apache下载地址:https://www.apachehaus.com/cgi-bin/download.plx
mac自带的apache中的ab是有最大并发限制的,您可以重新下载一个apache并且编译(可以参考这篇文章),安装之前记得卸载原来的哦。
ab是非图形化的并发测试工具,没有Jmeter、Loadrunner那样有各种场景设计、各种图形报告和监控,只需一个命令即可,有输出描述,可以简单的进行一些压力测试。当然,您也可以选择webbench、siege、http_load、Load impact、阿里云PTS等工具进行很方便的测试。
Mac下自带apache,查看版本:
apachectl -v
Server version: Apache/2.4.34 (Unix)
Server built: Feb 22 2019 20:20:11
查看ab版本:
ab -V
ab压力测试工具的用法,查看:
ab --help
或者
man ab
# 按Ctrl+z组合键,或者按q键退出
例如:
ab -c 并发数 -n 请求数 URL
ab工具常用参数:
-n :总共的请求执行数,缺省是1;
-c: 并发数,缺省是1;
-t:测试所进行的总时间,秒为单位,缺省50000s
-p:POST时的数据文件
-w: 以HTML表的格式输出结果
ab -n 100 -c 10 -w http://www.baidu.com/ >> baidu.html
# 结果界面和下面例子是一样的,只是以html文件形式保存而已。
下面,我们以请求百度为例:
ab -n 100 -c 10 https://www.baidu.com/
下面是运行结果:
// apache版本信息
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.baidu.com (be patient)…..done
// 请求返回header类型
Server Software: BWS/1.1
// 请求ip或者域名
Server Hostname: www.baidu.com
// 请求端口,当前请求为https所以端口为443,请求https端口80
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
TLS Server Name: www.baidu.com
Document Path: /
// 第一个成功返回的文档的字节大小
Document Length: 227 bytes
// 并发数
Concurrency Level: 10
// 从建立连接到最后接受完成总时间
Time taken for tests: 1.407 seconds
// 完成请求数
Complete requests: 100
// 失败请求数
Failed requests: 0
// 从服务器接收的字节总数
Total transferred: 89300 bytes
// HTML接收字节数,减去了Total transferred中HTTP响应数据中的头信息的长度
HTML transferred: 22700 bytes
// 吞吐率:每秒请求数(总请求数/总时间,相当于LR中的每秒事务数TPS)
Requests per second: 71.07【#/sec】(mean)
// 用户平均请求等待时间
Time per request: 140.709【ms】(mean)
// 服务器处理每个请求平均响应时间,mean表示为平均值
Time per request: 14.071 [ms] (mean, across all concurrent requests)
// 这些请求在单位时间内从服务器获取的数据长度
// 计算公式:Total trnasferred/ Time taken for tests
Transfer rate: 61.98 [Kbytes/sec] received
// 连接消耗时间分解
Connection Times (ms)
min mean[+/-sd] median max
最小值 平均值 标准差 中间值 最大值
Connect: 60 92 16.6 93 167
Processing: 18 32 11.2 30 97
Waiting: 18 30 9.9 30 97
Total: 77 124 21.4 122 208
// 按完成请求的百分比,得出完成请求中花费时间最长的那一个请求的时间,也就是这些请求完成时间的最大值(毫秒)
Percentage of the requests served within a certain time (ms)
// 50%请求完成时间的最大值是122毫秒
50% 122
66% 130
75% 139
80% 140
// 90%请求完成时间的最大值是148毫秒
90% 148
95% 164
98% 182
99% 208
// 100%请求完成时间的最大值是208毫秒(最长请求)
100% 208 (longest request)
ab性能指标
在进行性能测试过程中有几个指标比较重要。
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关;
b、不同的并发用户数下,吞吐率一般是不同的。
计算公式:总请求数/处理完成这些请求数所花费的时间,即:
Request per second=Complete requests/Time taken for tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2、并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3、并发用户数(Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
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。
原文转载:https://xushanxiang.com/2019/10/mac-web-ab.html
Mac下的Web性能压力测试工具:ab(ApacheBench)的更多相关文章
- 【转】Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- [转] Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- 转:Web性能压力测试工具之ApacheBench(ab)详解
PS:网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个自带的,名为ab的程序,可以对Apache或其它类型的服务器进行网 ...
- 三种web性能压力测试工具
三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...
- [AapacheBench工具]web性能压力测试工具的应用与实践
背景:网站性能压力测试是性能调优过程中必不可少的一环.服务器负载太大而影响程序效率是很常见的事情,一个网站到底能够承受多大的用户访问量经常是我们最关心的问题.因此,只有让服务器处在高压情况下才能真正体 ...
- web性能压力测试工具http_load/webbench/ad
http_load 下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz 程序非常小,解压后也不到100K 居家 ...
- (总结)Web性能压力测试工具之WebBench详解
PS:在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力 ...
- Web性能压力测试工具之Siege详解
PS:Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进 ...
随机推荐
- 8 Linux 文件类型
Linux 系统中的文件是没有扩展名的. 1.通过 ls -l 文件名,看第一个字符判断文件类型: - 普通文件(文本文件.二进制文件.压缩文件.电影.图片等) d 目录文件 b 设备文件(块设 ...
- LeetCode 48. 旋转图像(Rotate Image)
题目描述 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 1: ...
- python接口自动化框架搭建
一.在搭建接口自动化测试框架前,我觉得先需要想明白以下几点: ① 目前情况下,绝大部分接口协议是http,所以需要对http协议有个基本的了解,如:http协议请求.响应由哪些部分组成,常用的meth ...
- Spring学习之==>入门知识
一.Spring是什么? Spring 是一种轻量级的.非侵入式的 Java/JavaEE 应用框架.Spring 使用的是基本的 JavaBean 来完成以前只可能由EJB完成的事情.然而,Spri ...
- Rxjava2实战--第四章 Rxjava的线程操作
Rxjava2实战--第四章 Rxjava的线程操作 1 调度器(Scheduler)种类 1.1 RxJava线程介绍 默认情况下, 1.2 Scheduler Sheduler 作用 single ...
- C基础知识(5):指针--传递指针给函数&返回指针的函数
下面从3个代码例子分别讲述以下2个知识点: (1) 传递指针给函数(参数类型为指针) (2) 返回指针的函数(返回类型为指针) #include <stdio.h> // 传递指针给函数& ...
- EF Code First 学习笔记:约定配置 Data Annotations+Fluent API
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就 ...
- Jmeter实现WebSocket协议的接口
1.下载websocket插件的jar包 网盘链接:https://pan.baidu.com/s/1FDcTHdQcDo6izgROMgB96w 密码:uags 该包下载完成后直接放在jmeter的 ...
- 将json文件转化为可视化
利用python转化为可视化: python -mjson.tool
- JS-T
取整函数ceil:向上取整floor:向下取整round:四舍五入 js获取当前页面信息this.location.href JS打印对象 var data = JSON.stringify(res. ...