Как записать X-CSRF-TOKEN с помощью Jmeter из диспетчера заголовков HTTP

Я записал сценарий входа на страницу (построенный на Java и Angular), и самый первый запрос не показывает X-CSRF-TOKEN на вкладке Response Data, но второй HTTP-запрос имеет X-CSRF-TOKEN в HTTP-заголовке. Manager, и когда я пытаюсь запустить скрипт, второй HTTP-запрос показывает код ответа 401, поскольку записанный X-CSRF-TOKEN больше не действителен, поэтому мне было интересно, как написать регулярное выражение для захвата X-CSRF-TOKEN путем создания выражения reg в качестве постпроцессора.

Сообщите, пожалуйста, как получить X-CSRF-TOKEN динамически.

Спасибо


person Kumar    schedule 26.08.2019    source источник


Ответы (2)


Изучая статью XSRF от Angular: как это работает:

  • Найдите файл cookie с именем XSRF-TOKEN в текущем домене.

  • Если этот файл cookie найден, он считывает значение и добавляет его в запрос в качестве заголовка X-XSRF-TOKEN.

Таким образом, вы не сможете найти X-XSRF-TOKEN в данных ответа, вместо этого вам следует искать XSRF-TOKEN Cookie в Заголовок ответа Set-Cookie.

  1. Добавьте следующую строку в файл user.properties (находится в папке bin вашей установки JMeter)

    CookieManager.save.cookies=true
    
  2. Перезапустите JMeter, чтобы принять изменения

  3. Добавьте HTTP Cookie Manager в свой план тестирования.

  4. Добавьте HTTP Header Manager в свой план тестирования и настройте его для отправки следующего заголовка :

    • Name: X-XSRF-TOKEN
    • Значение: ${COOKIE_XSRF-TOKEN}

Дополнительная информация: Как загрузить тестовую сеть, защищенную CSRF. Сайты

person Dmitri T    schedule 27.08.2019

Не могли бы вы проверить встроенный ресурс 1-го запроса-ответа от JMeter или браузера? Если вы его там не видите, можете ли вы уточнить у разработчика? иногда токены генерируются на стороне клиента / браузера (например, с использованием javascript), и это действие не фиксируется в Jmeter.

person khushal wadake    schedule 27.08.2019