Jmeter简介
基础介绍
Jmeter录制脚本的原始是配置一个HTTP代理,然后浏览器通过这个代理访问测试页面从而完成脚本录制。
一、下载安装
jmeter本身不需要安装,需要配置环境变量JDK,然后打开bin文件夹中的jmeter.vbs即可。建议jdk 1.7及以上版本。
基本祖成:
- 负载发生器:模拟多线程或多进程用户行为
- 用户运行器:模拟用户行为
- 资源生成器:测试过程中服务器、负载机的资源数据
- 报表生成器:查看可视化的结果数据
二、主要概念
- 测试计划(test plan)
是测试脚本的根节点。描述一个性能测试,包含本次测试所有相关功能。关于整个测试脚本的基础设置可以在测试计划中设定。 - 线程(threads)

setUp Thread Group:
一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行的定期线程组。
tearDown Thread Group:
一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后定期执行的线程组。
Thread Group:
添加使用的线程,一个线程组可看作一个虚拟用户组,每个线程为一个虚拟用户。 - 测试片段(test fragment)
是一组特殊的线程组,不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行。 - 控制器
有两种控制器:取样器(sampler)和逻辑控制器(Logic Controller)作用:用这些元件驱动处理一个测试(在Thread Group中添加控制器)
1)取样器

取样器是性能测试中向服务器发送请求,记录响应数据,记录响应时间的最小单元。jmeter支持多种类型的sampler,不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
2)逻辑控制器

包含两类元件:一类是Test Plan中sampler节点发送请求的逻辑顺序控制器,常用的有:if controller、switch controller、Loop controller等;另一类是用来组织和控制Sampler节点的,如:Transaction Controller等。 - 监听器(Listener)

对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果(Aggregrate Graph)、查看结果树(View Results Tree)、聚合报告(Aggregate Report)等。
以上五种元件即可构成一个简单的性能测试脚本
-
配置元件(Config Element)

用于提供对静态数据配置的支持。CSV Data Set Config可以将本地数据文件形成数据池(Data Pool);HTTP Request Defaults和TCP Sampler config等类型的元件可以修改sampler的默认数据。 -
定时器(Timer)

用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段,jmeter定义了Constant Times、Constant Throughput Tiems等不同类型的Timers。
throughput:吞吐量 -
断言(assertions)

用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。 -
前处理器(Pre Processors)

用于在实际请求发出之前对即将发出的请求进行特殊处理。
1)HTML Link Parser
是HTML链接解析器,用于从前一个sampler返回的html页面中按照规则解析连接和表单,再根据此处理器所在的sampler中的规则进行匹配修改,而后该sampler会执行。 -
后处理器(Post Processors)

