如何在Jmeter的循环控制器的下一次迭代中使用部分请求?

时间:2017-08-08 15:00:04

标签: jmeter

[在此输入图像说明] [1] [在此处输入图像说明] [2]如何在Jmeter的下一个请求中接受请求的一部分并使用它? (我正在尝试记录一个应用程序,在登录后我们显示了100行,当我们在达到100限制后滚动时,一个延迟加载调用进入服务器并且还获取了50个记录。这里的调用是JSON格式的它作为请求在所有100条记录中发送的第一个滚动,作为响应,我们得到50条新记录。现在当我们滚动超过150条记录时,请求将所有150条记录作为请求,但响应再次为50,并且下一次滚动请求count将是200,cumulatinve。现在我试图在那里放置一个循环控制器并在循环中完成其余的滚动)。每个延迟加载调用只会提供50条记录,但对于下一次请求迭代,累计记录数将作为请求发送。

我的直觉是说为此使用预处理器和后处理器。是的,我是Jmeter的新手,我不确定为此目的使用哪个预处理器,或者是否还有其他替代方案可以解决这个问题。

如果默认页面响应是“fgAhi”,我需要值“A”来传递第一个Json请求。所以第一个请求就像“xAy”,响应是“pBq”。现在进行第二次迭代,我需要请求为“xABy”,响应将为“pCq”。第三个请求是“xABCy”,响应是“pDq”,依此类推

1 个答案:

答案 0 :(得分:0)

如果您需要加入2个JSON实体(即第一个响应中的50个记录和第二个响应中的50个记录到100个记录的新JSON对象中,您可以使用JSR223 PostProcessor。示例代码将类似于:

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

def previousResponse = vars.get('previousResponse')

def currentResponse = prev.getResponseDataAsString()

log.info('Previous response: ' + previousResponse)
log.info('Current response: ' +  currentResponse)

def slurper = new JsonSlurper()
def json1 = slurper.parseText(previousResponse)
def json2 = slurper.parseText(currentResponse)

def cumulativeResponse = JsonOutput.prettyPrint(JsonOutput.toJson ([json1, json2]))

log.info('Cumulative response: ' + cumulativeResponse)

vars.put('previousResponse', cumulativeResponse)

演示:

JMeter Groovy JSON Merge

参考文献: