performance - 如何在一组请求具有相同数据字段(与其他集合不同)的线程组中有请求?
问题描述
我在 jmeter 中有两个单独的线程组,
First Thread Group : 对应于第一个线程组的所有用户负责点击创建用户并返回 userId 作为响应的 API
第二线程组:第二线程组对应的所有用户负责点击一个API,该API为创建的用户上传照片,并使用userId(在之前的响应中返回)作为其请求数据。
我使用了 jmeter 的 InterThreadCommunication 插件,因此来自第一个线程组的 API 命中响应的用户 ID 被映射到第二个线程组的 API 命中的请求数据。
问题是在线程组 2 中,我需要运行用户的上传图像 5 次(以便有一组对应于每个用户的图像)。如何扩展 InterThreadCommunication 功能以将一个 userId 从 threadGroup1 映射到 threadGroup2 的 5 个请求(类似地,另一个 userId 映射到另外 5 个请求)
当前实施:
线程组 1:
jp@gc - 线程间通信后处理器:
要放入数据的 FIFO 队列名称:userIdList
valueToPut:$ 用户ID
线程组 2:
jp@gc - 线程间通信预处理器
要从中获取数据的 FIFO 队列名称:userIdList
存储数据的变量名:userId
线程组 2 请求数据,我将值用作 $ userId
解决方案
只需使用Once Only Controller获取一次,然后使用Loop Controller执行请求 5 次
如果线程间通信插件不够灵活,无法满足您的需求,您可以随时切换到在线程组之间传递值的另一种方法,即
使用__setProperty()和__threadNum()函数组合将值存储在第一个线程组中,例如:
${__setProperty(userid_${__threadNum}, YOUR_VALUE_HERE,)}
使用__P()和 __threadNum() 函数组合来读取第二个线程组中的值,例如:
${__P(userid_${__threadNum},)}
查看Apache JMeter Functions - An Introduction article,了解有关 JMeter Functions 概念的更多信息。
推荐阅读
- java - 需要帮助动态更新部署在同一 JBOSS Wildfly 服务器上的 3 个 Web 应用程序的日志级别
- android - Android,Xamarin:从 SD 卡上的某个位置获取 mp3 并转换为 URI 播放
- html - 在pdfmake中如何从字符串打印html数据
- html - 对 Windows Safari 的滤镜模糊支持
- python - 使用布尔逻辑合并和过滤一个数据框的多列
- c++ - 避免使用 boost::interprocess::message 队列创建文件
- python - 使用python检测日志文件中是否存在csv列中的字符串?
- quickbooks - 我必须在 QuickBooks online 中处理的发票状态的可能值是什么?
- wordpress - 使用 Wordpress 进行移动响应式设计
- mysql - 在 MySQL 中的两个表中加入