В JMeter, как мне установить несколько динамических переменных в пользовательских параметрах или конфигурации набора данных CSV - PullRequest
0 голосов
/ 14 ноября 2018

Очень плохо знаком с JMeter (и долгое время слушатель переполнения стека, но впервые вызывающий абонент, так что не беспокойтесь обо мне), поэтому любая помощь будет принята.

Я пытаюсь настроить тест JMeter, который используетнесколько динамически генерируемых токенов доступа для работы в различных сценариях.В настоящее время у меня есть набор данных, используя CSV Data Set Config , содержащий учетные данные для входа в систему электронной почты и пароля пользователя, например:

email1@email.com,password1
email2@email.com,password2

Далее я отправляю запрос HTTP POST к сервису Login, который генерирует accessToken.Затем я использую JSON Extractor , чтобы получить сгенерированный accessToken.После этого я использую BeanShell Assertion для хранения свойства / переменной accessToken.

Кажется, моя проблема заключается в этом последнем шаге, поскольку он будет хранить только последнюю сгенерированную переменную вместо каждогосгенерированных accessTokens.Я хочу иметь возможность сохранять / перезаписывать захваченный accessToken для каждой комбинации пароля электронной почты.Я хотел бы изменить / заполнить файл CSV следующим образом:

email1@email.com,password1,accessToken1
email2@email.com,password2,accessToken2

Я также пытался использовать Предварительный процессор> Параметры пользователя

Экранснимок пользовательских параметров

Я бы хотел, чтобы переменная "userBearerToken" обновлялась / перезаписывалась вместе с тестами, но я не могу найти способ сделать это, или это можно сделать в настоящее время.

Мне трудно сказать, что я пытаюсь спросить, но в основном я хочу хранить несколько динамически генерируемых переменных (accessTokens, которые меняются и время ожидания) и использовать их в других тестах.Мне все равно, какой компонент может обработать это (CSV или параметр пользователя), но мне нужно иметь возможность хранить эти переменные с соответствующими учетными данными пароля электронной почты.

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы хотите сохранить значение accessToken в свойстве JMeter для использования в других группах потоков , помните, что свойства являются глобальными для всей JVM и остаются до перезапуска JMeter, поэтому еслиВы определяете одно accessToken свойство - каждый поток JMeter (или итерация) будет перезаписывать значение.

Решение состоит в том, чтобы использовать номер текущего потока (или итерации) в качестве префикса или постфикса, это можно сделать с помощью функции __ $ {__ threadNum} или соответствующей переменной JMeter в зависимости от того, как выполняется итерацияопределяется или оба.

Пример настройки:

  1. В первой группе потоков: ${__setProperty(access_token_${__threadNum},bar,)}
  2. Во второй группе потоков: ${__P(access_token_${__threadNum},)}

Демонстрация:

enter image description here


Если вы хотите сохранить значения в файл, запись в текущий не лучшая идея, как вы можете (иСкорее всего, получит поврежденный файл из-за формы гонки .Поэтому я бы рекомендовал использовать свойство Sample Variables .

Если вы добавите следующую строку в user.properties file:

sample_variables = email, пароль, accessToken

JMeter будет хранить переменные с именем ${email}, ${password} и ${accessToken} вместе с их значениями в файле результатов .jtl, который в основном представляет собой файл CSV, который можно использовать в другом месте.

Однако, если у вас есть требование хранить только учетные данные и токен, вы можете перейти на плагин Flexible File Writer и настроить его так, чтобы сохранить вышеупомянутые значения переменных в отдельном файле,соответствующая конфигурация будет такой простой:

variable#0,variable#1,variable#2

enter image description here

Вы можете установить плагин Flexible File Writer, используя JMeter Plugins Manager

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...