Сбой экстрактора регулярных выражений в JMeter для веб-форм asp.net - PullRequest
0 голосов
/ 13 февраля 2019

Используя JMeter, я пытаюсь войти в приложение веб-форм asp.net.Я записал последовательность входа в файл * .jmx и теперь пытаюсь извлечь скрытые входные данные __VIEWSTATE, __VIEWSTATEGENERATOR и __EVENTVALIDATION с помощью постпроцессора Regular Expression Extractor.

Во всех 3 случаях JMeter извлекаетимя переменной, в которую я хочу извлечь (например, "$ {viewstate}") вместо значения, которое я хочу извлечь.Вот как выглядит объект RequestBody, когда я смотрю на дерево ViewResults и выбираю «Текст»:

ReturnUrl =% 2F & __ VIEWSTATEGENERATOR =% 24% 7Bviewstategenerator% 7D & __ EVENTARGUMENT = & __ VIEWSTATE =% 24% 7% ViewBlt% PL0nt1Tolt% 7HD2D1Tolt2D3D3WD3D0W0H0H0H0H0H0H0H0H0H0H0T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3T3H0% 24LoginButton.x = 25 & ctl00% 24ContentPlaceHolder1% 24Login1% 24Password = MyPassword% 21 & ctl00% 24ContentPlaceHolder1% 24Login1% 24LoginButton.y = 4 & __ LASTFOCUS = & ctl00% 24ContentPlaceHolder1% 24Login1% 24UserName = MyUserName & __ EventTarget = & __ EVENTVALIDATION =% 24% 7Beventvalidation% 7D

Как ни странно, если я выберу "RegExpTester" в дереве ViewResults и протестирую свои регулярные выражения, все они, похоже, будут работать.

Например, вот как выглядит мой экстрактор __VIEWSTATE:

enter image description here

Регулярное выражение - это бит текста:

name="__VIEWSTATE" id="__VIEWSTATE" value="(.+?)"    

Когда я ввожу это выражение в RegExp Tester, оно находит его.Другие 2 также работают:

enter image description here

Я впервые использую JMeter, подозреваю, что что-то не в том месте.

Вот как настроен мой HTTP-запрос:

enter image description here

Вот как выглядит весь проект:

enter image description here

1 Ответ

0 голосов
/ 13 февраля 2019

Откуда вы ожидаете, что эти значения появятся?Вам не хватает одного GET запроса, который откроет страницу входа, ваш тест не должен начинаться с POST запроса.

После выполнения запроса GET - вашего регулярного выраженияэкстракторы будут захватывать viewstate и друзей, и вы сможете войти в систему.

Также рассмотрите возможность переключения на Селекторы CSS Selector как использование регулярных выражений для разбора HTML - не лучшая идея .

Соответствующее выражение CSS Selector будет таким же простым, как input[id=__VIEWSTATE], используйте value в качестве атрибута.Аналогично сопоставьте оставшиеся динамические значения.См. ASP.NET Login Testing с JMeter статью для более подробной информации, если это необходимо.

...