性能测试: 用于测量特定负载下机器性能的测试。
验证系统在实际运行情况下,满足功能需求。
验证系统可以满足可伸缩性需求。
可以结合压力测试, 来验在极端负载下的系统性能。
什么情况下做性能测试:
项目开始的时候,尽早的检测出糟糕的技术应用。 确保e2e的可测试性。揭开性能需求的面纱。
项目开发的正常间隔,尽早的发现开发产生的性能问题,并修复这些问题。 作为自动化回归测试和持续集成测试的一部分做做性能的冒烟测试。
系统测试和用户接受度测试的时候。
如何准备性能测试:
提前计划
获得需求(hitrate, response time, concurrency user or session num.)
对可测量性的设计(有足够的,可配置的用来测量时间都花费在什么地方的log,DB连接,URL,cache)
获得测试数据(合同要求,从log获得,问用户和业务分析,运行功能测试,监控系统)
搭建测试环境(测试环境尽可能在数据,软件,设置方面和生产环境一致。调研,文档化任何有偏差的情况。)
选择测试工具
创建测试配置文件(确保测试的可重复性,可定制的数据范围,可定位的测试数据。专注于应用频率高的应用。实际的分布环境,要有峰值,要能模拟request实际的hit rate.)
运行性能测试:
协调测试(和系统管理员协调好,以帮助解决问题。不要和其他性能测试时间冲突。)
准备环境(做冒烟测试,保证所有东西就位。系统预热。保证日志和监控系统可用。)
运行(注意本地还是外部接口有问题。)
可文本化的测试结果(仔细的准备测试运行数据, 开始,结束时间,软件版本,测试配置文件版本,测试结果汇总,任何遇到的问题。完整的相关的log。)
解决性能问题:定位瓶颈(研究操作系统平台,数据库tuning;检测应用容器: console,jmx;查看log;剖析code,eclipse TPTP,JProfiler,JProbe)
考虑可用的解决方案(纵向:内存,cpu,带宽;横向:增加server,LB;平台配置调优,os,容器;profile rewrite code)
实施更改,重新测试(不要同时做多个更改,记录下已经做过的更改,避免重复劳动。)
JMeter 简介: JMeter不用安转,下载解包即可应用。
JMeter目录结构:bin,docs,extras,lib,printable_docs
Test Plan: Test Plan 就是JMeter要运行的用例,配置,controler,timer,assertion,report等等的组合。用JMeter做性能测试首先要搭建Test Plan。
Test Plan 组件:Thread group, sampler, configuration elements, logic controllers, assertions, listeners,timer, pre-processors,post-processors.
WorkBench:用来存放Test Plan 组件,以便重复使用;还用来创建非Test Plan组建,proxy(用来录制页面test plan),显示JMeter 属性,创建HTTP镜像server。