【JMeter】性能测试知识和工具
目录
何为系统性能
何为性能测试
性能测试分类
性能测试指标
性能测试流程
性能测试工具:JMeter(主测web应用)
jmeter文件目录
启动方式
基本元件:元件内有很多组件
jmeter参数化
jmeter关联
自动录制脚本
直连数据库
何为系统性能
时间:系统处理用户请求的响应时间
资源:系统运行时消耗的资源
何为性能测试
定义
使用自动化工具,模拟不同场景对软件各项性能指标进程测试和评估的过程
目的
- 评估当前系统的能力
- 找到性能瓶颈,优化性能
- 评估软件是否满足未来需求
性能测试分类
基准测试
作用:设定标准线,当系统的软硬件发生变化时就进行比对
用途:多用户并发,综合场景,优化前后性能变化
负载测试
作用:在满足各项性能指标下系统同时能到到的最大用户数量
用途:主要测高负载下系统资源消耗
稳定性测试
作用:一定数量的用户负载下系统能稳定运行的时间
压力测试
作用:在强负载的情况下,在系统处于峰值情况下是否有功能隐患,以及是否具有良好的容错能力和可恢复能力
场景: 极限负载下的破坏性压力测试 ;高负载下的长时间稳定性测试
并发测试
作用:短时间处理多个请求,测试系统并发处理能力
场景:主要测并发时资源的争抢问题
性能测试指标
响应时间
定义:发送请求开始到接受响应为止,不包括网页的渲染等
并发用户数
定义:同一时间发送的请求的用户数
吞吐量
定义:单位时间内客户端的请求数量
指标:QPS:每秒的请求数量;TPS:每秒的事务请求数量
点击率
定义:在页面点击后的请求数
错误率
定义:在高负载下的失败业务概率
资源利用率
定义:各个资源的使用情况
指标:
- CPU使用率:不高于75%-85%
- 内存(大小):<80%
- 磁盘(速率):<90%
- 网络(速率):<80%
性能测试流程
性能测试需求分析
- 明确被测系统的业务功能和技术架构
- 明确测试内容:高频使用的业务功能,逻辑复杂度高的业务,数据量大的业务
- 明确测试类型
- 明确测试指标
性能测试计划及方案
- 测什么:项目背景,测试目的,测试范围
- 谁来测:进度与分工。交付清单
- 怎么测:测试策略
性能测试用例设计
性能测试执行
建立测试环境,编写测试脚本, 性能测试监控,执行测试脚本
性能分析和调优
性能测试报告总结
测试工作的经过回顾,缺陷分析和调优,风险评估,性能测试结果,测试工作总结与改进
性能测试工具:JMeter(主测web应用)
jmeter文件目录
bin目录
作用:存放可执行文件和配置文件
docs目录
- 是JMerer的api文档,用于开发扩展组件
- API文档路径:apache-jmeter-5.6.3\docs\api\index.html
printable_doce目录
- 用户帮助手册
- 用户手册路径:apache-jmeter-5.6.3\printable_docs\usermanual\index.html
lib目录
作用:存放jmeter依赖的jar包和用户扩展所依赖的jar包
启动方式
找到jmeter的安装文件,在此目录下进入输入cmd,打开命令提示符,输入jmeter进入
基本元件:元件内有很多组件
元件
配置元件:初始化测试数据
前置处理器:对请求的操作
定时器:
- 同步定时器:累计一定的请求量后一起发
- 常数吞吐量定时器
- 固定定时器:必须添加在需要等待的HTTP请求的子节点下
取样器:
- HTTP请求
后置处理器:
- 对响应的操作
断言:
- 响应断言
- JSON断言
- 持续时间断言:指响应时间
监听器:
- 查看结果树:查看请求信息和响应信息
- 聚合报告:查看性能指标
逻辑控制器:
- IF控制器
- 循环控制器:控制器是可控制部分元件的执行次数和方式 ;线程组是控制全部元件的执行次数
- ForEach控制器
线程组:
- 定义:控制用于执行测试的一组用户
- 属性:
- 分类:
Setup线程组:预测试操作,所有脚本之前执行
普通线程组:执行测试用例,可以有1个或者多个(并行/串行—在测试计划下设置)
Teardown线程组:测试后操作,所有脚本之后执行
元件的加载顺序
- 有几个取样器,整个线程组就要加载几次
- 每个取样器加载的顺序是父级元件-同级元件-子级元件
- 样例:
jmeter参数化
定义全局变量
前置处理器->用户定义的变量
用户参数
- 前置处理器->用户变量
文件方式参数化
配置元件->CSV Data Set Config
函数
count函数:线程组的用户设为n个,循环可获不同的参数值
jmeter关联
存在依赖关系,一个请求的入参是另一个请求的出参
方法:在前一个请求的后置处理器提取参数,在后一个请求里以变量的形式使用
- 正则表达式提取器
- Xpath提取器
- JSON提取器
- 跨线程的关联
自动录制脚本
原理:在主机向服务端发送请求时经jmeter复刻一份
组件:测试计划(右键)->非测试元件->HTTP脚本记录器
步骤:
- 1.配置脚本记录器的参数
- 2.开启windows操作系统的浏览器代理
- 3.启动脚本记录器
直连数据库
步骤:
添加MySQL驱动jar包
方式一:在测试计划面板点击“浏览…“按钮,将你的JDBC驱动添加进来—本脚本可用
方式二:将MySQL驱动jar包放入到lib/ext目录下,重启JMeter—所有脚本可用
配置数据库连接信息
添加方式:测试计划 --> 线程组--> (右键添加) 配置元件 --> JDBC Connection Configuration
添加JDBC请求
添加方式:取样器->JDBC Request