JMeter-01-性能测试基础知识介绍
JMeter-01-性能测试基础知识介绍
- 开篇词
- 性能测试常见分类
- Web服务的主要指标
- 前端页面的主要指标
- 数据库的主要指标
开篇词
参加工作这些年来,性能测试做过不少,主要用的LoadRunner 11和JMeter。LoadRunner可以说功能非常强大,但是售价嘛,你们懂的,据说要几十万刀(老板,压测计划先等下,我先去卖个房~),然后你会遇到各种问题,比如“怎么破解?”、“破解后新密钥提示not allowed。。。what?竟然要改注册表?”,“用管理员运行为啥子会被禁止?”、“终于运行上了。。。Controller can not create Vuer?”、“Vuser终于建好了。。。什么?最多就100个?”,然后,一天过去了,我摸着更加稀薄的头顶,陷入了沉思。。。。
直到我遇到了JMeter,免费?开源?好了就你了,先上车再说~~于是有了这个JMeter系列的博文,用以记录我的学习过程。不过我也不会完全生硬的去照搬官网,我尽量把实际使用过程中的骚操作,小技巧等记录下来(铁子你是最骚的 ~)
PS:当然不是说LoadRunner不好,实际上LR的强大程度是完全对得起它的售价的(无敌的Analysis报表分析器默秒全),如果之后有精力,我也会分享LR的学习过程。
在开始之前,我觉得有必要把性能测试的一些基础概念介绍下:
性能测试常见分类
1.负载测试(Load Testing):负载测试简单来说,就是测试系统在不同环境、不同条件下的负载能力。通常需要评估系统的吞吐量、响应事务、事务处理速率等等性能指标。
2.压力测试(Stress Testing):类似于数学中的去极限,这种测试就是用于验证系统对于压力能做出正常响应的临界值,即瓶颈。
3.容量测试(Volume Testing):用于确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。
Web服务的主要指标
对于Web服务,我们主要需要关注以下指标:
1.RT(Response Time):响应时间。
响应时间是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间,单位一般为秒或毫秒。
2.HPS(Hits Per Second):每秒点击次数
即用户每秒向Web服务器提交的HTTP请求数,单位是次/秒。HPS是评估虚拟用户产生的负载量的最直观的指标。
3.TPS(Transaction per Second):每秒处理事务数
系统每秒处理事务数,单位是次/秒。这个指标记录的是系统在每秒钟内,各个事务通过、失败以及停止的数量,TPS是考察系统性能的一项重要指标。
4.QPS(Query per Second):每秒处理查询次数
单位是次/秒。对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。
5.FR(Failure Ratio):错误率
错误率指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。稳定性较好的系统,其错误率应该由超时引起,即为超时率。
不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4%。
6.Connections:连接数
每秒连接数是显示每秒建立的TCP/IP连接数。理想情况下,很多HTTP请求都应该使用同一连接,而不是每个请求都新打开一个连接。通过每秒连接数图可以看出服务器的处理情况。
7.Throughput:吞吐量
吞吐量是指服务器每秒的吞吐量。其度量单位是字节,表示用户在任何给定的每一秒从服务器获得的数据量。可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。
8.SR(Successful Rounds):成功的请求
所有请求中,成功的请求,及其数量。
9.FR(Failed Rounds):失败的请求
所有请求中,失败的请求,及其数量。
10.SH(Successful Hits):成功的点击次数
所有的点击中,成功的点击次数。
11.FH(Failed Hits):失败的点击次数
所有的点击中,失败的点击次数。
前端页面的主要指标
对于页面前端,我们主要需要关注以下指标:
1.首次显示时间
在浏览器地址栏输入URL按回车到用户看到网页的第一个视觉标志为止。单位是毫秒。
2.OnLoad事件时间
浏览器触发onLoad事件的时间,当原始文档和所有引用的内容完全下载后才会触发这个事件。单位是毫秒。
3.完全载入的时间
所有onLoad JavaScript 处理程序执行完毕,所有动态的或延迟加载的内容都通过这些处理程序触发的时间。单位是毫秒。
4.页面大小
整个页面的大小。单位是KB。
5.请求数量
从网站下载资源时所有网络请求的总数。单位是次。
6.DNS时间
DNS查找时间。单位是毫秒。
7.连接时间
连接时间就是浏览器与Web服务器建立TCP/IP连接的时间。单位是毫秒。
8.服务器时间
服务器处理时间。单位是毫秒。
9.传输时间
内容传输所用时间。单位是毫秒。
10.等待时间
等待某个资源释放的时间。单位是毫秒。
数据库的主要指标
对于数据库,我们主要需要关注以下指标:
1.SQL耗时
执行SQL的耗时。单位是毫秒。
2.QPS
执行SQL时,每秒的查询次数。单位是个。
3.TPS
执行SQL时,每秒的事务次数。单位是个。
4.Key Buffer命中率
索引缓冲区命中率。单位是百分之。
5.InnoDB Buffer命中率
InnoDB缓冲区命中率。单位是百分之。
6.Query Cache命中率
查询缓存命中率。单位是百分之。
7.Table Cache命中率
表缓存命中率。单位是百分之。
8.Thread Cache命中率
线程缓存命中率。单位是百分之。
9.锁等待次数
锁的等待次数。单位是次。
10.锁等待时间
锁的等待时间。单位是微秒。
参考资料:
《零成本实现Web性能测试——基于Apache JMeter》温素剑编著,电子工业出版社
https://help.aliyun.com/document_detail/29338.html?spm=a2c4g.11186623.6.613.5cc314767Pf3M6
JMeter-01-性能测试基础知识介绍相关推荐
- PLC编程入门-01基础知识介绍
PLC编程入门-01基础知识介绍 PLC的组成结构 PLC编程语言: PLC输入输出的特点 输入 输出 PLC的组成结构 简图 明细图 CPU:控制器和运算器本身就是CPU主要组成部分,和PC的CPU ...
- MapboxGL系列(一)基础知识介绍
MapboxGL基础知识介绍 文章目录 MapboxGL基础知识介绍 前言 一.Mapbox是什么? 二.Mapbox常用服务工具介绍 1.mapboxgl.js 2.mapbox studio 3. ...
- OpenGL基础知识介绍和简单使用
OpenGL基础知识介绍 OpenGL简介 OpenGL 专业词解析 1.OpenGL上下文[context] 2.渲染 3.顶点数组和顶点缓冲区 4.着色器程序Shader 5.顶点着色器(Vert ...
- NLP汉语自然语言处理入门基础知识介绍
NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...
- 【 MATLAB 】逆离散余弦变换(idct)的基础知识介绍
基础知识介绍 逆离散余弦变换从离散余弦变换 (DCT) 系数中重建序列.idct 函数是 dct 函数的逆. The DCT has four standard variants. For a tra ...
- 视频编解码的理论和实践1:基础知识介绍
近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...
- OpenGL开发之旅基础知识介绍
最近由于手机项目中需要用到OpenGL ES的知识,所以这段时间正在研究OpenGL的相关知识.因为OpenGL ES是OpenGL的剪裁版本,所以我直接从OpenGL入手,然后再去看OpenGL E ...
- UICC 之 USIM 详解全系列——UICC基础知识介绍
本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G算力网络技术标准研究. UICC 之 USIM 详解全系列--UICC(TS102 ...
- view基础知识介绍(一)
view基础知识介绍 view是一种界面层的控件的一种抽象 分为view和viewGroup viewGroup继承自view 也就是说view本身可以是单个控件 也可以是一个控件组 例如:一个vie ...
最新文章
- AI一分钟|美国第一家!Waymo商业自动驾驶打车服务正式获批
- 利用libevent 和线程池实现高并发服务器的设计
- python扫描proxy并获取可用代理ip列表
- 蛋白质:结构和功能 Proteins: Structure and Function
- 通过计算TCO体现固态盘的真正价值
- 诈骗者如何伪造电子邮件地址,以及如何分辨
- mysql 5.6.34 二进制下载_linux下安装mysql二进制版本(5.6.34)
- Oozie 调用sqoop导数据出现NoClassDefFoundError问题
- 2018_09_25_参加医学人工智能大会的个人思考
- wyd1520 写的ASP高亮类
- dcp7080d怎么加墨粉_兄弟7080打印机怎么加粉
- 识别中Excel的空值和空格值
- 怎样了解存在---辩证唯物主义认识论
- 然爸读书笔记(2014-4)----史玉柱自述:我的营销心得
- tensorflow离线安装
- Swagger官网与官方文档
- ECONOMICS REPORT - The United States Postal Service Warns of Default
- Java8函数式接口与Lambda表达式
- java.io.FileNotFoundException: class path resource [com/wisely/highlight_spring4/ch2/aware/text.txt]
- 智多星大数据分析云平台实践