目录
一、什么是性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
二、性能测试的目的
- 评估系统的能力
- 识别体系中的弱点
- 系统调优
- 验证稳定性
三、性能测试的分类
- 基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能
- 并发测试:模拟客户端请求,在单位时间内(S)同时发起一定量的请求,验证系统是否具有并发性的问题,并发测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程
- 负载测试:不断增加请求压力,直到服务器某个资源项达到饱和(比如CPU使用率达到90%+)或某个指标达到安全临界值(比如运维的监控告警阈值or拐点);也叫阶梯式压测,一般主要用来寻找性能的拐点,验证系统在测试环境不同的请求压力下能否正常运行
- 压力测试:给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷
- 容量测试:采用负载测试策略,验证在现有测试环境下被测系统的最大性能表现(可接受的最大性能表现,不一定是最优性能表现)
- 稳定性测试:以恒定的并发数(根据负载测试的结果,CPU使用率在70%时对应的并发数),验证系统在混合场景下的性能表现
- 容错恢复测试:验证系统能否在出现故障的情况下仍能保持正常提供服务的能力或出现故障后的自我恢复能力
四、性能测试步骤
- 准备工作:系统基础功能验证,测试工具饿选择、业务场景分析(可选择系统常用的业务场景以性能瓶颈比较明显的业务场景)
- 测试计划:性能测试目标、时间、性能测试产出
- 测试脚本设计与开发:测试环境设计、测试场景设计、测试用例设计、脚本和辅助工具的使用(可以录制但是不推荐)
- 测试结果分析:是否达到性能目标、系统瓶颈分析、存在缺陷和可优化地方、监听资源分析
五、测试工具jmeter
Jmeter可以作为web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和服务器的响应,如此就可以很容易地生成性能测试脚本,进而通过线程组来模拟真实用户对web服务器的访问压力。
使用步骤:测试计划—脚本录制设置—录制脚本—调试脚本—场景设置—结果分析
六、jemter目录
七、jmeter八大配置
- 有什么配置元件:
- 执行顺序:
配置原件>前置处理器>定时器>取样器>后置处理器(有结果才执行)>断言(有结果才执行)>监听器(有结果才执行)
八、元件的作用域:
九、元件中的各类组件:
- 每一个功能实现就称为一个组件(最小单位)
- 作用域:
- 取样器是作用域的参考物,本身无所谓作用域的概念
- 以结果树为代表的大部分组件:作用域:直接父级取样器+直接兄弟取样器
- 以逻辑控制器为代表的组件:只对子级取样器有效
十、报告查看
- 响应时间:指用户从发出请求到接收完响应之间的总耗时,由网络传输耗时、服务处理耗时等多个部分组成,通常以毫秒作为单位。与吞吐率的关系:吞吐率是以单位时间内的请求处理来计算,更高的吞吐率意味着更低的响应时间
- 百分位响应时间:相对于平均响应时间来说,百分位响应时间通常更能反映服务的整体效率。现实世界中用的较多的是98%的百分位响应时间
- 吞吐量:吞吐量越高,代表服务处理的效率越高。
- 吞吐率和并发数是两个完全独立的概念。拿银行柜台举例子,并发数指同时有多少人往银行柜台涌来,吞吐率指银行柜台一段时间内可以服务多少个人,在性能测试中两者呈现一种关联关系,并发数增大时,吞吐率也会随之上升,并发数超过某个边界值后,吞吐率则会下降(用户过多,花在上下文切换的开销急剧增大,又或者内存消耗过多)
十一、服务器监控
- 服务器端主要监控服务器的CPU、IO、网络等各项指标的组件,可通过在服务器安装监听程序,程序端安装接收程序:
- 监听程序:ServerAgent- https://github.com/undera/perfmon-agent,使用端口号:4444(服务器端启动)
- 接收程序:PerfMon (Servers Performance Monitoring)
- 将ServerAgent放在被测服务器(根目录或任意位置),解压,进入目录,mac、linux环境执行startAgent.sh启动,默认使用4444端口(如果没有执行权限,可先赋予执行权限:chmod 777 startAgent.sh),若是端口被占用可使用./startAgent.sh -udp-port 0 -tcp-port xxxx (xxxx为新端口号)修改端口号。Windows环境,双击startAgent.bat启动;
- 首先下载jmeter插件管理器:https://jmeter-plugins.org/install/Install/,下载后放在jmeter安装目录下的lib\ext,然后重启jmeter(注意版本),选择选项即可看到插件管理器,可在这管理插件
- 在脚本中添加监听器jp@gc - PerfMon Metrics Collector,点击Add Row,添加服务器IP、端口号、监听资源,启动后若是没有图片显示,将线程组中循环次数设置为永久