@anton99zel
28 класс средней школы

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

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

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

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

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

Можно использовать что-то посложнее, типа Selenium.
Ну и вообще, QA automation engineer, есть такое.
Ответ написан
bakotin
@bakotin
Бекенд-разработчик
Привет

В больших компаниях есть специальные люди (QA-инженеры), которые пишут автоматические приемочные тесты, которые проверяют работу систем, сайтов с позиции обычных пользователей.

Чаще всего это: Selenium+Java+JUnit+Thucydides+Jenkins

Хочу сказать сразу, что это сложная, кропотливая и длительная работа. Ибо сначала нужно это все дело написать (на некоторых системах по 5-10 тысяч тестов). И все это нужно поддерживать в актуальном виде, следуя за разработкой.

Т.е. я к тому, что если это "клиент подумал, я прикинул, скриптик написать, пару байтиков общитать" - отказывайся. Тут нужен профессиональный подход, иначе будет пустая трата времени с кучей гемора без какой-либо эффективности. Писать автоматические тесты - это целая профессия, все же.
Ответ написан
Lynn
@Lynn
nginx, js, css
Ещё вариант https://yandex.ru/dev/hermione/
Ответ написан
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор
Да, это называется автоматическое тестирование UI. В контексте ВЕБа это легко делается с помощью headless браузера.
Ответ написан
@bioroot
Не увидел в ответах выше, так что вставлю свои 5 копеек. Посмотрите в сторону Cypress. На удивление крутая и почему-то не сильно известная штука. Это такой комбайн, в которой напиханы лучшие решения для тестирования на js, хорошая документация, поддержка jQuery. У него низкий порог вхождения. Особо и настраивать ничего не надо. Установил и поехали. И один из главных бонусов - тесты запускаются в очень презентабельном виде. Грубо говоря у вас в окошке браузера подсвечиваются выбираемые элементы и параллельно рядом показывается логика исполнения теста. Так что теперь когда начальник спросит "А чем вы вообще, ребята, тут занимаетесь?" ему всегда есть что показать.
Ответ написан
@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.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы