Как получить родительский URL текущего неудачного URL в Jmeter?

Я пытаюсь получить родительский URL текущего невыполненного запроса (например, для веб-сайта, посвященного путешествиям, родительский URL будет поисковой службой, а текущий URL выбирает страницу рейсов). Как мы можем это сделать? после сбоя URL-адреса и бобовой оболочки, чтобы он выбирал родительский URL-адрес для всех запросов на сбойные рейсы. Но происходит то, что, если текущий запрос на полет является фальсификацией, он не перейдет к следующему, если контроллер вообще. Исполнение останавливается. Кто-нибудь может направить меня с лучшим путем?

1 ответ

  1. Прежде всего, забудьте о Beanshell, вы должны использовать JSR223 Test Elements и язык Groovy для сценариев, начиная по крайней мере с JMeter версии 3.1 (для более ранних версий это также было рекомендовано, однако Groovy не был включен в дистрибутив JMeter)
  2. Добавьте JSR223 PostProcessor как дочерний элемент для второго запроса
  3. Поместите следующий код в область "Сценарий":

    if (!prev.isSuccessful()) {
        log.info('Previous sampler name: ' + ctx.getPreviousSampler().getName())
        log.info('Previous sampler URL: ' + ctx.getPreviousSampler().getUrl().toString())
    }
    
  4. Вот и все, вы должны увидеть имя предыдущего сэмплера и его URL на панели просмотра журнала и в файле jmeter.log

    Вы можете сохранить URL-адрес в переменную JMeter, например:

    vars.put('url', ctx.getPreviousSampler().getUrl().toString())
    

    После этого вы сможете получить доступ к значению как ${url} где требуется.

Рекомендации:

См. JavaDoc для вышеупомянутых классов для описания используемых функций и статью Apache Groovy - почему и как вы должны это использовать для получения дополнительной информации о скриптах Groovy в JMeter.

Другие вопросы по тегам