使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

2024-04-24

在我的网站上,我有两个商家操作:搜索和浏览。一次搜索通常会触发三次浏览。

我有一个 JMeter 测试,它使用商家和商家 ID 号的 CSV 文件,在大规模运行此测试时,我希望使用我网站上的所有商家。

我已经在 J​​Meter 中映射了它,如下所示:

  • Loop Controller
    • HTTP 采样器(搜索 /search/${merchant_name})
    • CSV 数据集配置(商户名称)
    • Loop Controller
      • HTTP 采样器(浏览 /merchant/${merchant_id})
      • CSV数据集配置(商户ID)

I set loop count = 2在外循环中和loop count = 3在内循环中。

我预计两次搜索会触发 6 次浏览操作。但我得到的是一次搜索,然后是三次浏览,不断地直到我中止测试。

我是否误解了循环结构?这是预期的行为吗?

如何才能实现运行一次搜索、然后三次浏览、两次的目标?


我认为您滥用了 CSV 数据集配置。

我已经让你的场景工作如下:

给定以下 CSV 文件:

merchants.csv包含:

merchant1name
merchant2name

和另外 2 个 CSV 文件:merchant1name.csv and merchant2name.csv内容为:

id1
id2
id3

以及以下测试计划结构:

  • Thread Group (1 thread, 1 second ramp-up, 1 loop)
    • Loop Controller (2 loops)
      • HTTP Request /${merchantname}
        • Beanshell 后处理器(代码和解释见下文)
      • CSV 数据集配置(文件名:merchants.csv 文件的完整路径,变量名称:merchantname,全部默认)
      • Loop Controller (3 loops)
        • HTTP Request /${merchantid}
          • CSV 数据集配置(文件名:merchantname1 文件的完整路径,merchantname1 应为属性,变量名称:merchantid,全部默认)

通过在 CSV 数据集配置中使用“所有默认值”,我假设以下内容:

  • 文件编码 - 空白(我的 JMeter 使用 UTF-8 运行,这对于大多数情况来说都很好)
  • 分隔符 - ,(逗号)
  • 允许引用数据 - false
  • EOF 时回收 - true
  • 在 EOF 时停止线程 - false
  • 共享模式——所有线程

豆壳代码:

props.put("merchantname", vars.get("merchantname"));

这是必需的,因为 CSV 数据配置不允许在文件路径中使用变量。

内循环路径:

C:\jmeter\${__P(merchantname,)}.csv

您可以参考http://glinius.narod.ru/stackoverflow/nestedloop.zip http://glinius.narod.ru/stackoverflow/nestedloop.zip文件。将“nestedloop”文件夹(1 个 jmx 文件和 3 个 CSV 文件)中的所有内容解压到 JMeter 的 /bin 文件夹并运行测试。它将产生 8 个请求

参考资料:

  1. 使用 CSV 数据集配置 http://community.blazemeter.com/knowledgebase/articles/65138-using-csv-data-set-config
  2. 如何使用BeanShell http://blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。 的相关文章

