По моим личным наблюдениям, львиная доля времени при написании авто-тестов уходит на редактирование/проверку/нахождение локаторов элементов (XPath, css selector, …)
А почему бы не редактировать локаторы прямо во время запуска теста? Хочу предложить к рассмотрению видео с данной возможностью:
После завершения работы с debug окном тест продолжает своё выполнение, что, по-моему, немаловажно.
Выглядит прикольно. Из попапа можно искать нужные локаторы и даже дописывать тест. Но судя по всему это работает только через PHPUnit. Было б неплохо сделать более универсальную реализацию.
Что-то подобное @dzhariy делал. Только десктопное.
Да, это прикольно. Два проекта на похожую тему, стартовали практически одновременно и решают похожие задачи.
Изначально, идея SWD Page Recorder была тоже заточена под интеграцию с кодом на C#. Чтобы приложение можно было вызвать из теста и импортировать в него ВебДарйвер. Но, потом я пришел к тому, что такое решение будет слишком техническим и ограничит круг пользователей.
Тогда я сконцентрировался на разработке более простого, UI-ного решения. Сергей (@blackakula), если вы планируете развивать приложение, то мы можем пообщаться по этому поводу. Я могу поделится списком фич, которые появятся в SWD Page Recorder не скоро, но, вы можете реализовать их уже сейчас у себя. Кроме того, мы можем подсматривать некоторые решения друг у друга.
Хороший вопрос. Видимо, я действительно очень скомканно описал тему, если он возник.
Selenium IDE - хорошая штука. Можно даже покрыть весь свой сайт скриптами на Selenium IDE. Но рано или поздно многим из нас хочется написать свой фреймворк с блэкджеком и плюхами: отделить представление от логики, изобрести пару паттернов проектирования, понять зачем нужен SOLID. Думаю, именно так появились Behat и Codeception.
У нас в компании тоже был свой фреймворк. Когда тестов было меньше 100, его легко было поддерживать. Я сам пользовался такими плагинами, как Firepath, чтобы написать локатор к очередному элементу страницы. Но проблема была в другом: Firepath, Selenium IDE и другие инструменты не отвечают на вопрос “внесен ли уже локатор для искомого элемента страницы в ваш тест-фреймворк?”. А даже если и внесен, то по какому ключу я смогу найти локатор среди тысяч (да-да, а может и больше) других локаторов. Вам повезло, если вы не сталкивались с этими проблемами.
Чаще всего в любом фреймворке легко вытянуть все локаторы, которые относятся к конкретной странице. Но не подставлять же каждый из них вручную в Firepath? Я предпочел сделать маленький debug-инструмент, который будет это делать за меня: подсвечивать найденные элементы, показывать, какие не были найдены, при наведении на элемент показывать, какой ключ в системе ему соответствует.
Qualitia выглядит конечно клево, но слишком уж непонятно… Непонятны условия поставки этого продукта. Судя по сайту, единственный вариант установить полную версию - звонить в Индию.
Да, и вероятно, это продукт не бесплатный. И довольно стремный.
Вот, у них есть вебинар на 55 минут о продукте, в котором… нет ни одного места с демонстрацией продукта
У меня видео не запускается. Я полчаса искал по всему сайту ссылку на скачивание или хотя бы информацию о цене. Было бы интересно хотя бы демо-версию пощупать.
Если я правильно понял, они сделали high-level дизайн над самим языком программирования. То есть, я не могу залезть в код и написать собственный “умный алгоритм”. Потому, мне кажется, Qualitia может быть полезной лишь в том случае, когда писатель авто-тестов не умеет писать программы.
Переписал инструмент под facebook/php-webdriver. Реализовал отдельным, переиспользуемым классом, который теперь можно подключить в любую другую библиотеку, использующую facebook webdriver.
Репозиторий: GitHub - blackakula/wdebug