Токен защиты от подделки и веб-тестирование

Я пытаюсь провести веб-тест в VS2012 для сайта MVC. Один из сценариев — войти в систему и просмотреть список продуктов, выбрать нужный и перейти на страницу покупки.

Проблема в том, что при запуске веб-теста я получаю сообщение об ошибке о токене защиты от подделки и о том, что он не соответствует.

Как вообще возможно провести тестирование с токеном защиты от подделки? Пользователь должен войти в систему — для нагрузочного теста будут тысячи пользователей (в конечном итоге), но сначала нужно заставить его работать для 1 пользователя.

представление/действие входа в систему выполняет AntiForgeryToken в представлении и проверке на контроллере.

любые советы и подсказки приветствуются.


person Ahmed ilyas    schedule 14.11.2013    source источник
comment
Что такое токен защиты от подделки? Можете ли вы относиться к нему как к другому динамическому параметру? Возможно, с помощью правила извлечения ответа на вход в систему, а затем передачи этого значения в более поздних запросах?   -  person AdrianHHH    schedule 16.11.2013
comment
да, мне удалось это исправить .... вскоре опубликую ответ   -  person Ahmed ilyas    schedule 16.11.2013


Ответы (3)


После того, как вы запустите свой скрипт и он выйдет из строя, перейдите к вызову, продолжающему тот, который не работает.

  • Перейти на вкладку ответ

  • В теле найдите имя __RequestVerificationToken, которое находится во входном теге, и извлеките все, что находится между атрибутом value.

  • Выберите значение и щелкните правой кнопкой мыши > добавить правило извлечения и нажмите OK.

  • Вы найдете папку правил извлечения, а под ней только что созданное правило извлечения. Не стесняйтесь переименовывать имя параметра контекста.

  • Перейдите на следующую страницу, которая должна быть ошибкой, и найдите параметр сообщения формы с именем «__RequestVerificationToken». Посмотреть его свойства

  • Привяжите его к имени параметра контекста, созданному ранее. Для этого просмотрите свойства этого параметра сообщения и установите «Значение» следующим образом:

{{Имя контекстного параметра}}

(Включите фигурные скобки 2x)

  • Нажмите Enter, чтобы подтвердить/сохранить

При следующем запуске скрипта все работает

Вот как это сработало для меня...

person Ahmed ilyas    schedule 16.11.2013

Я видел похожую проблему. После записи сценария веб-тестирования сценарий завершался сбоем в момент входа в систему со следующим сообщением:

Предоставленный токен защиты от подделки предназначался для пользователя "Domain\UserName", но текущий пользователь "".

Решение состояло в том, чтобы установить для свойства PreAuthenticate значение false в свойствах теста. По умолчанию веб-тесты передают заголовок аутентификации на сервер, который использовался при создании токена.

person themarmotte    schedule 18.12.2014

Я не знаком с «веб-тестированием в VS2012», но, насколько я знаю, "Токен защиты от подделки" требует отправки токена из браузера на сервер обратно.

У меня был опыт работы с Selenium-Webdriver, и я предлагаю вам использовать это потому, что он предоставляет API для взаимодействия с поддерживаемыми браузерами, как это делает реальный пользователь.

Вы можете легко начать использовать Selenium WebDriver, если добавите пакет Selenium WebDriver 2.37.0 NuGet вам тестовый проект.

Selenium-WebDriver напрямую обращается к браузеру, используя каждый встроенная поддержка браузера для автоматизации. Способ выполнения этих прямых вызовов и поддерживаемые ими функции зависят от используемого вами браузера.

В настоящее время Selenium-webdriver поддерживает следующие драйверы:

person Ilya Palkin    schedule 14.11.2013
comment
ценится, но использование чего-либо еще не является решением для меня. - person Ahmed ilyas; 15.11.2013
comment
Я считаю, что взаимодействие с реальными браузерами будет работать только для регрессионного тестирования/тестирования пользовательского интерфейса, а не для тестирования производительности/нагрузки. - person Roger Perkins; 10.10.2018