一、基础脚本搭建

🎯 核心目标:用 JMeter 搭性能测试 “骨架”(测试计划、线程组、取样器、监听器)

  • 📋 测试计划:整个测试的 “容器”,所有测试组件都放这里
  • 🧵 线程组:模拟多少用户(线程)、多久发请求(调度),像 “并发用户军团”
  • 🎲 取样器:具体发什么请求(HTTP、JDBC 等),是 “真实干活的小兵”
  • 👂 监听器(查看结果树):调试时看结果(请求是否成功、返回啥数据),但性能测试时要禁用
    → 为啥?👂监听器超占资源!图形界面(GUI)调试用用就行,真跑性能测试得用命令行(CLI),不然 JMeter 资源被分走,测试结果就不准啦~

二、命令行执行

💻 核心目标:真正跑性能测试时,不用图形界面,用命令行更高效!

  • JMeter 默认只给 1G 内存(1g),如果要模拟很多用户,可能不够用~
  • 两种命令行玩法:

    1. 简单版:jmeter -n -t 脚本.jmx -l 结果.jtl -e -o 报告文件夹
      → 适合快速跑脚本,生成测试报告
    2. 进阶版:java -Xms2g -Xmx2g … -jar ApacheJMeter.jar …
      → 手动分配内存(比如给 2G),想咋调就咋调,超灵活!

三、脚本咋来的?两种姿势

1️⃣ 纯手工写脚本

✍️ 适用场景:接口协议清晰(HTTP、TCP 等)、参数简单,直接对着接口文档写

  • 要搞懂:用啥协议?接口咋调用?参数咋传?然后在 JMeter 里一步步填信息,把请求拼出来~
2️⃣ 录制脚本

🎥 适用场景:接口参数复杂、流程多(比如浏览器里点来点去的操作),直接录更方便!

  • 咋录?
    1. 📦 先建 “测试计划”+“线程组”(得有个容器存录制的请求)
    2. 🔌 开 “HTTP 代理服务器”:设个端口(比如 8888),选好把录制的请求存到哪个线程组里
    3. 🔐 启动代理 → 生成 CA 证书(让浏览器 / APP 信任这个代理)
    4. 🎯 在要测试的 APP / 浏览器里,填代理信息(IP + 端口),然后正常操作!
      → JMeter 会自动把你操作的接口请求 “录” 下来,直接变成测试脚本~

四、脚本回放 & 调试

▶️ 核心目标:跑一遍脚本,看看请求对不对、结果准不准!

  • 👀 查看结果树
    • 🌱 绿色:网络请求发出去成功了,但结果对不对还得仔细看(比如返回数据是否符合预期)
    • 🔴 红色:请求直接失败(网络不通、参数错了…)
  • 🔄 HTTP 取样器的 “重定向”
    • 跟随重定向:显示跳转全过程(比如登录→跳首页,每一步都记下来)
    • 自动重定向:只显示最终结果(不管中间跳了多少次)
  • 🧹 瘦身脚本:回放时,把无关请求(比如页面广告、多余的图片请求)禁用 / 删掉,让测试更聚焦!

五、请求编码:让 JMeter 发对请求

📦 核心问题:发请求时,参数 / 内容编码不对,服务器可能看不懂你的请求(比如中文乱码),得统一编码规则!

1. 通用编码:取样器填 UTF-8

在 JMeter 的 ** 取样器(比如 HTTP 请求)** 里,把「内容编码」设为 UTF-8
→ 作用:让请求体(比如表单、JSON)的编码统一,避免因编码不一致导致服务器解析错误

2. 表单请求(application/x-www-form-urlencoded)

📝 场景:提交登录表单、简单参数时常用这种格式

  • 勾上「编码」选项!
    → 为啥?如果参数里有中文 / 特殊字符(比如 & %),不编码会乱套~
    → 效果:参数会被 urlencoded 处理(比如中文转 %E4%B8%AD%E6%96%87 ),服务器能正确解析
3. JSON 请求(application/json)

📝 场景:接口用 JSON 传参(现在超常见!)

  • 必须加 消息头管理器,填 Content-Type: application/json;charset=utf8
    → 作用:告诉服务器 “我发的是 JSON,编码 UTF-8”,避免 JSON 里的中文 / 特殊字符解析错误
4. 文件上传(multipart/form-data)

📝 场景:传图片、Excel 等文件时用

  • 请求格式选 POST multipart/form-data
    → 作用:让 JMeter 以 “分块” 方式传文件 + 参数,确保文件内容、文件名编码正确

六、响应编码:解决返回结果乱码

