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响应数据中存在乱码,需要修改取样器结果的编码格式

相关推荐
程序员三藏1 天前
Jmeter自动化测试
自动化测试·软件测试·python·测试工具·jmeter·测试用例·接口测试
小小测试开发1 天前
JSR223后置处理程序用法详解:JMeter复杂响应处理的终极方案
jmeter
小小测试开发2 天前
JMeter XPath提取器用法详解:XML/HTML响应数据提取神器
xml·jmeter·html
weixin_440730503 天前
jmeter请求头和参数总结
jmeter
2501_924064116 天前
2025数据库性能测试工具:Utest、JMeter、HammerDB 等主流方案推荐
数据库·测试工具·jmeter·数据库性能测试·数据库负载测试·数据库压测工具·jmeter 压力测试
小小测试开发6 天前
JMeter JSR223预处理程序全攻略:用Groovy解锁复杂场景自动化
运维·jmeter·自动化
卖个几把萌6 天前
【08】JMeter从文本中读取多个参数
测试工具·jmeter
海梨花6 天前
又是秒杀又是高并发,你的接口真的扛得住吗?
java·后端·jmeter
小小测试开发7 天前
JMeter HTTP URL重写修饰符用法详解:解决会话传递与URL参数动态处理
网络协议·jmeter·http
兔子蟹子7 天前
JMeter 自动化测试 + 飞书通知完整指南
jmeter·飞书