Pretty Fly (For An Old Tool)

Если посмотреть на тенденции развития нашей индустрии, то несложно заметить, что всё больше традиционных «настольных» приложений обзаводятся интернет аналогами. Причем on-line версии ничуть не уступают старшим coбратьям. Мне понравилось мнение автора LiveJournal'а по этому поводу, приведенное в книге Coders At Work. Не удержусь и процитирую:

Seibel: Do you have any interest in writing better desktop software?
Fitzpatrick: The problem is, no one uses it. You want to write stuff people use, which comes down to web apps. I lost my laptop the other day and people were like, “Oh, my God, did you lose stuff?” I had no files on there. It was an Internet terminal. And it was an encrypted disk so I’m not worried about my password or cookies or anything like that. People won’t download programs, I don’t think.


Похоже на то, что рано или поздно, каждому тестеру придется начать тестировать Веб-приложения. Возникает вопрос, чем бы воспользоваться для написания автоматических тестов? Довольно давно я наткнулся на замечательный инструмент, позволяющий писать элегантные функциональные тесты для Веба. Несмотря на то, что twill не обновлялся с 2007 года, он до сих пор справляется со своими задачами очень хорошо.

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

    • Заходим на страничку login’а (login.php), вводим правильное имя пользователя (user) и пароль (pass). Нас перебрасывают на первую страницу (welcome.php), в правом углу видим приветственную надпись - You are logged in as “User”.

    • На странице логина вводим неправильное имя пользователя (baduser) и правильный пароль (pass). Остаемся на той же странице, но видим сообщение - Wrong user name or password

    • Аналогичный тест, но вводим имя существующего пользователя (user) и неверный пароль (badpass)



Напишем то же самое на twill’е:


go www.test.me/login.php
fv login user
fv password pass
submit
url welcome\.php
find 'You are logged in as "User"'


go www.test.me/login.php
fv login baduser
fv password pass
submit
url login\.php
find 'Wrong user name or password'



go www.test.me/login.php
fv login user
fv password badpass
submit
url login\.php
find 'Wrong user name or password'



По-моему, очень неплохой результат для скриптов длиной меньше 10 строк! А если еще учесть что у twill’а есть Python API, а другой замечательный питоновый модуль умеет грамотно разбирать HTML, то получаем мощный и гибкий способ тестировать по настоящему сложные Веб-сайты.

К сожалению, twill не умеет Ajax :( Но совсем недавно автор (C. Titus Brown), отвечая на вопросы в списке рассылки, написал буквально следующее - «If I do more work on twill, apart from integrating bug fixes and patches, I would probably add more features for working with CSS and AJAX, as that is likely to be in my near future.»

Как говориться, будем посмотреть...

Categories:
For more complete information about compiler optimizations, see our Optimization Notice.