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-性能测试基础知识介绍相关推荐

  1. PLC编程入门-01基础知识介绍

    PLC编程入门-01基础知识介绍 PLC的组成结构 PLC编程语言: PLC输入输出的特点 输入 输出 PLC的组成结构 简图 明细图 CPU:控制器和运算器本身就是CPU主要组成部分,和PC的CPU ...

  2. MapboxGL系列(一)基础知识介绍

    MapboxGL基础知识介绍 文章目录 MapboxGL基础知识介绍 前言 一.Mapbox是什么? 二.Mapbox常用服务工具介绍 1.mapboxgl.js 2.mapbox studio 3. ...

  3. OpenGL基础知识介绍和简单使用

    OpenGL基础知识介绍 OpenGL简介 OpenGL 专业词解析 1.OpenGL上下文[context] 2.渲染 3.顶点数组和顶点缓冲区 4.着色器程序Shader 5.顶点着色器(Vert ...

  4. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

  5. 【 MATLAB 】逆离散余弦变换(idct)的基础知识介绍

    基础知识介绍 逆离散余弦变换从离散余弦变换 (DCT) 系数中重建序列.idct 函数是 dct 函数的逆. The DCT has four standard variants. For a tra ...

  6. 视频编解码的理论和实践1:基础知识介绍

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

  7. OpenGL开发之旅基础知识介绍

    最近由于手机项目中需要用到OpenGL ES的知识,所以这段时间正在研究OpenGL的相关知识.因为OpenGL ES是OpenGL的剪裁版本,所以我直接从OpenGL入手,然后再去看OpenGL E ...

  8. UICC 之 USIM 详解全系列——UICC基础知识介绍

    本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G算力网络技术标准研究. UICC 之 USIM 详解全系列--UICC(TS102 ...

  9. view基础知识介绍(一)

    view基础知识介绍 view是一种界面层的控件的一种抽象 分为view和viewGroup viewGroup继承自view 也就是说view本身可以是单个控件 也可以是一个控件组 例如:一个vie ...

最新文章

  1. AI一分钟|美国第一家!Waymo商业自动驾驶打车服务正式获批
  2. 利用libevent 和线程池实现高并发服务器的设计
  3. python扫描proxy并获取可用代理ip列表
  4. 蛋白质:结构和功能 Proteins: Structure and Function
  5. 通过计算TCO体现固态盘的真正价值
  6. 诈骗者如何伪造电子邮件地址,以及如何分辨
  7. mysql 5.6.34 二进制下载_linux下安装mysql二进制版本(5.6.34)
  8. Oozie 调用sqoop导数据出现NoClassDefFoundError问题
  9. 2018_09_25_参加医学人工智能大会的个人思考
  10. wyd1520 写的ASP高亮类
  11. dcp7080d怎么加墨粉_兄弟7080打印机怎么加粉
  12. 识别中Excel的空值和空格值
  13. 怎样了解存在---辩证唯物主义认识论
  14. 然爸读书笔记(2014-4)----史玉柱自述:我的营销心得
  15. tensorflow离线安装
  16. Swagger官网与官方文档
  17. ECONOMICS REPORT - The United States Postal Service Warns of Default
  18. Java8函数式接口与Lambda表达式
  19. java.io.FileNotFoundException: class path resource [com/wisely/highlight_spring4/ch2/aware/text.txt]
  20. 智多星大数据分析云平台实践

热门文章

  1. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇8、无缝镶嵌产品生产
  2. DEVOPS:统一DEV、OPS和QA
  3. WORD排版技巧(一)
  4. 2020年6月7日日记
  5. 使用钉钉Api 向企业群发送文件 python
  6. 测试基础之一——静态测试,动态测试,黑盒测试,白盒测试,α测试,β测试的定义
  7. html实现文字滚动
  8. Android ToggleButton(自定义可滑动的ToggleButton控件)
  9. 项目经验之:针对昨日FDO连接SDF文件报错,国个GIS论坛给出了一个思路.帮助我过关.
  10. 「DNS」和「CDN」