Освежающий токен - PullRequest
       9

Освежающий токен

0 голосов
/ 06 ноября 2019

Я нахожу тему Обновление токена аутентификации при сохранении запросов в JMeter 3.3 . Я столкнулся с одной и той же задачей - обновлять токен каждый раз и отправлять другие запросы одновременно. Я видел, что автор нашел решение. Но я был бы очень признателен, если бы вы могли поделиться логикой. Я попытался с глобальным свойством в Jmeter, но кажется, что я установил один токен для всех пользователей. Таймер также был добавлен, но я получаю один токен для сеансов. Возможно, у нас есть новое решение для Jmeter 5.x. Благодарю.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Спасибо большое! Я реализовал свой сценарий, используя следующую логику в одной группе потоков:

  1. Установить переменную «Триггер» = 60 секунд (интервал обновления токена в минуту);
  2. Вход пользователя;
  3. Получить запрос токена;и выполните действия:
    • Извлечение токена и сохранение в vars;
    • Сохранение «TokenTime» в vars (где «Login» из CSV - это имя свойства);
    • Рассчитать«TokenDiffTime» = «TimeNow- TokenTime» -> Сохранить как свойство с уникальным именем (уникальное имя может быть строкой «Login» + «TimeDiff» - где «Login» - динамический вход из CSV, а «TimeDiff» - просто статическая строка; пример имени свойства «User1TimeDiff»).
  4. Контроллер цикла с логикой:
    • Если контроллер (токен действителен? -> проверить «TokenDiffTime»> =«Триггер») -> запрос токена обновления вызова;Извлечь актуальный токен.
    • Invoke App request;с использованием фактического токена.
    • Если контроллер (токен действителен? -> проверить «TokenDiffTime»> = «Триггер») -> запрос вызова обновления токена;Извлечь фактический токен.
    • Invoke App request;с использованием фактического токена.

Таким образом, такая логика учитывает задержки времени ответа, и новый запрос приложения вызывается с фактическим токеном. «Триггер» - это гибкое значение для установки интервала обновления токена. Надеюсь, что эта тема может быть кому-то полезна.

0 голосов
/ 07 ноября 2019

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

Что-то вроде:

${__setProperty(token_${__threadNum},variable containing the token,)}

сгенерирует следующие свойства JMeter:

token_0=token for the first virtual user
token_1=token for the second virtual user
etc.

, доступ к которым можно получить аналогичным образом с помощью функции __ P () как:

${__P(token_${__threadNum},)}

Дополнительная информация: Вот что нужно сделать, чтобы объединить несколько переменных JMeter

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