Jmeter 如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值

Jmeter 如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值,jmeter,Jmeter,如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值 JMeter版本:3.1 情景: 问题列表页面>每个问题都有唯一的ID>需要单击列表页面上的每个问题,HTTP请求采用两个参数-问题ID和标题 对于这个场景,我可以通过使用ForEach控制器实现一个参数(title),将正则表达式匹配计数设置为-1 当QuestionID的另一个RegExp的匹配计数设置为-1时,如何在同一个ForEach控制器中使用,因为它只接受一个输入变量并将其放入一个输出变量中。下面是当前的测试计划结

如何在ForEach控制器中使用匹配计数为-1的两个正则表达式变量值

JMeter版本:3.1

情景: 问题列表页面>每个问题都有唯一的ID>需要单击列表页面上的每个问题,HTTP请求采用两个参数-问题ID和标题

对于这个场景,我可以通过使用ForEach控制器实现一个参数(title),将正则表达式匹配计数设置为-1

当QuestionID的另一个RegExp的匹配计数设置为-1时,如何在同一个ForEach控制器中使用,因为它只接受一个输入变量并将其放入一个输出变量中。下面是当前的测试计划结构

JMeter测试计划结构:

HTTP请求如下所示:
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请求:

  • 将测试元素添加为ForEach控制器的子级,并按如下方式进行配置:

    • 起始值:
      1
    • 增量:
      1
    • 最大值:
      ${QuestionID\u matchNr}
    • 参考名称:
      计数器

  • 使用类似的方法引用生成的值:

    必要时


  • 更多信息:

    您可以在ForEach循环内部使用,例如,如果使用中引入的内部索引将其称为
    foreachController

    ForEach控制器现在将其当前迭代作为变量公开 命名为jm\uu idx

    问题是它从0开始,而QuestionID索引从1开始

    所以你需要先增加价值 1.添加测试操作

  • 在其下添加变量名为N的用户参数和增量为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})}