Вы думаете, это глупо делится стратегическими планами на
будущее? – Совсем, нет. Ведь сами идеи, без практической реализации – стоят
очень мало. Если кто-то тихо реализует идею внутри своей компании – это
останется никому неведомым. Ну, а если кто-то начнет свой проект и поделится
своей реализацией с общественностью… то я радо буду частью этой общественности.
А между тем, идею я таки тут уже “застолбил”. Кроме того, когда работаешь над чем-то, очень
не хватает конкуренции, подгоняющей тебя работать быстрее.

Многие люди считают, что генерация PageObjects – это что-то из области искусственного интеллекта.
Создание качественного инструмента генерации PageObjects – это либо невозможно, либо очень близко к тому. А тем временем автоматизаторы продолжают мануальный труд по выдергиванию локаторов из FireBug, ковыряясь в DOM. Согласитесь, это не очень приятное занятие. И при этом не известно, будет ли выковырянный локатор точно работать в WebDriver или нет.
Почему бы вместо генерации пейджобжектов не создать инструментарий, который бы помогал делать работы выковывания и тестирования локаторов быстрее? Почему бы не сделать это средствами самого Selenium Webdriver? Ведь локатор, добытый и протестированный через WebDriver… ну наверно будет работать потом в WebDriver тестах.
Selenium WebDriver Page Recorder – это то, над чем я работаю сейчас. Это инструмент, который будет общаеться с браузером через протокол Вебдрайвера и представлять унифицированный инструментарий для работы со всеми браузерами и надеюсь, не только браузерами, ведь уже существуют и инструменты десктоп-автоматизации, поддерживающие WebDriver протокол.
Пока что проект находится на стадии прототипа. Множество запланированных функций еще не работают. Тем не менее, я вижу создание инструментария, упрощающего рутинное создание PageObject’ов – единственным верным путем.
Я не предоставляю рабочего запускаемого файла приложения ввиду существующих багов и недоработок. Среднестатистический пользователь скажет: «фу… как много багов». Ну, а не среднестатистическим пользователям – Вэлкам ту Гитхаб:
https://github.com/dzhariy/swd-recorder
Approval-тесты
Вы когда-нибудь сравнивали огромные массивы данных: ожидаемые и актуальные. Возможно, с огромными, я погорячился. Но вот представьте, вы снимаете состоянии страницы приложения, состоящее из 25-ти элементов. Сколько времени уйдет на то, чтобы пересмотреть всю разницу и создать «эталон», который мы будем использовать в последующих тестах? А где хранить эталон? В виде огромного массива в коде? В текстовом файле?
Если вы уже столкнулись с проблемой таких эталонов, возможно, библиотека Approval Tests будет вам полезна?
Алгоритм работы очень прост.
- Соберите актуальные данные
- Прогоните данные через специальную Approval проверку
- Проверка упадет, потому что эталона не существует
- При помощи специальной утилиты, обновите эталон
- Перезапустите тест – он пройдет.
- Добавьте созданный эталон в систему контроля версий.
- Теперь каждый следующий прогон теста будет падать при несовпадении с эталоном.
И еще раз, ссылка на этот амбициозный проект:
http://approvaltests.sourceforge.net/
И блог автора проекта:
http://blog.approvaltests.com/
Полу автоматизированное тестирование через Selenium Webdriver
Эта идея запомнилась мне больше всего на Selenium Conference 2013. Автор доклада создал простое приложение для заполнения рутинных форм. Это Win Forms приложение, с которым работают все: от тестировщиков до программистов и отдела продаж, позволяющее заполнять формы посредством Selenium Webdriver и оставлять окно браузера открытым для последующего мануального тестирования. Код, который работает для такой автоматизации также работает и для обычных автоматизированных прогонов. Подумайте, насколько больше будут доверять вашему коду автоматизации, если позволить его переиспользовать через интерфейс пользователя?
В моих планах создать нечто подобное.
Надеюсь, удастся использовать Automapper вместе с Winforms приложением и переиспользовать код автоматизации в нем. (https://github.com/vantreeseba/winforms-automapper)
Ссылка на доклад: John Chandler, Bringing Selenium to the Rest of the Company
Комментариев нет:
Отправить комментарий