【JMeter】性能测试知识和工具

发布于:2025-06-02 ⋅ 阅读:(34) ⋅ 点赞:(0)

目录

何为系统性能

何为性能测试

性能测试分类

性能测试指标

性能测试流程

性能测试工具: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


网站公告

今日签到

点亮在社区的每一天
去签到