JMeter工具介绍

Jmeter功能概要

JDK常用文件目录介绍

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

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

printable_docs目录用户帮助手册

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

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

临时性:

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

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

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

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

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

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

Jmeter元件和组件的介绍

元件的基本介绍

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

组件的基本介绍

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

例如:取样器的组件

Jmeter元件作用域和执行顺序

元件的作用域

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

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

作用域的原则

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

例:固定定时器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)

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

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

案例:执行顺序

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

Jmeter使用示例

Jmeter第一个案例

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

步骤

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

线程组

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

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

特点:

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

线程组分类

  • 线程组

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

  • SetUp线程组

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

  • TearDown线程组

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

线程组参数详解:

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

要求:

  • 模拟10个用户并行执行;
  • 模拟10个用户5s内启动完成;
  • 模拟2个用户各循环3次;
  • 模拟2个用户运行30s;
  • 模拟2个用户等待10s后开始执行。

案例分析:

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

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

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

不同点:场景不同

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

HTTP请求

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

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

参数:

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

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

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

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

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

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

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

案例四:

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

查看结果树

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

原因分析:

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

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

相关推荐
CesareCheung36 分钟前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流2 小时前
jmeter使用技巧
jmeter
春时似衿里2 小时前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书2 小时前
JMeter的安装部署
jmeter
程序员杰哥2 小时前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎6 小时前
Jmeter测试
jmeter
卓码软件测评8 小时前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
BatyTao1 天前
Jmeter执行数据库操作
数据库·jmeter
二宝哥1 天前
性能测试工具Jmeter之java.net.BindException: Address already in use
jmeter