性能测试是什么?
测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、可拓展性等性能指标<br>
性能测试目的
验证是否能达到用户的性能指标,发现软件存在的性能瓶颈并优化<br>
评估系统的能力
识别体系的弱点
系统调优
验证稳定性
性能测试方法
验收测试
模拟用户场景,给出需要关注的性能指标,测试执行,测试分析
如:100个并发用户的条件下进行A业务操作,响应时间不超过5s
负载测试
在一定的条件下,软件性能的表现;负载测试的预期是用户的性能指标得到满足
指标体现在:响应时间、交易容量、并发容量、资源使用率
压力测试
超负荷的交易量和并发用户数,在极端的条件下,远远高于用户的性能需求
压力负载的区别:系统面临压力下,能保持稳定,可以运行速度慢,但不能崩
并发测试
并发处理能力,一般和服务器建立大量的并发连接
通过客户的响应时间和服务端的性能测试来判定系统是否达到了既定的并发的指标
可靠性测试(稳定性)<br>
一定负载条件下长时间运行,看看系统是否有问题
如:内存是否会泄露,客户端和服务器的连接能否得到有效的释放
配置测试
通过被测软硬件的调整,了解不同环境对系统性能的影响
一般用于性能调优和规划能力
恢复性测试<br>
系统发生局部故障,用户能否继续使用系统。测试系统能否从错误状态中恢复到正常状态
采用热备份和负载均衡实现
基准测试
软件增加新模块,需要做基准测试,判断新模块对整个系统的性能影响。
需要打开/关闭新模块各做一次测试,以做比较
性能测试应用领域
能力验证
某系统在A条件下具备B能力
在已确定的环境下运行,根据典型的场景设计测试用例和方案
规划能力
性能调优
对于性能进行调优
确定基准环境、基准负载和基准性能指标
调优方向
软件架构、代码、硬件环境、tomcat参数
系统具有我们要求的性能力 或 在发生某种的条件下,系统具有如何的性能力
就是探索性、可拓展性
性能基准比较
就是在不设定明确的性能目标的情况下,通过每次更新后的性能表现变化
根据这些变化决定更新是否达到了预期目标
性能测试的流程
性能测试需求分析
明确要不要做性能测试
明确被测系统的特点、基本业务、关键业务、用户行为。
性能测试计划
明确性能测试团队人员及职责
明确测试环境与测试工具
测试场景设计
明确性能测试范围、性能测试目标及性能指标
明确性能测试策略(7种方法:负载、压力、并发.....)
性能测试用例的执行
执行性能测试脚本,监控性能数据
性能测试的分析与报告
分析性能测试结果并提交性能测试报告
Jmeter工具
模拟用户数
线程组--线程数(广义并发,在线用户数)<br>
常用监听器
察看结果树
断言结果
表格察看结果
子主题
聚合报告
图形化结果<br>
录制脚本
http 代理服务器 端口8888
设置目标控制器,线程组
浏览器设置好代理设置:127.0.0.1 端口8888 jmeter启动代理开始录制脚本
配置元件
http 请求默认值
http cookie管理器
http 消息头管理器
http cache管理器
cookie与cache缓存的区别
cookie--状态的保持
cache--资源文件 减轻服务器压力
参数化
CSV数据控件
用户自定义变量--格式:${变量名}
函数助手Random
逻辑控制器
仅一次控制器--用于登录业务
同步定时器(集合点)--模拟并发
用户数:0 等于线程数
超时:0 一直等待
循环控制器
关联技术
正则表达式:格式:(.+?)
正则表达式提取器
jmeter插件技术
在线安装/离线安装
插件放入lib/ext下
插件管理器
插件
插件管理器--jmeter-plugins-manager-1.3
资源监控插件--jmeter-plugins-perfmon-2.1 <br>
jp@gc - PerfMon Metrics Collector
使用此插件测试获取内存,监控等指标
前提是需要开启ServerAgent服务
编写性能测试报告
命令行执行脚本导出报告
jmeter -n -t d:\2020\vip.jmx(脚本路径文件) -l report.jtl(自定义名称) -e -o d:\2020\result(导出报告存放路径)
测试报告
性能测试方案
场景<br>
性能分析<br>
结论<br>
测试报告的组成
测试基本信息<br>
测试目的
目标读者
术语定义
参考资料
测试环境描述<br>
软/硬件环境
网络环境
测试工具
测试人员
测试案例执行分析<br>
测试用例执行情况
测试结果分析<br>
测试结果分析及建议<br>
性能测试综合分析
给出测试结论和建议<br>