首页 文章

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

提问于
浏览
-1

[在此输入图像说明] [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

    如果你需要加入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

    参考文献:

相关问题