说明
本文介绍了性能测试中所涉及的通用内容(针对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。
网友评论