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

创建maven 项目

一、groupId, artifactId When creating a Maven project in IntelliJ IDEA, "groupId" and "artifactId" are two essential elements of the projects metadata. groupId: This typically identifies your project uniquely across all projects. For e…

C语言程序设计第二讲:顺序程序设计

一、数据类型 1. 基本数据类型 C语言中提供了一些基本数据类型,用于表示各种不同类型的数据: 整数类型: int:表示整数,通常占用4个字节。short int:表示短整数,通常占用2个字节。long int&am…

Pycharm 的使用

使用文档: Getting started | PyCharm DocumentationPyCharm 中文指南 — PyCharm 中文指南(Win版) 2.0 documentation 在Ubuntu中安装并配置Pycharm教程(安装 Pycharm)Ubuntu安装pycharm及快速创建pycharm的快捷方式,便于使用&am…

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

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

链表逆序用哨兵位头节点

在C语言中实现链表的逆序&#xff0c;使用哨兵头节点是一种常见的做法。哨兵头节点可以简化代码逻辑&#xff0c;特别是当链表为空时&#xff0c;可以避免空指针异常。下面是一个使用哨兵头节点逆序单链表的C语言实现 示例&#xff1a; #include <stdio.h> #include &l…

富格林:应用正规技巧阻挠被骗

富格林悉知&#xff0c;随着如今入市现货黄金的朋友愈来愈多&#xff0c;不少投资者也慢慢开始重视起提高自身的正规投资技巧&#xff0c;希望能阻挠被骗更高效地在市场上获利。虽然目前黄金市场存在一定的受害风险&#xff0c;但只要投资者严格按照正规的交易规则来做单&#…

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

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

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

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

LLaMA-Factory推理实践

运行成功的记录 平台&#xff1a;带有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&#xff0c;但本地可…

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

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

MYSQL之存储篇

MYSQL之存储篇 存储过程简介存储过程优点&#xff1a; MySQL的存储过程MySQL存储过程的创建1.格式2.声明分割符3.参数4.变量5.注释6.MySQL存储过程的调用7. MySQL存储过程的查询8.MySQL存储过程的修改9.MySQL存储过程的删除10. MySQL存储过程的控制语句11.MySQL存储过程的基本函…

mybatis配置环境流程

mybatis配置环境流程 为啥要用mybatis&#xff1a;通过Mybatis实现快速访问后端pgsql、mysql等数据库。 1.修改pom.xml&#xff0c;添加mybatis相关依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-s…

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

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

Spel表达式使用案例

package com.example.demo.api;import com.example.demo.model.User; import lombok.extern.slf4j.Slf4j;<

CSS Web前端框架:深入剖析与应用实践

CSS Web前端框架&#xff1a;深入剖析与应用实践 在快速发展的Web技术领域&#xff0c;CSS Web前端框架已成为构建现代化、高效且响应式网页的关键工具。它们不仅简化了开发过程&#xff0c;还提高了代码的可维护性和复用性。然而&#xff0c;面对众多纷繁复杂的框架选择&…

ByteBuddy字节码增强器

Byte Buddy是java的字节码增强器&#xff0c;一个优雅的运行时java代码生成库&#xff0c;使用时需要慎重 文档地址&#xff1a;http://bytebuddy.net/#/tutorial-cn 1. 引入ByteBuddy <!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy --><depend…

LeetCode---哈希表

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

Java生成PDF笔记整理

引入依赖, groupId:com.itextpdf, version:8.0.4, artifactId如下kernel,io,layout,forms创建pdf对象try(ByteArrayOutputStream outputStream new ByteArrayOutputStream()){PdfWriter writer new PdfWriter(outputStream, new WriterProperties().setFullCompressionMode(t…

离线安装python库

1. 下载安装包 在联网机器上安装 # 选择符合目标架构的版本&#xff0c;主要是libc版本和python版本 pip download --platformmanylinux2010_x86_64 --only-binary:all: --python-version3.7.4 tabulate # 或者 pip download --platformmanylinux_2_5_x86_64 --only-binary:a…