Я использую JMeter для одного API. URI, который я нажимаю (Test API-0), вернет 302 Found и перенаправит его на Test API-1, который снова вернет 302 Found и перенаправит его на Test API-2. Тест API-2 вернет 200 OK, если все в порядке.
Я хочу получить протокол, хост, путь и код ответа Test API-0, Test API -1 и Test API-2.
На языке JSR223 Assertion 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 )
Но это даст мне только Test API-2 (только последний URI).
Я также пробовал с
log.info("Previous Response URL is: " + ctx.getPreviousResult().getURL());
log.info( "The Sample URL is : " + SampleResult.getUrlAsString() );
Опять тот же результат. Я получаю только Test API-2 (только последний URI).
Как я могу получить все тестовые API-0, 1 и 2?
[ОБНОВЛЕНИЕ 10 дек]:
Рабочее решение, данное пользователем7294900:
В окне утверждения JSR223
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 )
}