Jmeter 如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值
如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值 JMeter版本:3.1 情景: 问题列表页面>每个问题都有唯一的ID>需要单击列表页面上的每个问题,HTTP请求采用两个参数-问题ID和标题 对于这个场景,我可以通过使用ForEach控制器实现一个参数(title),将正则表达式匹配计数设置为-1 当QuestionID的另一个RegExp的匹配计数设置为-1时,如何在同一个ForEach控制器中使用,因为它只接受一个输入变量并将其放入一个输出变量中。下面是当前的测试计划结构 JMeter测试计划结构: HTTP请求如下所示:Jmeter 如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值,jmeter,Jmeter,如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值 JMeter版本:3.1 情景: 问题列表页面>每个问题都有唯一的ID>需要单击列表页面上的每个问题,HTTP请求采用两个参数-问题ID和标题 对于这个场景,我可以通过使用ForEach控制器实现一个参数(title),将正则表达式匹配计数设置为-1 当QuestionID的另一个RegExp的匹配计数设置为-1时,如何在同一个ForEach控制器中使用,因为它只接受一个输入变量并将其放入一个输出变量中。下面是当前的测试计划结
POSThttps://test.com:xx/test
邮政机构:
mode=pr&questionId=454&Title=abcde
这里我必须输入/获取questionId和Title变量值,每个标题都有唯一的questionId
螺纹组
--需求1
--需求2
---正则表达式(标题):匹配编号为-1(调试采样器显示匹配计数:4)
`---正则表达式(QuestionID):匹配号为-1(调试采样器显示匹配计数:2)
回路控制器
---ForEach控制器(用于标题输入变量)
----使用ForEach控制器的输出变量的HTTP req
运行测试>它能够成功地迭代标题变量值,但是如何在ForEach控制器中也使用QuestionID变量,以便HTTP请求可以同时包含两个RegExp变量
请导游
Jmeter版本:4.0
计数器QuesitonID请求:
- 起始值:
1
- 增量:
1
- 最大值:
${QuestionID\u matchNr}
- 参考名称:
计数器
更多信息:您可以在ForEach循环内部使用,例如,如果使用中引入的内部索引将其称为
foreachController
ForEach控制器现在将其当前迭代作为变量公开
命名为jm\uu idx
问题是它从0开始,而QuestionID索引从1开始
所以你需要先增加价值
1.添加测试操作
${__intSum(${__jm__foreachController__idx},1,)}
N
索引获取循环内的相关QuestionID
变量,使用:
${__V(QuestionID_${N})}
谢谢您的指导。然而,我不能让它工作。根据建议,我已将我的“ForEach控制器”名称更新为“foreachController”,并与QuestionID关联。我附上了屏幕截图。请指导。1-您使用的是jmeter 4吗?2-你不是移除了循环,只保留了foreach控制器吗?3-你能为每个控制器添加一个调试采样器并显示你有哪些变量吗?再次感谢。我添加了相关的屏幕截图。使用JMeter4.0,我只有一个foreach控制器,没有循环。非常感谢您的指导,它很有帮助。能够得到两个问题并相互关联。感谢您的建议。在完成上述步骤后,QuestionID值只是替换/关联为'QuestionID_1',而不是实际的问题值。附加屏幕截图。抱歉,这是一个输入错误,您应该使用
evalVar
功能,而不是eval
谢谢您的指导。更新为使用evalVar后,可以获取值,但该值不会增加(始终使用第一个QuestionID,而Debug Sampler中QuestionID_匹配为2)。ForEach控制器有“title”的输出变量,它有两个值,QuestionID也有两个值,因此假设它类似于QuestionID_1值+title值1;问题ID_2+标题值2。请导游。
${__V(QuestionID_${N})}