JMeter工具介绍

Jmeter功能概要

JDK常用文件目录介绍

Bin目录:存放可执行文件配置文件

image-20240531223358791

Docs目录:是Jmeter的API文档,用于开发扩展组件

image-20240531224214181

printable_docs目录用户帮助手册

image-20240531224526514

lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包

image-20240601133943245

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

临时性:

启动Jmeter->选择菜单“option"->Choose language->Chinese(Simplified)

image-20240601134547296

永久性——修改配置文件:

  1. 找到Jmeter安装目录下的bin目录
  2. 打开jmeter.properties文件,把第37行修改为”language=zh_CN"
  3. 重启Jmeter即可。

image-20240601135331016

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

Jmeter默认主题是黑色的,可以通过以下步骤修改:

  • 启动Jmeter->选择菜单“选项”->外观->windows(选择自己喜欢的主题即可)

image-20240601135815681

Jmeter元件和组件的介绍

元件的基本介绍

元件:多个类似功能组件的容器(类似于

image-20240601140134762

组件的基本介绍

组件:实现独立的某个功能(类似于方法

例如:取样器的组件

image-20240601140655406

Jmeter元件作用域和执行顺序

元件的作用域

元件的作用域:是靠测试计划的树形结构中元件的父子关系来确定的。

image-20240601142612030

提示:所有的组件都是以取样器为核心来运行的。组件添加的位置不同,生效的取样器也不同。

作用域的原则

  • 取样器:核心,不和其他元件相互作用,没有作用域
  • 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用。
  • 其他元件:
    • 如果是某个取样器的子节点,则该元件只对其父节点起作用。
    • 如果其父节点不是取样器,则其作用域是该 元件父节点下的其他所有后代节点(包括子节点、子节点的子节点等。)

image-20240601143711616

例:固定定时器3是HTTP请求3的子节点,则该元件只对HTTP请求3起作用

固定定时器1的父节点是线程组 ,其作用域是HTTP请求1 HTTP请求2 HTTP请求3

固定定时器2的父节点是如果(If)控制器,其作用域是HTTP请求2

元件的执行顺序

同一个作用域下不同类型元件:

  1. 配置元件(config elements)

  2. 前置处理程序(Per-processors)

  3. 定时器(times)

  4. 取样器(Sampler)

  5. 后置处理程序(Post-processors)

  6. 断言(Assertions)

  7. 监听器(Listeners)

同一个作用域下多个相同类型元件

  • 按照在测试计划中从上到下的顺序依次执行。

案例:执行顺序

image-20240601145606096

定时器1-HTTP请求1-定时器1-定时器2-HTTP请求2-定时器1-定时器3–HTTP请求3

Jmeter使用示例

Jmeter第一个案例

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

步骤

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

image-20240601151737668

线程组

作用:线程组就是控制JMeter用于执行测试的一组用户

位置:右键点击”测试计划“->添加->线程(用户)->线程组

特点:

  • 模拟多人操作
  • 线程组可以添加多个,多个线程组可以并行或串行
  • 取样器(请求)和逻辑控制器必须依赖线程组才能使用
  • 线程组下可以添加其他元件下组件

线程组分类

  • 线程组

    普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。

  • SetUp线程组

一种特殊类型的线程组,可用于执行预测试操作

  • TearDown线程组

一种特殊类型的线程组,可用于执行测试后工作

线程组参数详解:

image-20240601201309958

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

要求:

  • 模拟10个用户并行执行;

image-20240601203121338

  • 模拟10个用户5s内启动完成;

  • 模拟2个用户各循环3次;

image-20240601203307825

  • 模拟2个用户运行30s;

image-20240601203435020

  • 模拟2个用户等待10s后开始执行。

image-20240601203916231

案例分析:

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

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

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

不同点:场景不同

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

HTTP请求

作用:向服务器发送http及https请求

位置:选择线程组->右键->添加->取样器->HTTP请求

参数:

image-20240601210236223

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

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

  • 使用HTTP协议,GET请求方法,路径中添加参数为:wd=test,运行观察结果

image-20240601214202690

案例二(使用参数列表来传递get请求的参数)

  • 使用HTTPS协议,GET请求方法,路径中添加参数为: wd = test,运行观察结果

image-20240601211618262

案例三(使用参数列表来传递POST请求的form格式参数)

  • 使用HTTPS协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果

image-20240601212009755

案例四:

  • 使用HTTP协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果

image-20240601212315094

查看结果树

案例1:查看结果树种的HTTP请求种,有多个子请求的HTTP请求

image-20240601213117293

原因分析:

  • 第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径

image-20240601213136170

  • JMeter会自动发送第二个HTTP请求(使用第一个HTTP请求中返回的URL路径)
  • 点击最外层HTTP请求时,显示的内容与最后一个HTTP请求的请求和响应数据一致

案例2:HTTP响应数据中存在乱码,需要修改取样器结果的编码格式

image-20240601213312080

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

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

相关文章

HALCON-从入门到入门-读取图片保存图片

1.废话 视觉算法库的第一步。 读取图片: 看你是从哪里读取,从相机读取还是从本地硬盘中读取。 保存图片:就只有保存到本地了。 上面的截图显示我读取了一张图片 从相机中读取另开一篇来说,先说从本地磁盘读取哈。 怎么读取的…

数据结构复习指导之交换排序(冒泡排序,快速排序)

目录 交换排序 复习提示 1.冒泡排序 1.1基本思想 1.2算法代码 1.3性能分析 2.快速排序 2.1基本思想 2.2算法代码 2.3性能分析 交换排序 复习提示 所谓交换,是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。 基于交换的排序算法很…

python解决flask启动的同时启动定时任务

业务场景描述:在常规的开发中,我们开发接口服务,一般会将数据放在数据库、文件等第三方文件,启动服务后,服务到后台数据库中加载数据,这样做的好处当然是开发会更加便利以及数据的可复用性较高,…

深度学习-03-函数的连续调用

深度学习-03-函数的连续调用 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xff0…

LLaMA-Factory推理实践

运行成功的记录 平台:带有GPU的服务器 运行的命令 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory/ conda create -n py310 python3.10 conda activate py310由于服务器不能直接从huggingface上下载Qwen1.5-0.5B,但本地可…

51仿真器 PZ-51Tracker 未知设备

插上仿真器,右击我的电脑 等待一下,选择winUSB 此时在keil中选择仿真器会报错,需要安装如下我是win10) 安装好后退出再试,没有报错即可 这项也要选择 另外配置晶振

React + SpringBoot开发用户中心管理系统

用户中心项目搭建笔记 技术栈 前端技术栈 “react”: “^18.2.0”,ant-design-pro 后端技术栈 SpringBoot 2.6.x 项目源码地址 https://gitee.com/szxio/user-center 前端项目搭建 快速搭建一个后端管理系统项目框架 初始化 antDesignPro 官网: https://…

LeetCode---哈希表

242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 代码示例: //时间复杂度: O(n) //空间复杂度: O(1) c…

Common Lisp笔记

在计划学习函数式编程的时候,我一开始打算学习的是 F#。因为我朋友就是在 DTU 上的学,F# 就是 DTU(丹麦理工)开发的。但是由于 F# 和微软的 .NET 绑定,而在 macOS 上,目前版本的 .NET 的是有些问题的&#…

线性代数|机器学习-P3乘法和因式分解矩阵

文章目录 1. 矩阵分解2. S Q Λ Q T SQ\Lambda Q^T SQΛQT3. A U Σ V T AU\Sigma V^T AUΣVT4. A LU 分解5. 矩阵的四个子空间 1. 矩阵分解 目前我们有很多重要的矩阵分解,每个分解对应于多个前提条件,分解方法,分解后的形状会中如下&…

【Vue】v-for中的key

文章目录 一、引入问题二、分析问题 一、引入问题 语法: key属性 "唯一值" 作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用。 为什么加key:Vue 的默认行为会尝试原地修改元素(就地复用)…

马宝国和沈有容-UMLChina建模知识竞赛第5赛季第12轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题,即可获得本轮优胜。 如果有第4题,第4题为附加题&am…

R语言ggplot2包绘制网络地图

重要提示&#xff1a;数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 载入R包 rm(listls()) pacman::p_load(tidyverse,assertthat,igraph,purrr,ggraph,ggmap) 网络节点和边数据 nodes <- read.csv(nodes.csv, row.names 1) edges…

【Python技术】AI编程新手快速入门学习LangChain大模型框架

如果我们要搞AI智能体&#xff0c;普通人一般 借助腾讯元器、 coze、KIMI 或者其他大平台搞一搞&#xff0c;比如我配置的coze智能体在微信公众号聊天。 对于程序员来说&#xff0c;一言不合就喜欢搞代码。 前面文章也介绍了不少关于AI知识库问答&#xff0c;AIagent 不少开源…

指纹采集技术

目录 1.概述 1.1 捺印油墨采集 1.2 现场指纹提取 1.3 在线指纹采集 2. 指纹采集器的关键技术指标 2.1 采集面积 2.2 分辨率 2.3 图像质量 2.4 耐用性 1.概述 最早的指纹采集技术是油墨法&#xff0c;至少已经有上百年的历史。1990年代出现了活体指纹采集器&#xff0c…

大数据测试/ETL开发,如何造测试数据

相信很多的小伙伴&#xff0c;有些是大数据测试岗位&#xff0c;有些是ETL开发&#xff0c;都面临着如何要造数据的情况。 1&#xff0c;造数背景 【大数据测试岗位】&#xff0c;比较出名的就是宁波银行&#xff0c;如果你在宁波银行做大数据开发&#xff0c;对着需求开发完…

数学建模 —— 层次分析法(2)

目录 一、层次分析法&#xff08;AHP&#xff09; 二、构造比较判断矩阵 2.1 两两比较法 三、单准则下的排序及一致检验 3.1 单准则下的排序 3.2 一致性检验 四、层次总排序 4.1 层次总排序的步骤 4.2 总排序一致性检验 一、层次分析法&#xff08;AHP&#xff09; 方…

xdp、dpdk、rdma能在同一网卡上同时使用吗?

文心一言 XDP、DPDK和RDMA是三种不同的技术&#xff0c;它们各自在Linux网络性能优化中扮演了不同的角色。关于它们能否在同一网卡上同时使用&#xff0c;我们需要考虑以下几个方面&#xff1a; XDP&#xff08;eXpress Data Path&#xff09;&#xff1a; XDP是Linux内核提供…

SVM算法-非线性分类背后技术详解

引言 支持向量机&#xff08;SVM&#xff09;是一种强大的监督学习算法&#xff0c;广泛应用于分类和回归任务中。本文将详细介绍SVM算法在非线性分类任务中的应用&#xff0c;并通过代码示例来展示其背后的技术精髓。我们将分三大部分来展开&#xff0c;本部分将重点介绍SVM算…

【C++面试50题】

以下是针对C程序员面试可能遇到的一些问题&#xff0c;涵盖了从基础语法、面向对象、STL、内存管理、模板、异常处理、并发编程等多个方面。 ### 基础概念与语法 1. C与C的主要区别是什么&#xff1f; 2. 什么是构造函数和析构函数&#xff1f;它们何时被调用&#xff1f; 3. 什…