zoukankan      html  css  js  c++  java
  • 性能测试

    响应时间:包括网络传输时间,应用服务器延迟时间(应用服务器,数据库服务器)

    并发用户数:同一时刻与服务器进行数据交互的用户数量。

      注意:是用户同时施压、要与服务器有数据交互

    吞吐量:单位时间内服务器处理客户请求的数量,用请求数/秒来衡量,它直接体现服务器的称赞能力

    性能测试什么时候开始介入

    要开展性能测试是有一些前提的:
    首先,基础的功能测试要完成,并且要保证系统是处于比较稳定的状态;

    然后,当系统的使用人数比较多或者并发量比较大的时候可以考虑性能测试;因为如果系统使用的人比较少,其实是没必要进行性能测试的;

    然后,了解本次性能测试的目标:QPS预估多少,CPU或者内存预计占比多少,磁盘占用等等;

    接着,了解当前应用的服务器配置及和其他服务的关联关系,当前时间点的QPS等,确保性能测试时不会被别的服务影响,或者影响到别的服务;

    然后,准备好性能测试工具Jmeter或者LoadRunner等;

    以上都准备好后,就可以开始性能测试工作了。

    性能指标:  

      响应时间、并发用户数、吞吐率、tps(transaction per second)、点击率、资源利用率、QPS(query per second)

      和事务相关:RT(response time)、ART(average response time)、TPS、事务成功率

    资源使用率

    如下图所示,资源指标与硬件资源消耗直接相关,而系统指标则与用户场景及需求直接相关:

    资源指标:

    CPU使用率:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%;

    内存利用率:内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%;

    磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time

            (磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能;

    网络带宽:一般使用计数器Bytes Total/sec来度量,其表示为发送和接收字节的速率,包括帧字符在内;判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较;

    系统指标:

    并发用户数:单位时间内与系统发生交互的用户数;

    在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求;

    平均响应时间:系统处理事务的响应时间的平均值;事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间;

    事务成功率:性能测试中,定义事务用于度量一个或者多个业务流程的性能指标,如用户登录、保存订单、提交订单操作均可定义为事务,单位时间内系统可以成功完成多少个定义的事务,

              在一定程度上反应了系统的处理能力,一般以事务成功率来度量;

    超时错误率:主要指事务由于超时或系统内部其它错误导致失败占总事务的比率;

    性能测试划分:

      负载测试、压力测试、配置测试、可靠性测试

    负载测试:通过对被测系统不断加压,直到系统资源达到饱和状态,该方法主要是为了找到系统的最大负载能力

    压力测试:指系统已经达到一定的饱和程度(如CPU、磁盘达到饱和状态),是否可以正常工作一段时间(40~60分钟)

    配置测试:指不同的软件(比如tomcat)、硬件以及网络环境配置下,运行一种或多种业务,在一定虚拟用户情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置。

    可靠性测试:和压力测试不同,系统不需要在高负荷压力下运行(一般是极限的80%),但是会在混合场景下进行测试(不是单纯的登录注册),持续1~3天。

     并发测试:通过模拟用户并发访问,观察系统是否存在死锁、系统处理速度是否明显下降等其他的一些性能问题。需要增加集合点才算并发。

     容量测试:在数据库中构造不同数量基本的数据记录,一般造1.5年数据,以确定数据库的最佳容量和最大容量。

    性能测试启动准则:

    1. XXX系统性能测试相关功能点功能无重大bug,无影响性能测试执行的bug。
    2. 性能测试环境准备完毕,包括:
    1) 测试用机到位,系统安装完成//加压机---负载测试
    2) 应用系统部署成功,数据库相关数据导入完成
    3) 网络配置正确,连接通畅,满足压力测试条件(防止因网络信号问题影响测试结果)
    4) 性能测试计划、方案评审完成
    5) 性能测试脚本开发完成
    6) 性能测试环境验收完成

    哪些功能需要做性能:

    Ø 用户使用频繁、并发压力不大对系统响应时间要求较高的功能,比如单点登录功能。
    Ø 调用频繁、并发压力大且对系统响应时间要求高的接口功能, 
    Ø 需要能长期稳定运行的后台任务, 

    业务简单且不常使用的功能不在本次测试范围,比如系统管理,这些功能大部分是有系统管理员来操作,且第一次配置好后,以后用到的次数非常少。

    性能测试流程:

    确定性能测试目标(测试对象,测试功能点,性能指标)

    选择性能测试工具(LR、Jmeter)

    根据测试计划设计性能测试

    运行测试脚本

    监控分析被测系统

    性能调优

    常见的性能瓶颈:

    服务器硬件瓶颈(CPU、内存、硬盘读写)

    网络瓶颈

    中间件瓶颈(参数配置、数据库、web服务器等)

    应用瓶颈(sql语句、数据库设计、业务逻辑、算法等)

     性能调优优先级:

    服务器、中间件(tomcat)的配置调优->前端调优->程序逻辑调优->框架调优

    性能测试注意事项:

    需要独立的环境,要及时进行,不要在服务器进行性能测试

    LR四大组件:

    发生器:(VuGen,Visual User Generator)捕捉用户的业务流,并最终将其录制成一个脚本。

    控制器:(Controller)

    负载发生器:

    分析器:

    性能测试用例:

    性能测试只需要一个脚本

    添加集合点、添加事务、设置检查点、参数化、关联

    集合点一般用于并发测试

    部分参考:https://www.cnblogs.com/imyalost/p/7117320.html

  • 相关阅读:
    JavaScript之DOM查询
    JavaScript之this解析
    Qt之pro文件解析
    Qt5 调试之详细日志文件输出(qInstallMessageHandler)
    修改 Ubuntu的源为阿里源
    Unable to acquire the dpkg frontend lock
    gcc编译中文字符串后,windows控制台输出乱码
    stm32f103 time2配置,转载
    取反
    单片机,struct ,union定义标志,节约RAM
  • 原文地址:https://www.cnblogs.com/x991788x/p/13589932.html
Copyright © 2011-2022 走看看