随机推荐

  • 如果收到警告 Converting to string: TypedValue, 如何识别代码错误的地方?

    以下是 LogCat 的摘录 04 04 19 51 51 270 INFO ActivityManager 57 Starting activity Intent cmp com example app Preferences 04 04
  • 如何让 XAML 中的图像显示为实际大小?

    我有一个27 x 27我在 WPF 中显示的像素图像 但它显示larger比大小window 如何让它显示实际尺寸 替代文本 http www deviantsart com upload m20dk6 png http www devia
  • PHP XSS 预防白名单

    我的网站使用所见即所得编辑器 供用户更新帐户 输入评论和发送私人消息 编辑器 CKEditor 非常适合只允许用户输入有效的输入 但我担心通过 TamperData 或其他方式注入 我如何在服务器端控制这个 我需要将特定标签列入白名单 b
  • 将专用 NV12 视频帧转换为 RGB

    我有一个使用 Android MediaCodec 解码的 H264 流 当我查询输出 MediaFormat 时 颜色格式为 2141391875 显然 这是一种专门的 NV12 变体 称为 HAL PIXEL FORMAT NV12 A
  • 旧的 Top Coder 谜语:通过插入 + 来生成数字

    我正在考虑 给定一串数字 找到该字符串等于某个目标数字所需的最少加法次数 每次添加都相当于在数字字符串中的某处插入一个加号 插入所有加号后 照常计算总和 例如 考虑 303 和目标总和为 6 最佳策略是 3 03 我会用蛮力解决它 如下所示
  • 一个 Node.js 集群可以在 64 位 Wintel PC 上生成多少个子进程?

    我正在运行并发测试 为了简洁起见 为每个欺骗的 http 请求定义了一个进程 对于最多 64 个请求 进程 它工作得很好 但在 65 个请求 进程上就折叠起来了 我在一台 I5 笔记本电脑上运行 Window 7 64 位 具有 4GB R
  • 在 Excel 中通过宏向表添加列时设置列标题

    因此 我正在研究这个宏 它根据表中的其他列自动将列添加到表中 所以这是功能 我在此表中有许多标题为 CY 2010 CY 2020 的列 这些年将不可避免地发生变化 然后我想为每个 CY 列在表中添加一列 此外 我希望这些列的标题与年份相匹
  • 如何检查已触摸对象的 ID (iOS)

    在我的视图中 我有一个包含一堆不同点的数组 然后我通过循环运行该数组以在视图中创建一堆不同的正方形 您还可以看到我尝试使用辅助功能标识符来创建类似 ID 的系统 这可能是一个非常糟糕的做法 但我没有主意了哈哈 这是视图 import Lev
  • MongoDB聚合,按值区间分组,

    MongoDB 文档 id 123213 elevation 2300 area 25 id 343221 elevation 1600 area 35 id 545322 elevation 500 area 12 id 234234 e
  • 查找重复邮寄地址的策略

    我正在尝试想出一种根据相似度分数查找重复地址的方法 考虑这些重复的地址 addr 1 3 FAIRMONT LINK SOUTH addr 2 3 FAIRMONT LINK S addr 3 5703 48TH AVE adrr 4 57
  • 将标头添加到 WCF RequestSecurityToken 消息

    我正在尝试设置将使用 WSHttpBinding 进行通信的客户端 Web 应用程序 和服务 WCF 服务 看来 为了使用此绑定 客户端会发送初步消息来设置通道 客户端和服务之间存在一条服务总线 该总线在自定义标头上进行路由 当使用 Bas
  • 为什么 Glass 缺少 Google Play 服务?

    谷歌眼镜上不包含谷歌播放服务的原因是什么 将来会添加它们吗 看来将来还会在 Glass 上添加 Google Play 服务 有一个问题已被 接受 尽管具有中等优先级 请参阅来自谷歌眼镜官方发行网站
  • 如何从 node_modules 延迟加载外部模块?

    我们可以像这个模块一样延迟加载本地模块 path somePpath loadChildren app path some module SomeModule 我们如何延迟加载来自驻留在node modules中的外部库的模块 要在路由器模
  • 从 ASP 的 Ajax.ActionLink 获取 JsonResult

    如何使用 Ajax ActionLink 从控制器方法实际获取 JSON 我尝试搜索该网站 但我得到的最接近的是返回 JSON 或部分 html 的 ASP NET MVC 控制器操作 https stackoverflow com que
  • 如何从模数、指数和私有指数创建 Crypt::RSA 对象?

    我正在尝试将以下 php 功能移植到 perl public function loadKey mod exp type public rsa new Crypt RSA rsa gt signatureMode CRYPT RSA SIG
  • 如何在webRTC android中将视频流数据录制为mp4?

    请帮我 我在中使用了这个例子https github com pcab AndroidRTC https github com pchab AndroidRTC将视频和音频从 Android 设备流式传输到其他 Android 设备 在这个
  • Scipy Weibull CDF 计算

    我正在 Scipy 中进行生存计算 但无法获得正确的值 My code x a c 1000 1 5 5000 vals exponweib cdf x a c loc 0 scale 1 vals应该等于 0 08555935639278
  • Boost python 导出单例

    我有一个单例 来自 boost serialization class LogManager public boost serialization singleton
  • 将日期时间设置为下一刻钟

    让我们想象一下这个datetime gt gt gt import datetime gt gt gt dt datetime datetime 2012 10 25 17 32 16 我想把时间限制在下一刻钟 以便 datetime da
  • 使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

    在我的网站上 我有两个商家操作 搜索和浏览 一次搜索通常会触发三次浏览 我有一个 JMeter 测试 它使用商家和商家 ID 号的 CSV 文件 在大规模运行此测试时 我希望使用我网站上的所有商家 我已经在 J Meter 中映射了它 如下