Задать вопрос
@anton99zel
29а класс средней школы №7

Возможно ли тестирование сайта в автоматическом режиме?

Возможно ли тестирование сайта в автоматическом режиме по такому алгоритму:
В определенный момент запускается скрипт, вероятно с другого сервера, который должен сделать следующее:
- пройти рандомно по разным страницам сайта, положить в корзину товары, заполнить поля оформления заказа, отправить заказ
- заполнить и отправить разные формы на сайте (обратный звонок, предзаказ...)
- полистать фото в галерее
- открыть страницу, определить загрузились ли картинки, не поехала ли верстка...
Иными словами, скрипт должен сделать тоже самое, что обычно делает человек на сайте.
В случае провала теста - отправить письмо админу.
==
Задача вытекает из-за того, что вдруг оказывается не работает форма на сайте, а никто и не знал, или есть глюк, который не позволял из корзины удалить товар и опять же - никто не знал.

Ясно-понятно, что разработчик (тестировщик) и клиент должны проверять как работает то или иное и работает ли вообще, но вот заказчик у меня спрашивает - возможно ли сделать такой "скрипт"?

А у меня вопрос - если возможно, то как такое реализуется, потому что я плохо себе это представляю:
a. Многие глюки могут быть не серверными, т.е. вполне может быть ошибка Javascript в браузере.
б. Даже если такой скрипт возможен, то на мой взгляд, его очень сложно будет "обучить" поведенческому фактору, например заполнение полей в определенном порядке, обход Капчи, ввод промокодов, набор товарного количества.
в. И абсолютно не понимаю - как можно определить - не поехала ли вёрстка?

Если это архисложно или невозможно, то как правильно донести до заказчика, что это нельзя реализовать?
Добавлено:
Большим плюсом решения будет: периодический запуск без участия человека и с уведомлением на почту.
  • Вопрос задан
  • 1775 просмотров
Подписаться 23 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Да, возможно. Именно для этого и был придуман Selenium.
Ответ написан
Пригласить эксперта
Ответы на вопрос 9
saboteur_kiev
@saboteur_kiev Куратор тега Веб-разработка
software engineer
headless browser, например chromium, запускается из командной строки, прописываются различные варианты что он должен делать и какой результат должен получиться.
Скриптуется и запускается автоматом.

Можно использовать что-то посложнее, типа Selenium.
Ну и вообще, QA automation engineer, есть такое.
Ответ написан
Комментировать
@bioroot
Не увидел в ответах выше, так что вставлю свои 5 копеек. Посмотрите в сторону Cypress. На удивление крутая и почему-то не сильно известная штука. Это такой комбайн, в которой напиханы лучшие решения для тестирования на js, хорошая документация, поддержка jQuery. У него низкий порог вхождения. Особо и настраивать ничего не надо. Установил и поехали. И один из главных бонусов - тесты запускаются в очень презентабельном виде. Грубо говоря у вас в окошке браузера подсвечиваются выбираемые элементы и параллельно рядом показывается логика исполнения теста. Так что теперь когда начальник спросит "А чем вы вообще, ребята, тут занимаетесь?" ему всегда есть что показать.
Ответ написан
Да, возможно. Мы используем вот такую штуку: codeception
Ответ написан
Комментировать
@vitaly_il1
DevOps Consulting
Есть два варианта - как сказали выше, можно написать тесты и гонять их с селениум и всякими тулами на его основе.
Второй вариант (если сайт публичный) - с помощью transaction tests (https://tools.pingdom.com/, https://www.site24x7.com/ и т.п. ) можно записывать и запускать автоматически такие тестовые сценарии без всякого программирования.
Ответ написан
@Phoenixsma
Если не нужно тестировать кросс- браузерно, а достаточно одного хрома, то лучше puppeteer ничего нет. Это родной проект Гугла, так что по эффективности и простоте работы с хромом ни один selenium или что-то ещё и рядом не стоят. Плюс отлично дружит с typescript, что в наше время немаловажно. В качестве тест - раннера рекомендую jest, там всё есть "из коробки", плюс опять же typescript и отлично прикручивается к puppeteer, есть специальные библиотеки. Дальше Jenkins или что-то другое - значения не имеет, вопрос привычки.
Ответ написан
Комментировать
@johnwolf
Для написания автотестов можно использовать chromedriver или Puppetter

Готовый docker контейнер с chromedriver: https://github.com/yukinying/chrome-headless-brows...
Примеры использования Puppetter: https://developers.google.com/web/tools/puppeteer/...

Или можно использовать сервисы где можно использовать среду c уже готовыми интеграциями, например, c почтой, telegram и sms. С запуском по расписанию и оповещением: https://docs.testoid.io/guide/email/
Ответ написан
Комментировать
@Jek_Rock
Java developer
Есть ещё такой сервис как screenster для автоматического UI тестирования веб приложений. Там знание Selenium не нужно, просто записываешь свои действия, а он потом выполняет тесты на основе того, что записал
Ответ написан
Комментировать
alexiusp
@alexiusp
senior frontend developer
Ни в коем случае не начинайте использовать селениум! Это сплошные тормоза и глюки. Возьмите лучше упомянутый выше Cypress. Он не глючит и шустрее и тесты для него пишутся на JS с привычным синтаксисом как в Jest/Mocha.

Автоматический запуск с уведомлением на почту у нас реализован через Jenkins.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы