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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值