在 JMeter 的 JSR223 断言中获取所有以前的采样器结果(重定向)
Get all previous sampler results (redirects) in JMeter's JSR223 Assertion
我正在使用 JMeter 打一个 API。
我正在点击的 URI (Test API-0) 将 return 302 Found 并将其重定向到 Test API-1 它将再次 return 302 Found 并将其重定向到测试 API-2。如果一切正常,测试 API-2 将 return 200 OK。
我想获取协议、主机、路径和测试API-0、测试API-1和测试API-2.
的响应代码
在 JSR223 断言 Groovy 语言中,我尝试了
def url = prev.getURL();
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
log.info('Full URL: ' + url.toString())
log.info('Protocol: ' + protocol )
log.info('host: ' + host )
log.info('path: ' + path )
但这只会给我测试 API-2(只有最新的 URI)。
我也试过
log.info("Previous Response URL is: " + ctx.getPreviousResult().getURL());
log.info( "The Sample URL is : " + SampleResult.getUrlAsString() );
同样的结果。我只得到测试 API-2(只有最新的 URI)。
如何获得所有测试 API-0、1 和 2?
[12 月 10 日更新]:
user7294900 给出的解决方案:
在 JSR223 断言中 window
import org.apache.jmeter.samplers.SampleResult;
SampleResult[] subResults = prev.getSubResults();
subResults.each { it ->
def url = it.getURL();
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
log.info("URL: " + url )
log.info("Protocol: " + protocol )
log.info("host: " + host )
log.info("path: " + path )
}
您还可以使用 prev.getSubResults() 获取子结果并从数组中获取数据
SampleResult[] subResults = prev.getSubResults();
array containing the subresults for this sample
您可以迭代每个子结果:
subResults.each { it->
def url = it.getURL());
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
}
我正在使用 JMeter 打一个 API。 我正在点击的 URI (Test API-0) 将 return 302 Found 并将其重定向到 Test API-1 它将再次 return 302 Found 并将其重定向到测试 API-2。如果一切正常,测试 API-2 将 return 200 OK。
我想获取协议、主机、路径和测试API-0、测试API-1和测试API-2.
的响应代码在 JSR223 断言 Groovy 语言中,我尝试了
def url = prev.getURL();
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
log.info('Full URL: ' + url.toString())
log.info('Protocol: ' + protocol )
log.info('host: ' + host )
log.info('path: ' + path )
但这只会给我测试 API-2(只有最新的 URI)。
我也试过
log.info("Previous Response URL is: " + ctx.getPreviousResult().getURL());
log.info( "The Sample URL is : " + SampleResult.getUrlAsString() );
同样的结果。我只得到测试 API-2(只有最新的 URI)。
如何获得所有测试 API-0、1 和 2?
[12 月 10 日更新]:
user7294900 给出的解决方案:
在 JSR223 断言中 window
import org.apache.jmeter.samplers.SampleResult;
SampleResult[] subResults = prev.getSubResults();
subResults.each { it ->
def url = it.getURL();
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
log.info("URL: " + url )
log.info("Protocol: " + protocol )
log.info("host: " + host )
log.info("path: " + path )
}
您还可以使用 prev.getSubResults() 获取子结果并从数组中获取数据
SampleResult[] subResults = prev.getSubResults();
array containing the subresults for this sample
您可以迭代每个子结果:
subResults.each { it->
def url = it.getURL());
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();
}