Size: a a a

JavaScript testing

2020 November 20

OK

Oleksandr Khotemskyi in JavaScript testing
Alex Vershinin
мне почему-то кажется, что это решается алертами со стороны хостинга и мониторингом этих алёртов
типа заскейлилось сильно - алерт
необычно много 500 - алерт и так далее

запускать постоянно тесты это немного странно, никогда такого не видел)
я видел, тем же puppeteer такие health-check можно довольно удобно делать. На некоторых проектах даже замеряют время открытия страницы из разных регионов, и если оно превышает какой то предел - то это уже отражается в мониторинге
источник

AV

Alex Vershinin in JavaScript testing
но! даже если мы по-прежнему хотим это делать, то я бы сделал вызов маленькой джобы по крону
вызвали джобу => запустили докер (или лучше даже без него, чтобы побыстрее) => прогнали тесты => зарепортили результат и сделали с ним (результатом), что хотим
плюсы:
- не надо решать проблему "упала ли джоба или упали тесты", процесс отработал и завершился, есть конкретный результат
UPD: Ладно, возможно и надо будет, соврал. Тогда, наверно, сделать запуск почаще и отслеживать несколько падений. Типа 1 раз - ок, терпим, 2/3/сколько_нужно раз - не ок, тревога.

- крон не подведёт 🙂
источник

AV

Alex Vershinin in JavaScript testing
на самом деле всё может подвести, конечно)) но это уже другая история
источник

OP

Oleksandr Pelykh in JavaScript testing
Alex Vershinin
но! даже если мы по-прежнему хотим это делать, то я бы сделал вызов маленькой джобы по крону
вызвали джобу => запустили докер (или лучше даже без него, чтобы побыстрее) => прогнали тесты => зарепортили результат и сделали с ним (результатом), что хотим
плюсы:
- не надо решать проблему "упала ли джоба или упали тесты", процесс отработал и завершился, есть конкретный результат
UPD: Ладно, возможно и надо будет, соврал. Тогда, наверно, сделать запуск почаще и отслеживать несколько падений. Типа 1 раз - ок, терпим, 2/3/сколько_нужно раз - не ок, тревога.

- крон не подведёт 🙂
Я так и делаю. Ранится много джоб по кронам с разными интервалами
И как ты написал, результат нужно анализировать, особенно если он красный )

И да, все может подвести. Если крон надежный, то приемтабл нода - так себе
источник

BO

Boris Osipov in JavaScript testing
Oleksandr Pelykh
Я так и делаю. Ранится много джоб по кронам с разными интервалами
И как ты написал, результат нужно анализировать, особенно если он красный )

И да, все может подвести. Если крон надежный, то приемтабл нода - так себе
> Если крон надежный, то приемтабл нода - так себе

what?
источник

OP

Oleksandr Pelykh in JavaScript testing
Boris Osipov
> Если крон надежный, то приемтабл нода - так себе

what?
Это имел ввиду
https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms

Или в чем я ошибся?
источник

BO

Boris Osipov in JavaScript testing
Oleksandr Pelykh
Это имел ввиду
https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms

Или в чем я ошибся?
а ты на этом запускаешь. я думал у тебя google cloud functions для этого
источник

SK

Sergey Korol in JavaScript testing
Oleksandr Pelykh
ребята, привет
нужно мнение экспертов )

есть у меня мониторинговые тесты - ранятся на проде с определенной периодичностью (например, 5 минут) и проверяют работоспособность продукта

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

приведу несколько аргументов от себя
- конечно, в стандартном CI/CD процессе упавшая джоба и стоп пайплайна - это маст хев. но в данном случае (помним, что тесты мониторинговые) стоп пайплайна нам не нужен, нам нужно только оповещение что именно упало
- назревает вывод, что раз мы должны знать, что есть падение, то и джобу нужно завершать с еррором. но можно же ошибку слать руками в момент завершения всех тестов но еще, так сказать, не выходя из контейнера. а сам контейнер завершать успешно, тестовый прогон ведь был выполнен, хоть и тест упал
- возможно, у вас назреет еще один вопрос - почему я задаюсь этим вопросом, не пусть себе завершается джоба с эррором, ведь в ней упавший тест. но! как тогда нам различать падение джобы произошло из-за ошибок ифнрастуктуры (не поднялся контейнер, не хватило памяти и т.д.) или упал тест? ну.. можно через еррор коды, но имхо, это геморно. или нет?
- скорее, в CI/CD системах (Jenkins, Gitlab, Github) упавшие джобы хендлить удобно и легко настроить алерты. но мои ранятся в GCP. и здесь падение джобы рассматривается как что-то аномальное и это вызывает некие проблемы с конфигурацией алертов. (например, мы будем получать алерт, пока не удалим упавшую джобу, даже если после нее уже была успешная)

поделитесь вашим опытом. буду рад комментариям 💪
источник

OP

Oleksandr Pelykh in JavaScript testing
Почитаю, спасибо
А в этой штуке браузер можно ранить? (Для UI тестов)
источник

SK

Sergey Korol in JavaScript testing
Basic health checks обычно настраиваются на уровне cloud watch/monitoring сервисов, которые по расписанию либо шлют какие-то ивенты, либо дергают serverless и т.п.
источник

AV

Alex Vershinin in JavaScript testing
Oleksandr Pelykh
Я так и делаю. Ранится много джоб по кронам с разными интервалами
И как ты написал, результат нужно анализировать, особенно если он красный )

