性能测试之性能指标

前提:

  性能测试的概念:通过工具,找出获得系统在不同工况下的性能指标值

一、开展性能测试的顺序:

1、最先开始进行的-->负载测试

负载测试的概念:逐步增加系统负载,测试系统性能变化,并最终确定系统所能承受的最大负载量

关键词:逐步增加

eg:每天访问量几百万,基本上只需要增加10即可,可以快速找到系统的平衡值

最大负载值:即平衡的值怎么看,看服务器的处理能力在下降,响应时间长,会报错

2、找到最大值后,开始下一步:性能测试(增加起始量:start 的值)

3、最后测试服务器的稳定性-->压力测试

压力测试的概念:在较大的性能压力下,持续运行一个比较长的时间,看系统服务及各个资源利用情况

关键词较大压力+较长时间

目的:看服务器是否稳定

4、可靠性测试:一定的业务压力下,持续运行一段时间,查看系统是否稳定

关键词:是否稳定,一定的业务压力

含义:来看系统的稳定性,有没有日积月累的数据放在内存,cpu没有得到释放,(前期压力测试)

5、企业需要考虑-->容量测试

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

数据量级就要看数据库的索引

关键词:不同数据量级

二、性能测试主要指标:

企业关注的指标:

  服务器利用情况 -- 资源利用率

  能支持最大用户 -- 系统容量

  能支持的最大并发用户 -- 并发用户数

  是不是可以更换硬件提供性能 -- 可扩展

  能不能持续运行长时间不宕机 -- 稳定性

开发人员关注那些性能

  架构设计是否合理 -- 系统架构

  数据库设计 -- 数据库

  代码逻辑 -- 代码

  线程,同步,异步,队列 -- 实现技术

  资源配置 -- 稳定性 

主要指标:

1、并发  --> 狭义上:指同一个时间点执行相同的操作(如:秒杀)

        并发用户,一直增加人,一旦这些人同时做一个事,那就是并发用户

2、并发用户数(重要指标)--> 同一时间点,执行相同请求的用户数(系统用户数、在线用户数、线程数)

3、事务(Transaction)-- > 指一个客户机向服务器发送请求然后服务器作出反应的过程

    一个事务可以是一个请求,也可以是多个请求

    jmeter,默认一个接口请求就是一个事务,当前这个接口的指标值

4、响应时间(RT)重要指标 -->(直接用网线测试指数最为准确)

    从发起请求到收到请求响应的时间

    发送请求网络传输时间(用网线的原因:减少这个时间)+服务器处理时间+返回响应网络传输时间

5、TPS\QPS最主要指标:

  TPS(Transactions per Second):服务器每秒处理事务数,衡量服务器处理能力的最主要指标,是事务数,不是请求数。

  企业里QPS(Queries per Second):服务器每秒处理事务数,衡量服务器处理能力的最主要指标 --> 每秒查询率大

6、吞吐量(Throughput):单位时间内处理的请求数量(事务/s)

  (衡量网络,上行、下载都一样,就是等于TPS,网络足够宽,默认是一个请求一个事务,两个数值上相等。

  网络足够宽,一个事务多个请求,吞吐量不等于事务,1tps 3个吞吐量)

7、吞吐率 --> 单位时间通过的数据平均速率(KB/S)

8、点击率(Hit per Second)--> 每秒点击数

9、资源利用率(重要) --> 指服务器资源的使用程度,比如服务器(应用及数据库)的cpu利用率,内存利用率,磁盘利用率,内存利用率,不要超过80%

(16核或32核的服务器,要看16核的使用率,不能只看一个,单核是100%都可以,不要达到80%的使用率,16*80%,4个核的闲置)

三、性能测试步骤:

1、性能测试准备:

  (1)分析需求熟悉业务,可测性、明确性能测试指标;

  (2)了解软件功能、架构(docker、微服务);

  (3)指定测试计划,做好工作量评估、制定 测试模型(编辑测试用例)

 3、性能测试脚本开发:         

  (1)选取协议

  (2)制作脚本

  (3)调试脚本

  (4)验证脚本

4、性能测试脚本执行(试运行、场景执行)

5、结果分析与调优

  (1)、分析依据:结果图标

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

  (3)、调优:

  (4)、修改脚本和场景

6、测试报告与结果跟踪

你可能感兴趣的:(数据库,服务器,java)