我有一个请求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"
}
}
我必须验证LastPage,如果它大于1,则必须对1到6的所有Pages编号执行相同的上述请求。我已经用正则表达式捕获了该页码。您能告诉我们在这种情况下如何循环吗?
答案 0 :(得分:0)
添加一个条件为${__jexl3("${LastPage}" > 1)}
的{{3}},其中LastPage
是您的正则表达式提取器的引用名。
添加一个If Controller并将循环计数更改为${__intSum(${LastPage},-1)}
在具有以下配置的循环控制器下添加一个loop controller
2
1
${LastPage}
pageCounter
Track counter independently for each user
和Reset counter on each Thread Group iteration
将您的HTTP请求复制并粘贴到循环控制器下,并将page
参数更改为page=${pageCounter}
答案 1 :(得分:0)
将Regular Expression Extractor添加为请求的子代,该请求返回上述响应并将其配置为:
lastPage
"LastPage"\s?:\s?"page=(\d+)",
$1$
在请求后添加If Controller,并使用以下条件:
${__groovy((vars.get('lastPage') as int) > 1,)}
Loop Controller作为If控制器的子级,并使用以下表达式作为“循环计数”:
${__groovy((vars.get('lastPage') as int) -1,)}
将HTTP Request采样器添加为循环控制器的子代,并将请求主体修改为:
{
"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"
}
}