Size: a a a

JavaScript testing

2020 December 15

HA

Hidden Account in JavaScript testing
Oleksandr Khotemskyi
wdio multiremote - https://webdriver.io/docs/multiremote.html

как раз фича для приложений типа чатов или мульти-юзер апликейшенов где несколько браузеров взаимодействуют друг с другом
Связка из двух юзеров щя и делается как раз multiremote.
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Тесты нужно запускать пареллельно (для ускорения, а то уже за 5 часов в 1 поток выходит). В облаке же в 21 поток, получается за 20 минут.

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

Есть куча specs. Кормим этот список спеков кастомному раннеру.
Кастомный раннер генерит конфиги для wdio, в каждом из которых один spec. Он далее менеджит эти параллельно выполняемые связки, по мере окончания теста одного спека, он запускает следующий спек на освободившихся контейнерах.

Количество контейнеров для теста при этом фиксированное (указывается при запуске докер композ и тот же параметр при запуске раннера, выставляется под мощности компа, на котором запускаем). Локально на своем ноуте я могу гонять максимум в 3 потока (6 контейров с хромом). В облаке, к примеру, 21 поток, то есть 42 хрома).

Надеюсь, станет понятнее.
если интересно, можем созвонится обсудить. Я могу проконсультировать как это сделать
источник

HA

Hidden Account in JavaScript testing
Oleksandr Khotemskyi
ggr+selenoid будут за вас скейлить количество сессий браузера, запускать и убивать контейнера, и еще и юаечка и запись видео в подарок
Спасибо, надо глянуть. Не знаком с ними.
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Спасибо, надо глянуть. Не знаком с ними.
если используете кубернетис то тогда есть смысл еще посмотреть на aerokube moon - тогда можно настроить автоскейлинг и там еще есть приятные фичи
источник

HA

Hidden Account in JavaScript testing
Oleksandr Khotemskyi
если интересно, можем созвонится обсудить. Я могу проконсультировать как это сделать
Спасибо, давайте я сначала подызучу тогда, че это такое и с чем едят, а потом напишу, как буду готов.

А то я в понятиях могу путаться. Я единственный тестировщик и у меня даже среди знакомых никого нет за весь стаж работы (стыдно сказать, сколько лет), так и поговрить не с кем даже и посоветоваться =) смешно и грустно в тот же момент.

Вот недели 3 как нашел этот и другие чаты в ТГ по тестированию, стало как-то полегче.

Хотя понимаю, что читать-то я могу, но вот спросить пока получается не очень.
источник

HA

Hidden Account in JavaScript testing
Oleksandr Khotemskyi
если используете кубернетис то тогда есть смысл еще посмотреть на aerokube moon - тогда можно настроить автоскейлинг и там еще есть приятные фичи
Дроплет для тестирования мы юзаем на digitalOcean.

Просто поднимаем скриптом на 1 час его, если по итогу часа ничего не гоянется, то убиваем его.
Если гоняется, то продлевается еще на час его работа.

Все стартует само при запуске тестов из teamcity.
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Дроплет для тестирования мы юзаем на digitalOcean.

Просто поднимаем скриптом на 1 час его, если по итогу часа ничего не гоянется, то убиваем его.
Если гоняется, то продлевается еще на час его работа.

Все стартует само при запуске тестов из teamcity.
о, на диджитал оушен есть кстати готовый selenoid дроплет
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Дроплет для тестирования мы юзаем на digitalOcean.

Просто поднимаем скриптом на 1 час его, если по итогу часа ничего не гоянется, то убиваем его.
Если гоняется, то продлевается еще на час его работа.

Все стартует само при запуске тестов из teamcity.
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Дроплет для тестирования мы юзаем на digitalOcean.

Просто поднимаем скриптом на 1 час его, если по итогу часа ничего не гоянется, то убиваем его.
Если гоняется, то продлевается еще на час его работа.

Все стартует само при запуске тестов из teamcity.
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Hidden Account
Дроплет для тестирования мы юзаем на digitalOcean.

Просто поднимаем скриптом на 1 час его, если по итогу часа ничего не гоянется, то убиваем его.
Если гоняется, то продлевается еще на час его работа.

Все стартует само при запуске тестов из teamcity.
я рекомендую тогда для начала начать с статей -

https://aerokube.com/  - тут внизу Articles

и видео
источник

HA

Hidden Account in JavaScript testing
Спасибо большое.
источник

m

mkots in JavaScript testing
Oleksandr Khotemskyi
если интересно, можем созвонится обсудить. Я могу проконсультировать как это сделать
А можно такое запилить на codecept + CDP ? А то сильно надо, задолбался мокать всю жизнь чтобы кнопку тыкнуть
источник

OK

Oleksandr Khotemskyi in JavaScript testing
mkots
А можно такое запилить на codecept + CDP ? А то сильно надо, задолбался мокать всю жизнь чтобы кнопку тыкнуть
несколько браузерных сессий заранить?
источник

OK

Oleksandr Khotemskyi in JavaScript testing
mkots
А можно такое запилить на codecept + CDP ? А то сильно надо, задолбался мокать всю жизнь чтобы кнопку тыкнуть
это наверное вопрос лучше задать @davert
источник

m

mkots in JavaScript testing
Именно так заранить чтобы использовать их в одном тесте. Типа так:
Master.mainPage.navigate()
Master.mainPage.createIssue({id: 1});
Slave.mainPage.navigate();
Slave.mainPage.issues.haveIssueWithId(1);
источник

m

mkots in JavaScript testing
Только на самом деле там тесты которые онлайн синхронизацию должны смотреть, вроде совместного редактирования текста или штуки вроде google drawing
источник

OK

Oleksandr Khotemskyi in JavaScript testing
mkots
Только на самом деле там тесты которые онлайн синхронизацию должны смотреть, вроде совместного редактирования текста или штуки вроде google drawing
я как то давно такое автоматизировал на протракторе еще
источник

m

mkots in JavaScript testing
Без стабов на сотни строк?
источник

AP

Alexander Popov in JavaScript testing
mkots
Именно так заранить чтобы использовать их в одном тесте. Типа так:
Master.mainPage.navigate()
Master.mainPage.createIssue({id: 1});
Slave.mainPage.navigate();
Slave.mainPage.issues.haveIssueWithId(1);
о у меня такое тоже есть
источник

OK

Oleksandr Khotemskyi in JavaScript testing
mkots
Без стабов на сотни строк?
стабы чего? в самой аппке?
источник