Понадобилось тут автоматизировать проверку web-приложения из командной строки. Суть такая — заходим на страницу, логинимся, затем идем на страницу поиска, там вводим запрос, нажимаем кнопку «найти», попадаем на страницу с результатом и ищем там определенную фразу. Все как бы просто и понятно, но ввод значений в форме поиска реализован через ajax. Чтобы понять, что отравляет броузер на сервер и что получает ставим Firefox + аддон HttpFox .
По результатам исследования был найден и подрихтован почти полностью переписан подходящий скриптик.
Особенности:
Куки и User-agent сохраняются в пределах всего сеанса.
В массиве анонимных хэшей @Urls нужно заменить ссылки url, отправляемые данные form, и expect ожидаемые данные на полученных страницах. Соответственно, по массиву идем и последовательно получаем страницы с сайта.
В expect ожидаемых данных можно использовать регулярные выражения и круглые скобки для выборки определенных данных. То что выбралось в круглых скобках ($1,$2 итд) сохраняется в переменных $e1,$e2 итд. Например получаем на странице строку «blalala uid=123456», ищем в ней uid
expect=>q(blalala uid=(\d+))
а затем подставляем ее в отправляемые данные
form=>'data=blalabla&uid=${e1}'

Для чего можно использовать этот скриптик? Для проверки связки сервер приложений-база данных, для массовой автоматической регистрации пользователей, для спама из командной строки ну итд
Дружно качаем check_web_app.pl

Обсуждение закрыто.