用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据。
JMeter参数化
参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替。
- 参数化的四种方式及使用场景
| 参数化方式 | 使用场景 |
|---|---|
| User Parameters | 适用于参数取值范围很小的时候使用 |
| CSV Data Set Config | 适用于参数取值范围较大的时候使用灵活性强 |
| User Defined Variables | 一般用于Test Plan中不需要随请求迭代的参数设置,如:Host、Port Number |
| Function Helper Dialog中的函数 | 可作为其他参数方式的补充,如随机生成的函数 |
- User Parameters(用户参数)
添加路径:Http Request -> Add -> Pre Processors -> User Parameters
添加之后设置参数名和参数值
在Http Request中设置请求参数 - CSV Data Set Config(CSV 数据配置)
添加路径:Http Request -> Add -> Config Element -> CSV Data Set Config - User Defined Varivales(用户自定义变量)
添加路径:Thread Group -> Add -> Config Element -> User Defined Variables - Function Helper Dialog 中的函数
添加步骤:Tools -> Function Helper Dialog
选择函数,填写数据要求,点击Generate & Copy to clipboard
配置取样器中的请求参数:将Function syntax显示的函数信息写入参数值中,eg:${__Random(10,99,random_set)}
测试结果字段
- Label:定义HTTP请求名称
- Samples:表示这次测试中一共发出了多少个请求
- Average:平均响应时长——默认情况是单个Request的平均响应时长,当使用了Transaction Controller时以Transaction为单位显示平均响应时长
- Median:中位数,50%用户的响应时长
- 90%Line:90%用户的响应时长
- Min:访问页面的最小响应时长
- Max:访问页面的最大响应时长
- Error%:错误请求的数量/请求的总数
- Throughput:默认情况下表示每秒完成的请求数(Request per Second)
- KB/Sec:每秒从服务器端接收到的数据量
相关文章:
Jmeter简介
基础介绍 Jmeter录制脚本的原始是配置一个HTTP代理,然后浏览器通过这个代理访问测试页面从而完成脚本录制。 一、下载安装 jmeter本身不需要安装,需要配置环境变量JDK,然后打开bin文件夹中的jmeter.vbs即可。建议jdk 1.7及以上版本。 基本祖…...
网页前端开发之HTML入门篇:标题标签 heading
标题标签 heading <h1>-<h6>是HTML的标题标签,其标签内容会呈现六个不同级别的字号, <h1>字号最大,<h6>字号最小。 示例 <html><body><h1>一级标题</h1><h2>二级标题</h2>&l…...
医院信息化与智能化系统(3)
医院信息化与智能化系统(3) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…...
数据结构(线性表)
1线性表的定义与操作 1.1线性表的定义 线性表是一种基础的数据结构,其主要特点是:数据元素之间存在一种线性关系(一对一)。线性表的每一个数据元素都有一个唯一的前驱和后继,除了第一个元素没有前驱,最后…...
ArcGIS Pro SDK (十八)栅格
ArcGIS Pro SDK (十八)栅格 环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 栅格 1 在文件夹中打开栅格数据集 // 使用文件夹路径创建 FileSystemConnectionPath 对象。 FileSystemConnectionPath connectionPath = new FileSystemConnectionPath(new System...
c++ 对象作用域
在 C 中,对象的作用域(scope)指的是对象的生命周期以及对象在程序中可以访问的范围。作用域影响对象的创建、使用和销毁,主要有以下几种类型: 1. 局部作用域(Local Scope) 局部作用域的对象是…...
【无标题】海尔AI英语面试
1.自我介绍 Good morning. I am delighted to have this English interview. My name is fu guilin. I graduated from CDUT with a degree in Information engineering. During my university years, I have laid a solid foundation in my professional knowledge. I posses…...
软件设计模式------概述
一:简述 目的:为了可重用代码,代码更容易被他人理解,提高代码的可靠性。 定义:是一套被反复使用,多数人知晓,经过分类编目的,代码设计经验的总结。 (通俗来说…...
刷题/学习网站推荐
前言: 最近没怎么学习,荒芜生活,学不进去,太累了,就喜欢翻翻网站有没有好用的东西分享给大家,正好看到一些刷题的网站(其实也是学习的网站吧),相比学程序的很多都是力扣…...
OQE-OPTICAL AND QUANTUM ELECTRONICS
文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网:https://ais.cn/u/3eEJNv 三、服务简述 四、投稿须知 1.在线投稿:由艾思科蓝支持在线投稿,请将文章全文投稿至艾思科蓝投稿系…...
在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?
大家好,我是锋哥。今天分享关于【在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?】面试题?希望对大家有帮助; 在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处? 1000道 互联网大厂Java工程师 精选…...
Chromium html<textarea>c++接口定义
<textarea>:文本区域元素 <textarea> HTML 元素是一个多行纯文本编辑控件,适用于允许用户输入大量自由格式文本的场景。 例子: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> &l…...
OpenCV高级图形用户界面(13)选择图像中的一个矩形区域的函数selectROI()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 允许用户在给定的图像上选择一个感兴趣区域(ROI)。 该功能创建一个窗口,并允许用户使用鼠标来选择一个 ROI。…...
《计算机视觉》—— 基于dlib库的人检检测
文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装(适用于Windows等操作系统)3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头,检测人脸 一、dlib库的安装 在PyCharm中&…...
分布式数据库安全可靠测评名录之平凯数据库(TiDB企业版)
作者: 数据源的TiDB学习之路 原文来源: https://tidb.net/blog/d052ee0b 2024 年 9 月 30 日,中国信息安全测评中心公布安全可靠测评结果公告(2024年第2号),其中包含 6 款集中式数据库和 11 款分布式数据…...
动态规划之打家劫舍
大纲 题目思路第一步:确定下标含义第二步:确定递推公式第二步:dp数组如何初始化第三步:确定遍历顺序第四步:举例推导dp数组 总结 最近有人询问我 LeetCode 「打家劫舍」系列问题(英文版叫 House Robber&…...
嵌入式入门学习——8基于Protues仿真Arduino+SSD1306液晶显示数字时钟
0 系列文章入口 嵌入式入门学习——0快速入门,Let‘s Do It! SSD1306 1 Protues查找SSD1306器件并放置在画布,画好电气连接(这里VCC和GND画反了,后面仿真出错我才看见,要是现实硬件估计就烧毁了…...
盘点现代浏览器的各种神奇能力,功能令人惊讶
盘点现代浏览器的各种神奇能力,功能令人惊讶😮 浏览器的进化 一个运行在浏览器里面的操作系统。一个炫酷的量子纠缠网页。内嵌在浏览器里面的AI大模型。 随着web技术的迅猛发展,现代浏览器已经不仅仅是一个浏览网页的工具了。它的功能早已进…...
人工智能停滞:人工智能投资与人工智能采用之间的差距
关注公众号网络研究观获取更多内容。 人工智能继续影响着云战略,但人工智能的实施速度比大多数人预测的要慢。这让在人工智能上押下重注的技术提供商感到沮丧。到底发生了什么? Censuswide 代表 Red Hat 近期开展了一项调查,调查对象为英国…...
高效容器化技术(3)---docker镜像仓库
1.镜像仓库 Docker镜像仓库是存储和管理Docker镜像的地方。它允许用户上传、下载和共享Docker镜像,从而方便在不同的主机上部署和运行应用程序。 常见的Docker镜像仓库包括: Docker Hub:官方的Docker镜像仓库,包含了大量的公共镜…...
Llama-3.2-3B新手教程:Ollama环境配置+基础使用
Llama-3.2-3B新手教程:Ollama环境配置基础使用 1. 环境准备与快速部署 1.1 系统要求 在开始之前,请确保您的系统满足以下基本要求: 操作系统:Linux/Windows/macOS(推荐Linux)内存:至少8GB R…...
从‘听不清’到‘听得准’:深入FunASR的VAD模型,教你调参优化语音识别在嘈杂环境下的表现
从‘听不清’到‘听得准’:深入FunASR的VAD模型,教你调参优化语音识别在嘈杂环境下的表现 在工业巡检的轰鸣声中,工程师的语音指令频繁被机器噪音淹没;车载语音助手总在高速风噪下错误触发;户外采访录音里的对话被风声…...
像素史诗·智识终端Claude Code实践:自动化代码生成与审查
像素史诗智识终端Claude Code实践:自动化代码生成与审查 1. 开发者的新助手 最近在开发圈里,一个叫"像素史诗智识终端"的工具开始引起关注。它集成了类似Claude Code的智能代码能力,正在改变开发者们日常工作的方式。想象一下&am…...
OpenAI Operator深度解析:自主浏览器智能体如何改变人机交互
OpenAI Operator 深度解析:自主浏览器智能体如何改变人机交互 摘要:OpenAI Operator 是一款革命性的自主浏览器智能体,能够独立执行复杂的网页任务。本文深入解析其技术原理、应用场景及未来发展趋势。 一、什么是 OpenAI Operator? OpenAI Operator 是 OpenAI 于 2025 年…...
用快马AI十分钟搭建班级宠物园应用下载页,快速验证教育产品原型
最近在帮小学老师朋友设计一个班级宠物园应用,想快速验证这个教育产品的可行性。传统开发流程太耗时,于是尝试用InsCode(快马)平台的AI生成功能,十分钟就搭出了可交互的下载页原型。分享下具体实现思路: 需求拆解与框架搭建 先明确…...
用快马快速构建排序算法可视化原型,直观比较性能差异
最近在复习算法基础时,发现单纯看代码很难直观理解不同排序算法的差异。于是尝试用InsCode(快马)平台快速搭建了一个排序算法可视化工具,整个过程比想象中简单很多,分享下具体实现思路。 需求分析 首先明确需要展示五种经典排序算法ÿ…...
戴森球计划蓝图库:从模块化部署到系统思维的生产革命
戴森球计划蓝图库:从模块化部署到系统思维的生产革命 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在戴森球计划的浩瀚宇宙中,高效的工厂设计是星…...
重构网页媒体资源获取逻辑:猫抓扩展的技术突破与场景化应用
重构网页媒体资源获取逻辑:猫抓扩展的技术突破与场景化应用 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化内容爆炸的今天&am…...
TCP和UDP可以同时绑定相同的端口吗?
之前有读者在字节面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:多个 TCP 服务进程可以同时绑定同一个端口吗?客户端…...
LVGL图像转换工具:离线高效处理方案
1. LVGL图像转换工具简介 第一次接触LVGL图像转换工具时,我正为一个嵌入式项目头疼。客户要求UI界面必须流畅,但资源受限的MCU根本吃不消常规图片格式。直到发现这个神器,才明白原来图片还能这样玩。 LVGL图像转换工具(lv_img_con…...
