性能测试需要知道的事儿

作者: 测试开发Kevin | 来源:发表于2020-03-23 14:08 被阅读0次

    说明

    本文介绍了性能测试中所涉及的通用内容(针对Java知识体系),注重介绍性能测试相关概念、相关工具、所需知识点以及注意事项。这里并没有对具体的某一环节进行详细讲解,适合想从整体上快速了解性能测试的同学阅读!

    什么是性能测试

    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

    性能测试相关概念

    1.       事务:性能测试中的事务是指用户在应用系统中为完成某项业务,所做的一组请求的集合。一项业务中可以包括多个事务,如 查询、保存等等都可分别定义为一个单独的事务

    2.       响应时间:应用系统对客户的某个操作正确反馈结果的时间。客户端与服务器建立连接时间+应用处理时间+数据库时间+传输时间的时间总和

    3.       TPS:每秒事务数

    4.       吞吐量:吞吐量是系统处理并发访问能力的综合指标,与响应时间和TPS息息相关。LR中的吞吐量是指服务器返回给客户端的数据字节的总和。不包括客户端发出的请求字节响应时间越小,TPS越高,系统的吞吐量也会越大

    5.       点击率:服务器每秒处理的请求数

    性能测试类型

    1.       压力测试:压力测试是不断的对系统施加压力,测试系统在用户不可接受或者失效时的所能承受的最大处理能力。如能够最大处理多大并发

    2.       极限测试:主要是检查程序对异常情况的抵抗能力

    3.       并发测试:主要指测试多个用户同时访问同一个应用程序、同一个模块、或者同数据记录时是否存在死锁或者其他功能和性能问题

    4.       稳定性测试:对系统持续长时间加载压力,以检测系统是否稳定的运行。如为了模拟7*24小时业务,持续测试5小时或者8小时

    性能测试流程

    性能测试工具的使用

    Loadrunner 商用,价格昂贵

    Jmeter开源免费,应用广泛

    性能测试监控工具之nmon

    Nmon是一款计算机性能系统监控工具,开源免费,我们可以使用它来监控服务器中的cpu,内存,网络,磁盘等指标。

    1.       Nmon安装:

    下载 wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz

    解压 tar zxvf nmon_linux_14i.tar.gz

    2.       Nmon运行:

    chmod 777 nmon_x86_64_sles11

    /usr/local/nmon/nmon_x86_64_sles11 -s3 -c3060 -f -t -m /root/nmonlog

    参数解释:

    -s10 每 10 秒采集一次数据。

    -c60 采集 60 次,即为采集十分钟的数据。

    -f 生成的数据文件名中包含文件创建的时间。

    -m 生成的数据文件的存放目录

    3.      Nmon解析

    通过nmon analyser v34a.xls打开.nmon文件,可以看到服务器中的cpu,内存,网络,磁盘等指标。

    性能测试报告的编写

    核心点包括:

    1.       详细阐述测试结果,问题分析

    2.       阐述项目背景

    3.       阐述测试时间,地点

    4.       阐述测试范围

    5.       阐述测试工具

    6.       描画环境部署架构图

    7.       描述测试环境(待测环境硬件配置,测试压力机硬件配置,核心表基础数据量,数据库和应用服务器的参数配置)

    8.       测试结果详细列举(包含每个场景每个事务90%响应时间,tps, 硬件资源利用率,JVM回收情况,TOPSQL分析,小结)

    调优

    关于性能测试优化能讲的内容很多,这里就不多介绍了,每一个技术点都涉及很深的知识面。

    总的来说,可以分为以下四个方面:

    Liunx调优

    中间件调优

    JVM调优

    数据库调优

    总结

    1.性能测试的核心,不是会使用lr或者jmeter等压测工具,会用工具只能说明你刚刚入门。

    2.性能测试的难点是当发现性能瓶颈时,能够排查出问题,这包括了对Liunx调优、中间件调优、

    JVM调优以及数据库调优。

    3.性能测试一定要明确测试目标,在已确认的硬件配置、数据量级上开展测试。

    4.沟通是关键,前期需要跟产品协调明确测试目标(测试所涉及的业务范围、TPS、响应时间),中期需要跟运维同事协调构建环境的相关事宜,最后发现问题时需要跟dba和研发同学协调解决方案。如果沟通不畅会导致项目的严重delay。

    相关文章

      网友评论

        本文标题:性能测试需要知道的事儿

        本文链接:https://www.haomeiwen.com/subject/fvlwyhtx.html