Автоматизация тестирования веб приложений. Боты. Автоматизация браузера. Нужен взгляд со стороны. [ВИДЕО]

В данный момент разрабатываю систему автоматизации браузера(Node.js + браузерное расширение), что-то на подобии Selenium. Готовность примерно 80%. Сейчас поддерживаются стандартные Chrome, Firefox, Opera, нужно только установить расширение.
Особенность приложения в том, что есть возможность эмулировать события мыши и клавиатуры на уровне операционной системы. Простыми словами курсор мыши двигается по экрану, а эмуляция нажатия клавиш для браузера выглядит как будто пользователь действительно печатает на клавиатуре.
На сегодня реализовано три режима движения мыши, два режима для клавиатуры и два режима для скроллинга, причем один из режимов скролла при помощи нажатия стрелок скроллбара.
Что касается OS, базовая реализация будет работать под Windows, Linux, Mac (создание окон, вкладок, исполнение java script и т.д.). «Человекоподобные» действия — пока только Windows, думаю в ближайшее время смогу сделать для Linux. Есть мысли как прикрутить на Mac.
Чтобы было понятно записал видео — создаем три окна: Chrome, Firefox, Opera. В каждом окне создаем по вкладке, переходим по url и заполняем форму в параллельном режиме, т.е. практически одновременно во всех вкладках, но можно заполнять и последовательно, т.е. заполнить по очереди в первой вкладке, во второй и т.д. По большему счету количество окон браузера и вкладок в них(окнах) не ограничено, например, можно было бы создать десять окон по десять вкладок в каждом и все бы так же отлично работало, просто видео получилось бы слишком длинным.

ВИДЕО:
www.youtube.com/watch?v=boeIdJ6hcoA

Чтобы полностью закончить приложение и написать документацию потребуется 3 — 4 недели.
Хочу сделать лицензию — бесплатно для личного некоммерческого использования, для всех остальных случаев брать долларов 50 в год. Простыми словами кто захочет заплатить, тот заплатит, а остальные будут использовать бесплатно.
Вопрос в следующем — насколько реально на этом заработать? Или может оставить эту затею и искать работу?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Прикольно.
Это никому не нужно.

Видео фейк , видно что движение указателя мыши на разныформах с разной скоростью и есть характерный рывок указателя мыши когда ее касается человек

При данном режиме(показанном в видео) траектория движения мыши просчитывается заранее, каждый раз вносится некое случайное отклонение поэтому движение всегда разное. Получается массив точек, далее в цикле курсор мыши передвигается по этим точкам, плюс я заметил, что над окном Firefox могут быть тормоза. По поводу фейка даже не знаю, что и сказать.

Ничего не говори , код покажи :)

Без AI и блокчейна не взлетит. А вообще поздравляю — вы изобрели что-то среднее между Selenium RC и TestCafe. Первый давно умер т.к. имел массу проблем, второй как бы решает проблемы первого, но жуткий костыль.

Во время работы этой автоматизации нельзя будет ни мышь подвинуть ни на клаве что то набрать правильно? таких автоматизаций было очень много в начале 2000 и венец творения таки селениум РС — почему от него ушли в сторону веб драйвера?
выглядит симпатично но комерческий успех сомнителен

Да мышью и клавиатурой пользоваться будет нельзя.

Как это будет работать на том же докере или в том же свернутом окне? Оно по JsonWire протоколу ищет расположение елемента на странице и просто к нему посілает ивент мыши? как будет бороться со StaleElementReferenceException ?

В свернутом окне не будут работать «человекоподобные» действия, т.к. необходим фокус для окна браузера, все остальное будет работать. С помощью расширения и еще кое-чего браузер фиксируется, окну выставляется alwaysOnTop, делается невозможным переключение на другую вкладку. Если по каким либо причинам фокус потеряется он автоматически будет восстановлен обычно до 100 миллисекунд. Насчет докера не знаю. Должно работать на виртуальной машине.

Все управление браузером идет через расширение, Selenium, webdriver не используется вообще. Расположение элемента ищется простым javascript, затем высчитываются координаты видимой части элемента на странице, берутся координаты случайной точки принадлежащей видимой области проверяются с помощью elementFromPoint если все хорошо — курсор мыши подводится к этой точке и потом клик. Я не тестер, и не особо знаю, что такое StaleElementReferenceException, но судя из того что удалось найти — наличие элемента в DOM ищется с помощью javascript, если элемент не найден Promise.reject(). Если нужно дождаться появления элемента в DOM, это не проблема — есть для этого функционал.

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

Javascript проверяет в бесконечном цикле с паузами await sleep(delay) появление элемента, если элемент появился или по таймауту выходит из цикла и отсылает результат. Если выход по таймауту Promise.reject() иначе Promise.resolve()

Для проверки ожидаемый-действительный результат можно использовать какой-либо фреймворк. Я использую Jest.

Для адептов двигателя прогресса: шлюхи есть?

нужно только установить расширение.
Особенность приложения в том, что есть возможность эмулировать события мыши и клавиатуры на уровне операционной системы. Простыми словами курсор мыши двигается по экрану, а эмуляция нажатия клавиш для браузера выглядит как будто пользователь действительно печатает на клавиатуре.

Щось жахливо подібне на Selenium RC

1. яку проблему має вирішити дане творіння ?
2.

насколько реально на этом заработать?

які переваги над конкурентами ?

Изначально написал под свои нужды более года назад. Планировал использовать для автоматизации создания видео. Т.е. якобы человек производит некие действия с веб страницей все это записывается и накладывается речь при помощи «text to speech» шаблонов. Исходя из этого преимущество — можно имитировать более «человекоподобное» поведение.

Т.е. якобы человек производит некие действия с веб страницей все это записывается и накладывается речь при помощи «text to speech» шаблонов.

А зачем это нужно?

Исходя из этого преимущество — можно имитировать более «человекоподобное» поведение.

Очень сомнительное преимущество на мой взгляд, я пока не вижу как возможность записывать видео прохождения теста с озвучкой в виде «text to speech» шаблонов поможет найти больше багов.

Это планировалось использовалось не для тестов, а для записи небольших рекламных видео. Просто изначально я делал это с помощью Awesomium C# (проект уже умер) и выглядело это очень примитивно. Хотелось сделать более качественно.

Підписатись на коментарі