代码改变世界

性能测试中的概念与主要指标

2023-12-23 18:08  颖ing  阅读(14)  评论(0编辑  收藏  举报

转换思维:性能测试不再是找bug,而在找性能指标。

性能测试一定要用工具,因为要模拟多用户操作。

性能测试:通过工具,找出或获得系统不同工况下的性能指标。

负载测试(“看看你有几斤几两”):逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量。超出最大负载量,就容易出现异常:比如相应时间超长、报错、宕机等。

负载测试如何寻找"拐点"?使用哪种方法进行测试? - 知乎 (zhihu.com)

压力测试(“鸭梨好大嗷”):在较大的性能压力下,持续运行一个比较长时间,看系统服务以及各资源利用情况。(较大压力就是负载测试中找出来的最大负载量之下;较长时间一般是7*24小时或者24小时的倍数)

可靠性测试:在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定。例如:秒杀,1000个用户1秒钟的性能指标,这种是性能测试,也是可靠性测试

容量测试:在一定的软、硬件条件下,在数据库不同数量级数据量的情况下,对系统中读/写比较多的业务进行测试,从而获得不同数据量级下的性能指标。

性能测试主要指标

并发

  • 侠义:同一时间点执行相同的操作(如秒杀)
  • 广义:同一时间点,向服务器发起的请求

并发用户数(重要指标):某一时间同时向软件系统提交请求的用户数,场景不一定事同一个

  • 系统用户数:软件系统注册的用户总数
  • 在线用户数:某段视角内访问的用户数,这些用户只是在线,不一定同时做某一件事,有可能只是挂机
  • 线程数:jmeter中,并发用户数可以理解为线程数

事务(Transaction):指一个客户机向服务器发送请求然后服务器做出反应的过程。jmeter中默认一个接口请求就是一个事务,也支持多个接口整体作为一个事务,例如下单业务,需要登陆->获取商品->下单->支付->获取支付结果等,需要调用多个接口,这种多个接口合并到一个事务中,实际就是一个业务的性能。

相应时间(RT)(重要指标):从发起请求到收到请求响应的时间。发送请求网络传输时间+服务器处理时间+返回响应网络传输时间

TPS\QPS(最主要指标)

  • TPS(Transactions per Second ):服务器每秒处理事务数,衡量服务器处理能力的最主要指标
  • QPS(Queries per Second):每秒查询率
  • 差异:一个Transactions 可能有多个Queries,如一个登陆,要查询用户存不存在、用户的密码是否正确等

吞吐量(Throughput):单位时间内处理的请求数量(事务/s)。衡量网络的,如果网络没有任何的瓶颈,那吞吐量和TPS数值上保持一致

吞吐率:单位时间通过的数据的平均速率(kB/s)

点击率(Hit per Second):每秒点击数。jmeter比较少,一般LoadRunner有这个指标。

资源利用率:指服务器资料的使用程度,比如服务器(应用及数据库)的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等,一般都不要超过80%。

性能测试结果分析思路:服务器硬件瓶颈>网络瓶颈>服务器os瓶颈(参数配置、数据库、web服务器)>应用瓶颈(sql语句、数据库设计、业务逻辑、算法)