Невозможно сопоставить значение [токен] из одного сэмплера в другой в JMeter - PullRequest
0 голосов
/ 05 февраля 2019

Я записал скрипт, используя плагин BlazeMeter, и я хочу использовать токен доступа, который я получаю в успешном запросе входа в систему, в другом запросе.Мой план тестирования выглядит следующим образом:

Thread Group : [A]
      |- HTTP Sampler - Login Page
           |-Regular Expression Extractor [getToken]
      |-HTTP Sampler - Other Page
           |-Beanshell PreProcessor[Set Header in Authorization]
  1. Параметры и значения экстрактора регулярных выражений, как показано ниже:

    Variable Name : token
    Regular Expression  : {“access_token”:”(.+?)"
    Template : $1$
    Match No. : 0
    
  2. Beanshell PreProcessor scriptниже

    import org.apache.jmeter.protocol.http.control.Header;
    log.info("Start");
    sampler.getHeaderManager().add(new Header("Authorization","Bearer"+vars.get("token")));
    log.info(vars.get("token"));
    

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019
  1. Скорее всего, ваш экстрактор регулярных выражений не работает, так как ваши кавычки выглядят крайне подозрительно.Вы можете дважды проверить, действительно ли переменная token имеет ожидаемое значение, используя комбинацию Debug Sampler и View Results Tree listener .Также проверьте jmeter.log file на наличие подозрительных записей, если ваш скрипт Beanshell завершится неудачно - причина будет напечатана там.
  2. Данные ответа Login Page выглядят как JSON , поэтому имеет смысл использовать JSON Extractor вместо экстрактора регулярных выражений.Это позволяет использовать JSON Path language для извлечения "интересных" битов данных из ответов.В вашем случае соответствующее выражение JSON Path было бы $.access_token

  3. Начиная с JMeter 3.1 рекомендуется использовать тестовые элементы JSR223 и язык Groovy для сценариев , поэтому рассмотрите возможность перехода на JSR223 PreProcessor и язык Groovy (вы можете повторно использовать один и тот же код)

  4. Вам даже не нужны скрипты, вы можете добавить Авторизация заголовок (как и любой другой заголовок), используя HTTP Header Manager
0 голосов
/ 05 февраля 2019

Не могли бы вы добавить отладочный сэмплер и попытаться сначала подтвердить правильность работы экстрактора регулярных выражений?Он должен предоставить вам требуемое значение token.

. Если ваше token имеет требуемое значение, я предлагаю вам добавить элемент конфигурации HTTP Header Manager, щелкнув правой кнопкой мыши по образцу HTTP

* 1007.*

В этом элементе конфигурации вы можете визуально добавить Заголовки, как показано ниже: Sample image for HTTP Header Manager

Обратите внимание, что: - Вы не указали пробел / дефис (-) или между ключевым словом Bear и токеном.

Для получения подробной информации см. Эту ссылку: - https://stackoverflow.com/a/24550552/1115090

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