性能测试
相关课程:https://www.bilibili.com/video/BV19P411Q7uL
在学习JMeter性能测试
之前,建议掌握JMeter接口测试
性能测试的价值及目的
常用的性能测试软件是 JMeter
和 Loadrunner
,在并发量不高的情况下,这两个完全够用
性能测试工具通过特定的方式对不同情景下的系统施加一定的压力:正常
、异常负载
、峰值
等,得到各项指标。保证系统的性能需求
说白了,就是看看系统在面对双十一、春节等高并发情况时能不能顶得住。主要评估的内容如下
评估系统的能力
:例如响应的时长等,是否达到标准识别系统的弱点
:查找影响系统性能的问题都是什么,然后解决问题,在有限的预算里达到最优的解决方案检查隐藏的问题
:高并发时,系统或硬件是否会引发正常情况下没有暴露出来的问题检验系统稳定性
:长期高压力下如果能顶得住,才是真的顶得住
性能测试的指标及测算
相关博客:
虚拟用户数
:用来模拟真实的用户。最简单的理解就是每个用户都是一个线程。在JMeter中就是用线程来模拟用户的。RPS模式下的虚拟用户数 = RPS x RT(秒)。
并发数
:系统能同时
处理的请求数量,也反应了系统的负载能力事务
:、一个事务是指一个客户端向服务器发送请求然后服务器做出响应的过程。一个事务是一个流程中某个或某些环节的称谓,一个流程可称为一个大的事务,在这个大的事务中包含许多小的事务。具体什么是事务在测试过程中由测试人员决定场景
:可理解为一个具体的测试用例。它是测试资源包括测试脚本、运行设置、运行用户数等的集合。在场景中,可以定义并发用户的数目,定义要运行的脚本。在一个场景中,可以是单个流程,也可以是多个流程的混合,响应时间
:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。TPS
:(Transactions Per Second) 客户端在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。TPS=事务数/秒
计算需要的TPS,示例如下:
例如今年的销量最高的一天进行了 10,0000
笔交易,需要计算明年需要的tps是多少才算达标
没有详细数据
一天有 24*60*60=86400
秒,所以TPS就是 10,0000/86400=1.157
,接近1.2
但是根据二八定律
:假定80%的事务是在20%的时间内完成的。
那么计算结果就是 (10,0000 * 0.8) / (86400 * 0.2) = 4.629
,也就是今年的TPS数值是4.6
有更详细数据
例如那 10,0000
笔交易,其中有 5,0000
笔交易是在一小时内完成的
那么计算结果就是 5,0000 / (1*60*60) = 13.88
,也就是今年的TPS数值是13.9
常规的业务增长量在30%左右,计算明年的TPS就是:(规定时间内单量 * 130%) / 规定时间秒数 = 明年需要的TPS
QPS
:(Queries Per Second) 每秒查询率。QPS基本类似于TPS,但是不同的是,对于一个Web页面的一次访问,形成一个TPS(就做一件事儿,打开Web网页);但一次Web页面请求,可能产生多次对服务器的请求(html、css、js、images、files等),服务器对这些请求,就可计入QPS之中。每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
衡量信息检索系统(例如搜索引擎或数据库)在一秒钟内接收到的搜索流量的一种常见度量。该术语在任何请求-响应系统中都得到更广泛的使用,更正确地称为每秒请求数。高性能、高并发、高可用(简称“三高”)要求的系统必须注意其QPS,才能知道何时扩容系统以处理更多请求。
QPS和TPS
QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”
RPS
:(Requests Per Second) 每秒处理请求率HPS
:每秒发起的请求率(真正的客户在界面上的点击次数),这个是基于客户端的,前面三个是基于服务端的吞吐量
:指系统在单位时间内处理请求的数量,表现了一个系统的承压能力。与request对CPU的消耗、外部接口、IO等等紧密关联。单个request对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。
性能测试计划
基准测试
、负载测试
、压力测试
、稳定性测试
、配置测试
、极限测试
、浪涌测试