Функциональное тестирование и Selenium
Посмотрел «Selenium» — прекрасный, на мой взгляд, инструмент для автоматизации функционального тестирования. Из аналогов я нашёл только «Watir», но он мне показался сильно беднее (или только показался?). Платных аналогов много, в том числе от именитых IBM и HP, но хочется именно бесплатного.
Собственный опыт у меня пока небольшой (я написал несколько тестов и бегло прочитал документацию), а из прочитанного в сети я сделал вывод, что у «Селениум» есть проблемы. Вроде как он не любит фреймы (сомнительно) и стабильно работает только в Firefox (мне FF пока достаточно).
Я пока использовал только версию для Firefox (дополнение Selenium IDE). Самый простой способ изготовить тест выглядит следующим образом: открываем Selenium IDE, создаём новый тест, подготавливаем браузер (переходим на страницу, с которой тест начнётся), жмём на красную кнопку записи (справа на панели инструментов), в браузере выполняем
После того как последовательность действий в браузере была записана «Селениумом», нужно посмотреть что получилось, возможно
Вот простенький тест, который я записал, что проиллюстрировать принцип:
сохраняем тестовую строку
store THIS-IS-TEST-STRING testPhrase
открываем страницу в браузере
open /EvgenyStepanischev
жмём на ссылку, в которой содержится указанное значение и ждём, когда браузер её полностью загрузит
clickAndWait link=EvgenyStepanischev / Тестирование
жмём на ссылку, которая выбирается CSS-селектором
clickAndWait css=.edittab a.b-button-yellow
печатаем
type postText ${testPhrase}
жмём на клавишу с указанным ID
clickAndWait really_save_button1
проверяем есть ли на странице наш текст
assertTextPresent ${testPhrase}Чтобы тест выполнился, нужно указать для него базовый URL (по которому будет выполняться тест и нажать кнопку запуска теста и тест сьюта). На нашей внутренней «Вики» в «Яндексе» этот тест откроет мой кластер, найдёт там страницу «Тестирование», нажмёт на ней кнопку редактирования, напечатает в страницу
Большинство потребностей покрывается языком «Селениума»,
Есть возможность удалённого запуска тестов на нескольких браузерах и использование языков C#, Perl, Ruby, Python, PHP и Java, но я пока с этим богатством не разбирался, первые потребности вполне покрываются тем, что я уже знаю, дальнейшее — дело будущего.
Добавлено 22 ноября 2009 13:40: Андрей Ларионов подсказал ещё один бесплатный продукт — «Tellurium», но я не вижу преимуществ перед «Селениумом», зато вижу недостатки, например, усложнённый (по сравнению с «Селениумом») язык описания тестов.
Комментарии 8
When User Click on button with id «id»
Then value of order field should be «value»
И такие тесты легко писать тестерам даже вместо тест кейсов