И да, все может подвести. Если крон надежный, то приемтабл нода - так себе
Ну если дальше рассуждать, то нужно тестить и постепенно заполнять массивы с ошибками и по-разному на них реагировать.
Одни ошибки инфры — билд нестабильный и реран сразу, например.
Ошибки тестов — алерт, что-то такое.

Но имхо это усложнение)
источник

AV

Alex Vershinin in JavaScript testing
Я по-прежнему считаю, что это не через тесты решать надо. Логи фронта тоже можно собирать и тоже грамотно алертить.
источник

OP

Oleksandr Pelykh in JavaScript testing
Alex Vershinin
Я по-прежнему считаю, что это не через тесты решать надо. Логи фронта тоже можно собирать и тоже грамотно алертить.
Принял. Есть в этом смысл. Спасибо.
источник

SK

Sergey Korol in JavaScript testing
Oleksandr Pelykh
Почитаю, спасибо
А в этой штуке браузер можно ранить? (Для UI тестов)
Там под капотом лямбды. Но я соглашусь с @viraxslot - тут нужен другой подход, отличный от запуска классических тестов.
источник

AV

Alex Vershinin in JavaScript testing
Sergey Korol
Там под капотом лямбды. Но я соглашусь с @viraxslot - тут нужен другой подход, отличный от запуска классических тестов.
они падучие же будут, если UI) надоест бегать смотреть, что пошло не так
источник

AV

Alex Vershinin in JavaScript testing
если третье сообщение читаешь неправильно, то это показатель, что хватит работать, пожалуй)))
источник

SG

Sergey Golovin in JavaScript testing
Oleksandr Pelykh
ребята, привет
нужно мнение экспертов )

есть у меня мониторинговые тесты - ранятся на проде с определенной периодичностью (например, 5 минут) и проверяют работоспособность продукта

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

приведу несколько аргументов от себя
- конечно, в стандартном CI/CD процессе упавшая джоба и стоп пайплайна - это маст хев. но в данном случае (помним, что тесты мониторинговые) стоп пайплайна нам не нужен, нам нужно только оповещение что именно упало
- назревает вывод, что раз мы должны знать, что есть падение, то и джобу нужно завершать с еррором. но можно же ошибку слать руками в момент завершения всех тестов но еще, так сказать, не выходя из контейнера. а сам контейнер завершать успешно, тестовый прогон ведь был выполнен, хоть и тест упал
- возможно, у вас назреет еще один вопрос - почему я задаюсь этим вопросом, не пусть себе завершается джоба с эррором, ведь в ней упавший тест. но! как тогда нам различать падение джобы произошло из-за ошибок ифнрастуктуры (не поднялся контейнер, не хватило памяти и т.д.) или упал тест? ну.. можно через еррор коды, но имхо, это геморно. или нет?
- скорее, в CI/CD системах (Jenkins, Gitlab, Github) упавшие джобы хендлить удобно и легко настроить алерты. но мои ранятся в GCP. и здесь падение джобы рассматривается как что-то аномальное и это вызывает некие проблемы с конфигурацией алертов. (например, мы будем получать алерт, пока не удалим упавшую джобу, даже если после нее уже была успешная)

поделитесь вашим опытом. буду рад комментариям 💪
Перепиши exit code
источник

G

Genn in JavaScript testing
Sergey Golovin
Перепиши exit code
на джаве
источник

OP

Oleksandr Pelykh in JavaScript testing
😁
источник
2020 November 21

m

mkots in JavaScript testing
Oleksandr Pelykh
ребята, привет
нужно мнение экспертов )

есть у меня мониторинговые тесты - ранятся на проде с определенной периодичностью (например, 5 минут) и проверяют работоспособность продукта

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

приведу несколько аргументов от себя
- конечно, в стандартном CI/CD процессе упавшая джоба и стоп пайплайна - это маст хев. но в данном случае (помним, что тесты мониторинговые) стоп пайплайна нам не нужен, нам нужно только оповещение что именно упало
- назревает вывод, что раз мы должны знать, что есть падение, то и джобу нужно завершать с еррором. но можно же ошибку слать руками в момент завершения всех тестов но еще, так сказать, не выходя из контейнера. а сам контейнер завершать успешно, тестовый прогон ведь был выполнен, хоть и тест упал
- возможно, у вас назреет еще один вопрос - почему я задаюсь этим вопросом, не пусть себе завершается джоба с эррором, ведь в ней упавший тест. но! как тогда нам различать падение джобы произошло из-за ошибок ифнрастуктуры (не поднялся контейнер, не хватило памяти и т.д.) или упал тест? ну.. можно через еррор коды, но имхо, это геморно. или нет?
- скорее, в CI/CD системах (Jenkins, Gitlab, Github) упавшие джобы хендлить удобно и легко настроить алерты. но мои ранятся в GCP. и здесь падение джобы рассматривается как что-то аномальное и это вызывает некие проблемы с конфигурацией алертов. (например, мы будем получать алерт, пока не удалим упавшую джобу, даже если после нее уже была успешная)

поделитесь вашим опытом. буду рад комментариям 💪
Logrocket на фронт
Prometheus + zabbix на бек
И сидишь смузи пьешь, зачем что-то тестить если юзеры за тебя это сделают)
источник