当前位置: 首页 > news >正文

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的标题标签&#xff0c;其标签内容会呈现六个不同级别的字号&#xff0c; <h1>字号最大&#xff0c;<h6>字号最小。 示例 <html><body><h1>一级标题</h1><h2>二级标题</h2>&l…...

医院信息化与智能化系统(3)

医院信息化与智能化系统(3) 这里只描述对应过程&#xff0c;和可能遇到的问题及解决办法以及对应的参考链接&#xff0c;并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图&#xff0c;可以试试PlantUML&#xff0c;告诉GPT你的文件结构&#xff0c;让他给你对应的…...

数据结构(线性表)

1线性表的定义与操作 1.1线性表的定义 线性表是一种基础的数据结构&#xff0c;其主要特点是&#xff1a;数据元素之间存在一种线性关系&#xff08;一对一&#xff09;。线性表的每一个数据元素都有一个唯一的前驱和后继&#xff0c;除了第一个元素没有前驱&#xff0c;最后…...

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 中&#xff0c;对象的作用域&#xff08;scope&#xff09;指的是对象的生命周期以及对象在程序中可以访问的范围。作用域影响对象的创建、使用和销毁&#xff0c;主要有以下几种类型&#xff1a; 1. 局部作用域&#xff08;Local Scope&#xff09; 局部作用域的对象是…...

【无标题】海尔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…...

软件设计模式------概述

一&#xff1a;简述 目的&#xff1a;为了可重用代码&#xff0c;代码更容易被他人理解&#xff0c;提高代码的可靠性。 定义&#xff1a;是一套被反复使用&#xff0c;多数人知晓&#xff0c;经过分类编目的&#xff0c;代码设计经验的总结。 &#xff08;通俗来说&#xf…...

刷题/学习网站推荐

前言&#xff1a; 最近没怎么学习&#xff0c;荒芜生活&#xff0c;学不进去&#xff0c;太累了&#xff0c;就喜欢翻翻网站有没有好用的东西分享给大家&#xff0c;正好看到一些刷题的网站&#xff08;其实也是学习的网站吧&#xff09;&#xff0c;相比学程序的很多都是力扣…...

OQE-OPTICAL AND QUANTUM ELECTRONICS

文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网&#xff1a;https://ais.cn/u/3eEJNv 三、服务简述 四、投稿须知 1.在线投稿&#xff1a;由艾思科蓝支持在线投稿&#xff0c;请将文章全文投稿至艾思科蓝投稿系…...

在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?

大家好&#xff0c;我是锋哥。今天分享关于【在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处&#xff1f; 1000道 互联网大厂Java工程师 精选…...

Chromium html<textarea>c++接口定义

<textarea>&#xff1a;文本区域元素 <textarea> HTML 元素是一个多行纯文本编辑控件&#xff0c;适用于允许用户输入大量自由格式文本的场景。 例子&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> &l…...

OpenCV高级图形用户界面(13)选择图像中的一个矩形区域的函数selectROI()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 允许用户在给定的图像上选择一个感兴趣区域&#xff08;ROI&#xff09;。 该功能创建一个窗口&#xff0c;并允许用户使用鼠标来选择一个 ROI。…...

《计算机视觉》—— 基于dlib库的人检检测

文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装&#xff08;适用于Windows等操作系统&#xff09;3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头&#xff0c;检测人脸 一、dlib库的安装 在PyCharm中&…...

分布式数据库安全可靠测评名录之平凯数据库(TiDB企业版)

作者&#xff1a; 数据源的TiDB学习之路 原文来源&#xff1a; https://tidb.net/blog/d052ee0b 2024 年 9 月 30 日&#xff0c;中国信息安全测评中心公布安全可靠测评结果公告&#xff08;2024年第2号&#xff09;&#xff0c;其中包含 6 款集中式数据库和 11 款分布式数据…...

动态规划之打家劫舍

大纲 题目思路第一步&#xff1a;确定下标含义第二步&#xff1a;确定递推公式第二步&#xff1a;dp数组如何初始化第三步&#xff1a;确定遍历顺序第四步&#xff1a;举例推导dp数组 总结 最近有人询问我 LeetCode 「打家劫舍」系列问题&#xff08;英文版叫 House Robber&…...

嵌入式入门学习——8基于Protues仿真Arduino+SSD1306液晶显示数字时钟

0 系列文章入口 嵌入式入门学习——0快速入门&#xff0c;Let‘s Do It&#xff01; SSD1306 1 Protues查找SSD1306器件并放置在画布&#xff0c;画好电气连接&#xff08;这里VCC和GND画反了&#xff0c;后面仿真出错我才看见&#xff0c;要是现实硬件估计就烧毁了&#xf…...

盘点现代浏览器的各种神奇能力,功能令人惊讶

盘点现代浏览器的各种神奇能力&#xff0c;功能令人惊讶&#x1f62e; 浏览器的进化 一个运行在浏览器里面的操作系统。一个炫酷的量子纠缠网页。内嵌在浏览器里面的AI大模型。 随着web技术的迅猛发展&#xff0c;现代浏览器已经不仅仅是一个浏览网页的工具了。它的功能早已进…...

人工智能停滞:人工智能投资与人工智能采用之间的差距

关注公众号网络研究观获取更多内容。 人工智能继续影响着云战略&#xff0c;但人工智能的实施速度比大多数人预测的要慢。这让在人工智能上押下重注的技术提供商感到沮丧。到底发生了什么&#xff1f; Censuswide 代表 Red Hat 近期开展了一项调查&#xff0c;调查对象为英国…...

高效容器化技术(3)---docker镜像仓库

1.镜像仓库 Docker镜像仓库是存储和管理Docker镜像的地方。它允许用户上传、下载和共享Docker镜像&#xff0c;从而方便在不同的主机上部署和运行应用程序。 常见的Docker镜像仓库包括&#xff1a; Docker Hub&#xff1a;官方的Docker镜像仓库&#xff0c;包含了大量的公共镜…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...