Jmeter: если срок действия токена истек; тогда только я хочу перезапустить API авторизации и обновить значение токена - PullRequest
0 голосов
/ 07 января 2019

Если срок действия токена истек; только тогда я хочу перезапустить API авторизации и обновить значение токена.

Для этой цели я использую два файла CSV; один для имени пользователя, а другой для токена.

Теперь, когда я запускаю API авторизации; Я проверяю, есть ли токен для этого пользователя.

Случай 1. Если его нет, я извлекаю имя пользователя, токен, токен тип, срок действия и дата выпуска.

Случай 2. Если он присутствует, я проверяю, что срок действия токена истек или нет Истек срок действия, после чего API авторизации будет запущен и обновлен в файле.

Первое условие работает нормально, т. Е. API успешно запущен, и извлеченная дата заносится в файл Token CSV.

У меня проблема со вторым состоянием; т.е. если против соответствующего пользователя, если истек срок меньше текущей даты, то я хочу повторно запустить Авторизация, а также обновление токена, дата выпуска и срок действия в Токен CSV-файл. Как мне этого добиться.

Я пытаюсь добиться этого, если контроллер, JSON Extractor и постпроцессор. Если условие, мое выражение

${__groovy((vars.get("UserName").equalsIgnoreCase(vars.get("UserName_1")) && (("${__groovy(TimeZone.setDefault(TimeZone.getTimeZone("GMT")); Date date = new Date(); date.format("EE'\,' dd MMM yyyy HH:mm:ss 'GMT'");,)}".compareTo(vars.get("ExpiresDate")) < 0)) || vars.get("ExpiresDate").equalsIgnoreCase("<EOF>"))
,)}

Я прилагаю файл JMX по этой ссылке [https://filebin.net/gj0q3pyiaqlogt0w]

Пожалуйста, помогите мне достичь этого.

1 Ответ

0 голосов
/ 07 января 2019
  1. Вы не можете иметь 2 __ groovy () функции в области «Условие» If контроллера, поскольку оно не будет распознано как действительное условие
  2. Функция Date.format () возвращает String , поэтому ваша функция compareTo () фактически вызывается для String object . Я полагаю, вы должны скорее сравнивать 2 даты, поэтому вам нужно изменить эту часть условия на:]

    (new Date().compareTo(Date.parse("EE',' dd MMM yyyy HH:mm:ss 'GMT'", vars.get("ExpiresDate"))) < 0
    
  3. Как правило, вы можете выполнить запрос условно так же просто, как поставить соответствующий Модуль контроллера как дочерний элемент If Controller, отметьте Легко написать оператор GOTO в JMeter статья для более подробной информации.

  4. Ссылка на ваш тест не работает, если вам нужна дополнительная помощь, рассмотрите возможность предоставления плана тестирования и всех связанных с ним данных (например, файлов CSV, возможных значений переменных и т. Д.)

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