[关闭]
@MRsunhuimin 2023-07-26T05:13:34.000000Z 字数 3298 阅读 39

性能测试方法

测试


https://blog.csdn.net/weixin_42914706/article/details/117493280

1. 性能测试概述

    概念:就是使用性能测试工具模拟正常、巅峰及异常负载的状态。对系统的各项性能指标进行测试活动;

    目的:

    1,验证系统是否满足预期性能需求,包括系统的执行效率,稳定性,可靠性,安全性等;

    2,分析软件系统在各种负载水平下运行状态,提高性能和效率;

    3,识别系统缺陷,寻找系统中可能存在的性能问题,定位系统瓶颈并解决问题

    4,系统调优、探测系统设计与资源之间的最佳平衡,改善并优化系统性能;

2. 性能测试指标

2.1 响应时间

https://img-blog.csdnimg.cn/202106202233553.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkxNDcwNg==,size_16,color_FFFFFF,t_70

    t1:客户端   -   Web服务器  -  数据库服务器
    t2:Web服务器
    t3:数据库服务器
    t1:数据库服务器   -   Web服务器  -  客户端


    网络传输时间:  t1 t4

    服务器处理时间: t2 t3

2.2 吞吐量

    每秒钟系统能够处理的请求数、任务数。

    一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。

    单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。

    系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间

    QPS(TPS):每秒钟request/事务 数量

    并发数: 系统同时处理的request/事务数

    响应时间: 一般取平均响应时间

    QPS(TPS)= 并发数/平均响应时间

2.3 并发/并发数/并发用户数

    并发:
    狭义:同一时间做相同的事情

    广义:同一时间做不同事情、混合场景

    性能测试:简单的狭义并发、然后再广义的并发,即:先做简单接口性能测试、在做业务性能测试、最后做混合业务场景性能测试

    并发数:系统同时处理的request/事务数  即单位时间内向服务器发起请求的用户数

    并发用户数:用于模拟真实用户想服务器发起请求的性能测试虚拟用户数量

    系统用户数:只要访问过系统的用户、注册这个系统的用户

    在线用户数:当前正在访问的系统用户,不一定有压力

    系统用户数>=在线用户数>并发数。

2.4 TPS(transaction per second)

http://www.mybatis.cn/archives/1470.html
https://www.jianshu.com/p/a9e84addc9b1

    每秒钟request/事务 数量

    TPS是每秒事务数,但是事务是要靠用户做出来的,假如1个用户在1秒内完成1笔事务,那么TPS明显就是1;如果某笔业务响应时间是1 ms,那么1个用户在1s内能完成1000笔事务,TPS就是1000了;如果某笔业务响应时间是1s,那么1个用户在1s内只能完成1笔事务,要想达到1000 TPS,至少需要1000个用户;因此可以说1个用户可以产生1000 TPS,1000个用户也可以产生1000 TPS,无非是看响应时间快慢。

    QPS(TPS)= 并发数/平均响应时间    或者   并发数 = QPS*平均响应时间

2.5 资源利用率

    CPU
    内存
    磁盘
    I/O  磁盘的换入换出

3. 性能测试种类

    性能测试覆盖范围很广,包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等;

3.1 负载测试

    通过逐步增加系统负载,测试系统性能的变化,并在满足最终确定性能指标的情况下,系统所能承受的最大负载量的测试

    负载测试是正常范围的测试

3.2 压力测试(强度 测试)

    逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试

    压力测试可以揭露那些只有在高负载下才会出现bug,如:同步问题、内存泄漏等;

    颠峰值测试:属于压力测试一种,他是瞬间将压力加载到最大,测试软件在极限压力下的运行情况;

3.3 并发测试

    是指通过模拟用户并发访问,测试多用户并发访问同一应用、同一个模块或数据记录时是否存在死锁或者其他性能问题。测试并无标准,只是测试是否出现性能方面问题;

3.4 配置测试

    是指调整软件系统的软硬件环境,测试各种黄静对系统性能影响,从而找到系统各项资源的最优分配原则。配置测试不改变代码,只改变软硬件配置,例如:安装软件更新数据库,配置更好的Cpu和内存等;

3.5 可靠性测试

    是指给系统加载一定的业务压力,使其持续运行一短时间 ,测试系统能否稳定运行,由于加载运行时间较长,因此可靠性测试可以测试是否有内存泄漏问题;

3.6 容量测试

    是指在一定硬件及网络环境下,测试系统所能支持的最大用户量、最大存储量等。容量测试通常与数据库、系统资源有关,用于规划将来需求增长时,对数据库和系统资源的优化;

3.7 失败测试

    对于有冗余备份和负载均衡的系统,通过失败测试来检验如果系统局部发生故障,用户能否继续使用系统,用户受到多大的影响,如几台机器做均衡负载,一台或几台机器垮掉后系统能够承受的压力

4. 性能测试流程

https://img-blog.csdnimg.cn/20210623000704868.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkxNDcwNg==,size_16,color_FFFFFF,t_70

Created with Raphaël 2.1.2Start分析性能测试需求制定性能测试计划设计性能测试用例编写性能测试脚本测试执行与监控运行结果分析提交性能测试报告Endyesno
  • 1,分析性能测试需求
    此步骤是整个性能测试基础,测试需求不明确则整个测试过程都毫无意义;在这个阶段,测试人员需要收集相关资料信息、与开发沟通、对整个项目了解,针对性能测试部分进行分析,确定测试目标;
  • 2,制定性能测试计划
    整个性能的步骤都按照测试计划执行,其核心内容包括:确定测试环境、确定性能验收指标、设计测试场景、准备测试数据
  • 3,设计性能测试用例
    测试用例时根据测试场景为测试准备的数据,测试人员需要在测试中设计出足够多的测试用例以达到最大的测试覆盖;
  • 4,编写测试脚本
    测试脚本就是虚拟用户的执行操作;使用脚本省去手动执行的麻烦,并降低错误率;
    要求:
    选择正确的协议,脚本的协议要与被测软件协议保持一致;
    性能测试工具一般可以自动生成测试脚本,测试人员可以手动编写脚本,脚本也可以使用多种语言、
    编写脚本也要遵循代码规范,保证代码质量;
  • 5,测试执行及监控
    每个阶段测试人员需要按照测试计划执行测试用例,并对测试过程进行严密监控,记录各项数据变化。
    测试人员关注点:
    性能指标:性能指标的变化,响应时间、吞吐量、并发等
    资源占用与释放情况:性能测试时,CPU、内存、磁盘、网络等使用情况,系统停止后,各项资源是否正常释放;
    警告信息:软件出现问题时,要有警告信息,测试人员应及时关注;
    日志检查:进行性能测试时经常分析系统日志,包括操作日志,数据库日志等
  • 6,运行结果分析
    性能测试结束后,需对收集整理测数据并分析,将数据与客户对比数据进行对比,是否满足客户性能要求
  • 7,提交性能测试报告
    测试完成需要编写性能测试报告,阐述性能测试的目标、性能测试环境、性能测试用例、脚本使用情况、性能测试结果及性能测试过程中遇到的问题和解决方案。软件会多次性能测试,需数据归档,能及时回归;

5. 性能测试工具

    loadrunner----VuGen、Controller、Analysis

    Jmeter

6. 补充

    1, 压力测试与负载测试两者区别

    相同点:都是性能测试

    负载测试强调系统正常工作情况下的性能指标

    压力测试的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注