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

JMeter工具介绍、元件和组件的介绍

  • Jmeter功能概要

  • JDK常用文件目录介绍

Bin目录:存放可执行文件和配置文件
在这里插入图片描述

Docs目录:是Jmeter的API文档,用于开发扩展组件
在这里插入图片描述

printable_docs目录:用户帮助手册
在这里插入图片描述

lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包
在这里插入图片描述

  • 修改默认配置——Jmeter界面的汉化

临时性:
启动Jmeter->选择菜单“option"->Choose language->Chinese(Simplified)
在这里插入图片描述

永久性——修改配置文件:
找到Jmeter安装目录下的bin目录
打开jmeter.properties文件,把第37行修改为”language=zh_CN"
重启Jmeter即可。
在这里插入图片描述

  • 修改默认配置——修改主题

Jmeter默认主题是黑色的,可以通过以下步骤修改:
启动Jmeter->选择菜单“选项”->外观->windows(选择自己喜欢的主题即可)
在这里插入图片描述

  • Jmeter元件和组件的介绍
  • 元件的基本介绍

元件:多个类似功能组件的容器(类似于
在这里插入图片描述

  • 组件的基本介绍

组件:实现独立的某个功能(类似于方法
在这里插入图片描述
在这里插入图片描述

  • Jmeter元件作用域和执行顺序

  • 元件的作用域

元件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的。
在这里插入图片描述

  • 元件的执行顺序

相同作用域下的不同元件:
配置元件 - 前置处理器 - 定时器 - 取样器 - 后置处理器 - 断言 - 监听器
相同作用域下的相同元件:
从上到下依次执行

在这里插入图片描述

  • 案例:执行顺序

在这里插入图片描述

  • 元件的作用域都围绕 取样器 为 核心
  • 固定定时器3是HTTP请求3的子节点,所以只对HTTP请求3起作用
  • 固定定时器2的父节点是 if 控制器(非取样器),所以只对HTTP请求2起作用(父节点下的所有后代节点起作用)
  • 固定定时器1的父节点是 线程组,所以对HTTP1,HTTP2,HTTP3都起作用

由于 相同作用域下的相同元件从上到下的顺序依次执行,
所以执行顺序为:定时器1 - HTTP请求1 - 定时器1 - 定时器2 - HTTP请求2 - 定时器1 - 定时器3 - HTTP请求3

  • Jmeter第一个案例
  • 需求:使用Jmeter访问百度首页接口,并查看请求和响应信息

步骤:

  1. 启动Jmeter
  2. 在“测试计划”下添加“线程组”
  3. 在“线程组”下添加“HTTP请求“取样器
  4. 填写”HTTP请求”的相关请求数据
  5. 在”线程组“下添加”查看结果树“监听器
  6. 点击”启动“按钮运行,并查看结果
    在这里插入图片描述
  • 线程组

作用:线程组就是控制JMeter用于执行测试的一组用户
位置:右键点击”测试计划“->添加->线程(用户)->线程组
特点:

  • 模拟多人操作
  • 线程组可以添加多个,多个线程组可以并行或串行
  • 取样器(请求)和逻辑控制器必须依赖线程组才能使用
  • 线程组下可以添加其他元件下组件
    在这里插入图片描述
  • 线程组分类
  • 线程组(编写脚本)
    普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。
  • SetUp线程组(前置处理、初始化)
    一种特殊类型的线程组,可用于执行预测试操作
  • TearDown线程组(后置处理、环境恢复等)
    一种特殊类型的线程组,可用于执行测试后工作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 线程组参数详解
    在这里插入图片描述

练习:编写JMeter脚本,访问百度
要求:

  • 模拟10个用户并行执行;
    在这里插入图片描述
  • 模拟10个用户5s内启动完成;
    在这里插入图片描述
  • 模拟2个用户各循环3次;
    在这里插入图片描述
  • 模拟2个用户运行30s;
    在这里插入图片描述
  • 模拟2个用户等待10s后开始执行(持续时间5s)(
    在这里插入图片描述
  • 案例分析

使用1个线程组,添加HTTP请求(百度)

  • 配置线程数为2,循环次数为3时,运行观察结果
  • 配置线程数为3,循环次数为2时,运行观察结果,对比是否有不同

相同点:从请求数量来说,是完全相同的

不同点:场景不同

  • 线程数:代表用户数,即性能测试时的负载量(线程数为2比线程数为3对应的负载量小)
  • 循环次数:代表时间,即性能测试时的运行时间(循环次数3比循环次数2对应的时间长)
  • HTTP请求

作用:向服务器发送http及https请求
位置:选择线程组->右键->添加->取样器->HTTP请求
参数:
端口号:http默认80,http默认443在这里插入图片描述

  • 案例一(使用HTTP请求路径来传递get请求参数)

(1)使用1个线程组,添加HTTP请求(百度),路径为/S

  • 使用HTTP协议,GET请求方法,路径中添加参数为:wd=test,运行观察结果。
    在这里插入图片描述
  • 案例二(使用参数列表传递get请求的参数)
  • 使用HTTPS协议,GET请求方法,路径中添加参数为: wd = test,运行观察结果
    在这里插入图片描述
  • 案例三(使用参数列表来传递POST请求的form格式参数)
  • 使用HTTPS协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果
    在这里插入图片描述
  • 案例四:(消息体数据来传递post请求的form格式参数)
  • 使用HTTP协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果
    在这里插入图片描述
  • 查看结果树

案例1:查看结果树种的HTTP请求种,有多个子请求的HTTP请求
在这里插入图片描述
原因分析:

  • 第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径
  • JMeter会自动发送第二个HTTP请求(使用第一个HTTP请求中返回的URL路径)
  • 点击最外层HTTP请求时,显示的内容与最后一个HTTP请求的请求和响应数据一致在这里插入图片描述

案例2:HTTP响应数据中存在乱码,需要修改取样器结果的编码格式
在这里插入图片描述
在这里插入图片描述

相关文章:

JMeter工具介绍、元件和组件的介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包…...

【Python 语法】Python 正则表达式(regular expressions, regex)

1. 基本语法1.1 字符匹配1.2 元字符1.3 特殊字符1.4 分组和捕获1.5 断言2. 常用函数2.1 `re.match()`2.2 `re.search()`2.3 `re.findall()`2.4 `re.sub()`2.5 `re.split()`3. 进阶用法3.1 捕获组3.2 非捕获组3.3 预查Python 中的**正则表达式(regular expressions, regex)**是…...

在 Python 里,None 可能是调用者主动传入的值,所以不能用 None 来判断参数是否被提供。

在 Python 里,None 可能是调用者主动传入的值,所以不能用 None 来判断参数是否被提供。 使用 object() 生成一个特殊的 唯一标记变量,用作默认参数的占位符,就可以明确区分调用者是否真的传递了这个参数。 📌 为什么 …...

DeepSeek 引领AI 大模型时代,服务器产业如何破局进化?

2025 年 1 月,DeepSeek - R1 以逼近 OpenAI o1 的性能表现,在业界引起轰动。其采用的混合专家架构(MoE)与 FP8 低精度训练技术,将单次训练成本大幅压缩至 557 万美元,比行业平均水平降低 80%。这一成果不仅…...

安卓burp抓包,bypass ssl pinning

好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透,遇到了burp无法抓包问题,觉得可以写下来。 问题描述 1. 一台安卓手机,装了面具,可以拿到root 2. 电脑上有burp,设置代理 3.手机和电脑连同一个网段&…...

服务器中部署大模型DeepSeek-R1 | 本地部署DeepSeek-R1大模型 | deepseek-r1部署详细教程

0. 部署前的准备 首先我们需要足够算力的机器,这里我在vultr中租了有一张A16显卡一共16GB显存的服务器作为演示。部署的模型参数为14b的。如果需要部署满血版本671b的,需要更大的算力支持,这里由于是个人资金有限,就演示14b的部署…...

rust学习笔记2-rust的包管理工具Cargo使用

首先先解决一个配置文件,目前rust版本升级后,config已经改成 config.toml 内容也做了如下调整 [source.crates-io] replace-with tuna[source.tuna] registry "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" 1.Rust 编程…...

DDD - 可能会用到的分布式事务

一、分布式事务的概念: 分布式事务是指跨越多个独立的资源或服务(例如多个数据库、微服务、消息队列等)执行的事务操作,其目标是确保整个事务在多个系统中保持原子性和一致性,即要么所有操作全部成功提交,…...

DeepSeek + Vue实战开发

利用DeepSeek V3模型、siliconflow大模型一站式云服务平台以及vue3.0实现一个在线人工智能客服对话系统。 因为deepseek官网的api密钥使用起来比较缓慢,所以可以使用第三方的,具体操作请自行查阅资料。 siliconflow官网 SiliconFlow, Accelerate AGI …...

【数据结构】(8) 二叉树

一、树形结构 1、什么是树形结构 根节点没有前驱,其它节点只有一个前驱(双亲/父结点)。所有节点可以有 0 ~ 多个后继,即分支(孩子结点)。每个结点作为子树的根节点,这些子树互不相交。 2、关于…...

拉链表介绍

拉链表(Slowly Changing Dimension, Type 2) 是一种在数据仓库中用于跟踪维度数据历史变化的存储技术。它通过记录数据的生命周期(开始时间和结束时间)来保留历史状态,同时避免全量存储冗余数据。以下是详细解释及实际…...

Web 后端 请求与响应

一 请求响应 1. 请求(Request) 客户端向服务器发送的HTTP请求,通常包含以下内容: 请求行:HTTP方法(GET/POST等)、请求的URL、协议版本。 请求头(Headers):…...

CEF132 编译指南 Linux 篇 - CEF 编译实战:构建 CEF(六)

1. 引言 经过前几篇的精心准备,我们已经完成了所有必要的环境配置和源码下载。现在,我们将进入激动人心的 CEF 编译阶段。本篇将详细指导你在 Linux 系统上编译 CEF 6834 分支(对应 Chromium 132 版本),包括创建项目文…...

奥比中光3D机器视觉相机能连接halcon吗?

奥比中光的设备与Halcon的兼容性可以通过以下方式实现: 数据接口的通用性 奥比中光的相机(如Astro Pro、大白等)支持通过UVC协议获取彩色图像,深度数据则通过OpenNI或ROS2接口传输105。若Halcon支持这些协议或标准接口(如ROS消息、OpenCV图像流),则可通过直接调用或二次…...

【Spring+MyBatis】_图书管理系统(上篇)

目录 1. MyBatis与MySQL配置 1.1 创建数据库及数据表 1.2 配置MyBatis与数据库 1.2.1 增加MyBatis与MySQL相关依赖 1.2.2 配置application.yml文件 1.3 增加数据表对应实体类 2. 功能1:用户登录 2.1 约定前后端交互接口 2.2 后端接口 2.3 前端页面 2.4 单…...

【苍穹外卖】学习

软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。那么这一小节,我们将从 软件开发流程、角色…...

DeepSeek-V2-技术文档

DeekSeek-v2-简述 1. DeepSeek-V2是什么? DeepSeek-V2是一个基于混合专家(Mixture-of-Experts,简称MoE)架构的语言模型。它是一种新型的人工智能模型,专门用于处理自然语言处理(NLP)任务,比如文本生成、翻译、问答等。与传统的语言模型相比,DeepSeek-V2在训练成本和…...

VictoriaLogs Syslog日志收集存储系统部署

Docker部署 启动命令 使用以下命令通过Docker启动VictoriaLogs容器: docker run -d --restart always \-p 9428:9428 \-p 514:514/udp \-v ./victoria-logs-data:/victoria-logs-data \--name victoria-logs-syslog-songxwn.com \docker.io/victoriametrics/victor…...

使用 Apache PDFBox 提取 PDF 中的文本和图像

在许多应用中,我们需要从 PDF 文件中提取文本内容和嵌入的图像。为了实现这一目标,Apache PDFBox 是一个非常实用的开源工具库。它提供了丰富的 API,可以帮助我们轻松地读取 PDF 文件、提取其中的文本、图像以及其他资源。 本文将介绍如何使…...

Linux中线程创建,线程退出,线程接合

线程的简单了解 之前我们了解过 task_struct 是用于描述进程的核心数据结构。它包含了一个进程的所有重要信息,并且在进程的生命周期内保持更新。我们想要获取进程相关信息往往从这里得到。 在Linux中,线程的实现方式与进程类似,每个线程都…...

Groovy语言的学习路线

Groovy语言的学习路线 引言 在当前的编程世界中,随着多种编程语言的涌现,开发者常常需要选择合适的语言来满足项目的需求。Groovy语言作为一种动态语言,在Java虚拟机(JVM)环境中得到了广泛使用。它具有简单易用的语法…...

nlf 3d pose 部署学习笔记

目录 multi_hmr创建SemanticRenderer 推理代码 渲染代码: 调用原版render,没成功 用的pose和smlx生成vertices,也有vertices3d hmr2,用的是网络生成的vertices进行渲染。 nlf地址: GitHub - isarandi/nlf: [NeurIPS 2024] Neural Localizer Fields for Continuous …...

【vmware虚拟机安装教程】

以下是在VMware Workstation Pro上安装虚拟机的详细教程: 准备工作 下载VMware Workstation Pro 访问VMware官网下载并安装VMware Workstation Pro(支持Windows和Linux系统)。安装完成后,确保已激活软件(试用版或正式…...

window中git bash使用conda命令

window系统的终端cmd和linux不一样,运行不了.sh文件,为了在window中模仿linux,可以使用gui bash模拟linux的终端。为了在gui bash中使用python环境,由于python环境是在anaconda中创建的,所以需要在gui bash使用conda命…...

PHP语法完全入门指南:从零开始掌握动态网页

本文专为零基础新手设计,通过5000字详细讲解带你系统学习PHP语法。包含环境搭建、基础语法、实战案例,并附20+代码示例。阅读后你将能独立开发简单动态网页! 一、PHP开发环境搭建(新手必看) 1.1 为什么需要搭建环境? PHP是服务器端脚本语言,需要运行在服务器环境中。推…...

什么是蒸馏技术

蒸馏技术(Knowledge Distillation, KD)是一种模型压缩和知识迁移的方法,旨在将一个复杂模型(通常称为“教师模型”)的知识转移到一个小型模型(通常称为“学生模型”)中。蒸馏技术的核心思想是通…...

Python——寻找矩阵的【鞍点】(教师:恒风)

在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点 恒风的编程 思路: 使用while循环找到行中最大值,此时列的坐标已知,利用列表推导式生成列不变的纵列,利用min()函数得到纵…...

处理项目中存在多个版本的jsqlparser依赖

异常提示 Correct the classpath of your application so that it contains a single, compatible version of net.sf.jsqlparser.statement.select.SelectExpressionIte实际问题 原因:项目中同时使用了 mybatis-plus 和 pagehelper,两者都用到了 jsqlpa…...

【iOS】包大小和性能稳定性优化

包大小优化 图片 LSUnusedResources 扫描重复的图片 ImageOptim,压缩图片 压缩文件 优化音视频资源 ,使用MP3 代替 WAV ffmpeg -i input.mp3 -b:a 128k output.mp3 视频 H.265(HEVC) 代替 H.264 ffmpeg ffmpeg -i input.mp4 -vcodec lib…...

Delphi语言的软件工程

Delphi语言的软件工程 引言 在软件工程的历史长河中,Delphi语言作为一种快速应用程序开发(RAD)的工具,凭借其高效的开发环境和强大的编程能力,一直在软件开发领域占有一席之地。本文将探讨Delphi语言的历史背景、特性…...