如何循环jmeter请求?

如何循环jmeter请求?,jmeter,Jmeter,我有一个请求https://***********/projects?page=1 这就是答案 { "QueryInfo": { "QryNa": "Q_PTE1", "resourc": "https://******************QueryResultsAsXML.v2/q/?auth=", "CurrentPage": "page=1", "FirstPage": "page=1", "LastPage": "

我有一个请求
https://***********/projects?page=1

这就是答案

 {
    "QueryInfo": {
      "QryNa": "Q_PTE1",
      "resourc": "https://******************QueryResultsAsXML.v2/q/?auth=",
      "CurrentPage": "page=1",
      "FirstPage": "page=1",
      "LastPage": "page=6",
      "Rows": "1000",
      "TotalRows": "6000"
    } 
}
我必须验证最后一页,如果它大于1,我必须对从1到6的所有页码运行相同的上述请求。我已经用正则表达式捕获了页码。你能告诉我如何循环这个场景吗?

添加一个with条件
${{jexl3(${LastPage}>1)}
其中
LastPage
是正则表达式提取器的参考名称

添加并将循环计数更改为
${{u intSum(${LastPage},-1)}

添加具有以下配置的环下控制器

  • 开始:
    2
  • 增量:
    1
  • 最大值:
    ${LastPage}
  • 参考名称:
    pageCounter
  • 确保为每个用户分别检查
    跟踪计数器和
    在每个线程组迭代中重置计数器
复制并粘贴循环控制器下的HTTP请求,并将
page
参数更改为
page=${pageCounter}

  • 添加为返回上述响应的请求的子级,并将其配置为:

    • 所创建变量的名称:任何有意义的内容,即
      lastPage
    • 正则表达式:
      “LastPage”\s?:\s?“page=(\d+”,
    • 模板:
      $1$
  • 在请求后添加,并使用以下条件:

    ${__groovy((vars.get('lastPage') as int) > 1,)}
    
  • 作为If控制器的子级,并使用以下表达式作为“循环计数”:

  • 将sampler添加为循环控制器的子级,并修改请求主体,使其如下所示:

    {
      "QueryInfo": {
        "QryNa": "Q_PTE1",
        "resourc": "https://******************QueryResultsAsXML.v2/q/?auth=",
        "CurrentPage": "page=${__intSum(${__jm__Loop Controller__idx},2,)}",
        "FirstPage": "page=1",
        "LastPage": "page=6",
        "Rows": "1000",
        "TotalRows": "6000"
      }
    }   
    

  • {
      "QueryInfo": {
        "QryNa": "Q_PTE1",
        "resourc": "https://******************QueryResultsAsXML.v2/q/?auth=",
        "CurrentPage": "page=${__intSum(${__jm__Loop Controller__idx},2,)}",
        "FirstPage": "page=1",
        "LastPage": "page=6",
        "Rows": "1000",
        "TotalRows": "6000"
      }
    }