🔍 核心问题:服务器返回的数据,JMeter 看不懂(乱码),尤其是 Windows 电脑!

1. 为啥乱码?

Windows 系统默认编码是 GBK,JMeter 跟着也用 GBK。但如果服务器返回的是 UTF-8 编码的内容,JMeter 用 GBK 解析就会乱码(比如变成 ???? )

2. 咋解决?

改 JMeter 的 全局编码配置

  • 找到 JMeter 安装目录 → bin 文件夹 → 打开 jmeter.properties 文件
  • 搜索 sampleresult.default.encoding,改成:

    properties

    sampleresult.default.encoding=UTF-8
    
  • 重启 JMeter!之后解析响应就用 UTF-8,不乱码啦~

七、变量 & 参数化:让脚本更灵活

🔄 核心目标:脚本里的参数不能写死!要动态变(比如不同用户用不同账号,不同请求用不同参数)

1. 三种传参方式

JMeter 里常用这三类 “变量容器”:

  • 📌 用户定义的变量:全局变量,整个测试计划都能用(适合固定值,比如环境地址 https://test-api.com )
  • 📌 用户参数:线程组内动态传参(比如每个线程用不同的用户名、密码)
  • 📌 属性(Properties):属于 JMeter 工具本身的 “全局变量”,能跨线程组传参
    → 比如:线程组 1 登录拿到 token,线程组 2 要用这个 token 发请求,就靠属性传递~
2. 性能测试必用:参数化

📝 场景:模拟 100 个用户登录,总不能每个用户的账号密码都手写吧?

  • 用 CSV 数据文件设置 或 用户参数,把账号、密码存在文件里,让 JMeter 循环读、动态替换
  • 效果:每个线程(用户)用不同的参数,测试更真实(比如模拟 100 个真实用户操作)
3. 属性的特殊用法

💡 跨线程组传参:比如 “登录线程组” 拿到的 token,想给 “下单线程组” 用

  • 用函数 __setProperty 把 token 存成属性
  • 再用 __P 函数在另一个线程组取这个属性
  • 适合 混合场景测试(比如先登录、再下单、再付款,不同步骤拆分线程组)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92377.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92377.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92377.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零构建桌面写作软件的书籍管理系统:Electron + Vue 3 实战指南

📚 从零构建桌面写作软件的书籍管理系统:Electron Vue 3 实战指南 💡 本文深入探讨了基于 Electron Vue 3 技术栈的桌面写作软件中书籍管理系统的设计与实现,涵盖了书籍的创建、编辑、删除等核心功能的完整技术方案,…

2025华数杯数学建模A题【 多孔膜光反射性能的优化与控制】原创论文讲解(含完整python代码)

大家好呀,从发布赛题一直到现在,总算完成了2025华数杯数学建模A题【 多孔膜光反射性能的优化与控制】完整的成品论文。本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。A题论…

网络相关(AI回答)

网管交换机都支持带tag的以太帧吗DeepSeek-R1 回答完成深度思考完成 用时24秒,搜索全网20篇资料是的,所有网管交换机都支持处理和转发带Tag(802.1Q VLAN标签)的以太网帧,这是其核心功能之一。以下是关键要点&#xff1…

每日五个pyecharts可视化图表-bars(5)

探索pyecharts库中条形图的高级用法与定制技巧,打造精美数据可视化图表 在数据可视化中,条形图是最常用的图表类型之一。它能够清晰地展示不同类别的数据对比,帮助我们快速理解数据特征。本文将为您介绍pyecharts库中条形图的5种高级用法&…

分布式版本控制工具Git

一.开发中为什么需要Git因为在多人开发中Git可以管理代码,而且每个人都可以从库里面下载代码进行修改,每个人上传和修改Git都会有记录,如果出现大错误,还可以回退到正常版本。二.Git原理我们首先从代码库(Remote)下载代码到工作区…

OpenAI重磅开源GPT-oss:首款支持商用的AI Agent专属模型

今日凌晨,OpenAI宣布开源两款全新大模型——GPT-oss-120B(1168亿参数)与GPT-oss-20B(209亿参数),成为全球首个支持商业化应用的开放权重推理模型。该模型专为AI智能体(Agent)设计&am…

【STM32】GPIO的输入输出

GPIO是通用的输入输出接口,可配置8种输入模式,输出模式下可控制端口输出高低电平,用于点亮LED、控制蜂鸣器、模拟通信协议等;输入模式下可以读取端口的高低电平或者电压,用于读取按键、外接模块的电平信号、ADC的电压采…

5分钟了解OpenCV

在数字化时代,图像和视频已经成为信息传递的核心载体。从手机拍照的美颜功能到自动驾驶的路况识别,从医学影像分析到安防监控系统,视觉技术正深刻改变着我们的生活。而在这背后,OpenCV 作为一款强大的开源计算机视觉库&#xff0c…

Oracle 关闭 impdp任务

Oracle 关闭 impdp任务 执行 impdp system/123456 attachSYS_EXPORT_TABLE_01 执行 stop_jobimmediate

数据结构——链表2

1.2 实现单链表 在上一篇文章中&#xff0c;单链表的实现只有一少部分&#xff0c;这一篇接着来了解单链表剩下的接口实现。 SList.h#pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>//定义单链表就是定义节点&#xff0c;因为单链表…

Windows和Linux应急响应以及IP封堵

目录 1、Windows入侵排查思路 1.1 检查系统账号安全 1.2 检查异常端口、进程 1.3 检查启动项、计划任务、服务 1.4 检查系统相关信息 1.5 自动化查杀 1.6 日志分析 系统日志分析 Web 访问日志 2、Linux 入侵排查思路 2.1 账号安全 2.1.1、基本使用 2.1.2、入侵排查…

MIT成果登上Nature!液态神经网络YYDS

2025深度学习发论文&模型涨点之——液态神经网络液态神经网络&#xff08;Liquid Neural Networks&#xff0c;LNN&#xff09;是一种受生物神经系统启发的连续时间递归神经网络&#xff08;RNN&#xff09;&#xff0c;其核心创新在于将静态神经网络转化为由微分方程驱动的…

AI 对话高效输入指令攻略(四):AI+Apache ECharts:生成各种专业图表

- **AI与数据可视化的革命性结合**:介绍AI如何降低数据可视化门槛,提升效率。 - **Apache ECharts:专业可视化的利器**:使用表格对比展示ECharts的特点、优势和适用场景。 - **四步实现AI驱动图表生成**:通过分步指南讲解从环境准备到图表优化的全流程,包含多个代码示例及…

vue2 基础学习 day04 (结构/样式/逻辑、组件通信、进阶语法)下

一、非父子通信-event bus 事件总线1.作用非父子组件之间&#xff0c;进行简易消息传递。(复杂场景→ Vuex)2.步骤创建一个都能访问的事件总线 &#xff08;空Vue实例&#xff09;import Vue from vue const Bus new Vue() export default BusA组件&#xff08;接受方&#xf…

ubuntu 20.04 C和C++的标准头文件都放在哪个目录?

在 Ubuntu 20.04 中&#xff0c;C 和 C 标准头文件的存放目录主要由编译器&#xff08;如 GCC&#xff09;的安装路径决定&#xff0c;通常分为以下两类&#xff1a;​1. C 标准头文件​C 语言的标准头文件&#xff08;如 <stdio.h>、<stdlib.h> 等&#xff09;默认…

change和watch

是的&#xff0c;你理解得很对&#xff01; change 与 v-model 的结合&#xff1a;change 事件通常用于监听 表单元素的变化&#xff0c;但它并不一定意味着值发生了变化。它主要是当 用户与输入框交互时&#xff08;如点击选项、选择文本框内容、提交表单等&#xff09;触发的…

分布式微服务--GateWay(1)

一、什么是微服务网关&#xff08;API Gateway&#xff09; 定义&#xff1a;微服务网关是整个系统请求的统一入口&#xff0c;负责请求转发、过滤处理、安全校验等。 作用&#xff1a; 请求路由 日志记录 权限控制 参数校验 解决跨域问题 黑白名单控制 限流、熔断、降级…

大文件断点续传(vue+springboot+mysql)

断点续传vue前端代码后端代码controller 层service层持久层主表&#xff0c;初始化单次上传文件表&#xff0c;单次上传所有的文件记录文件分块表科普信息参考其他博主 流程图 vue前端代码 这里是只做了demo示例&#xff0c;主线测试没什么问题&#xff0c;前端同学可参考修…

Nodejs》》MySql

Node.js 操作MySQL数据库 文档 # 项目要先安装mysql包npm i mysqlxx // 安装指定版本npm i mysql // 默认安装最新版本 # 连接 mysq// 使用连接池连接const mysql require(mysql)# 建立连接const db mysql.createPool({host:, // 数据库的IP地址user:ro…

金仓数据库常见问题(持续更新)

目录 1.查看大小是否敏感写参数&#xff0c;提示&#xff1a;未认可的配置参数 "case_sensitive" 2.sys_backup.sh init时提示can not connect the primary node 3.设置逻辑备份运行脚本时提示错误are not allowed to use this program (crontab) 4.修改表字段类…