JMeter использует одинаковое извлеченное значение для всех потоков - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть два примера запроса: один ответ на запрос генерирует первое json (подтверждение клиента) с некоторой датой, ссылкой на платеж (уникальным для каждого прогона) и статусом. Следующий запрос (MakePayment) заключается в использовании ссылки на платеж в первом запросе в качестве тела, а затем публикации для осуществления платежа. Я использовал Reqular Expression и bean Shell для извлечения и публикации. Это работает, когда я использовал один поток для запуска во время выполнения.

Проблема сейчас заключается в следующем. Я хочу запустить нагрузочный тест для 50 потоков, каждый поток будет возвращать уникальную ссылку на платеж, и каждый из них следует использовать в следующем запросе. В настоящее время я написал первое извлеченное значение для всех следующих потоков, которые выполняют только одну работу, поскольку ссылка не может быть использована для запроса 2. 49 не удастся.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Если я запускаю с 50, Threads, первый запрос будет генерировать 1 уникальную ссылку каждый в ответ. Я хочу использовать каждый из них в темах «Внести платеж». В настоящее время используется только один из справочников для всех запросов на оплату

1 Ответ

0 голосов
/ 23 апреля 2020
  1. Свойства JMeter global для всей JVM, вам необходимо указать свойство c для потока
  2. Начиная с JMeter 3.1, вы должны использовать Тестовые элементы JSR223 и Groovy язык для сценариев
  3. Никогда не включайте функции JMeter или переменные в сценарии
  4. Лучше использовать JSON Extractor для получения значений из JSON ответов

  1. Измените утверждение Beanshell на Утверждение JSR223 и используйте там следующий код:

    props.put('payment_reference_' + (ctx.getThreadNum() + 1), vars.get('payment_reference'))
    
  2. В вашем «запросе на оплату» используйте комбинацию функций __P () и __ threadNum () , чтобы получить поток -specifi c значение как:

    ${__P(payment_reference_${__threadNum},)}
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...