Size: a a a

QA — Автоматизация

2020 October 23

LY

Lev Yarushin in QA — Автоматизация
Edward Galiaskarov
Друзья, утром я бил аларм, поскольку бы шокирован тем, как у меня шли тесты. Ларчик просто открывался. Программист забыл убрать заглушку, в результате в одном из тестов, в котором заглушка сработала, произошло отключения вебсервера.

Сейчас я наблюдаю (пока как черный ящик) очень похожую ситуацию. Но сервер работает - по крайней мере параллельно я могу зайти в приложение. Но когда я заглянул в диспетчер, то там просто что-то странное. Процессор занят на 100%. При этом в списке процессов висит сотня chrome.exe. Ранее мне не приходило в голову посмотреть как все бывает, но мне кажется, что это ненормально. Кто-то сталкивался, что это может значить?

вот кусочек
-no-sandbox убрать
источник

EG

Edward Galiaskarov in QA — Автоматизация
Lev Yarushin
-no-sandbox убрать
В Windows? Если я правильно понял, этот режим есть в 10, у меня 7 там такого нет
источник

EG

Edward Galiaskarov in QA — Автоматизация
Или Вы что-то иное имеете в виду?
источник

EG

Edward Galiaskarov in QA — Автоматизация
Я прогнал часть тестов и наблюдал, что происходит в диспетчере.

Если тест проходит штатно, то запущенные chrome процессы (их почему-то 6 штук), после исполнения сценарию закрываются.

Я добавил в hooks.rb команду page.driver.quit() - внешне мало, что изменилось, разве порезче все закрывается
источник

S1

Sceptic 1234 in QA — Автоматизация
А подебажить или логов добавить, чтобы разобраться, что происходит не вариант?
То что вы описываете похоже на какие-то странные танцы с бубном
источник
2020 October 24

LY

Lev Yarushin in QA — Автоматизация
Edward Galiaskarov
Или Вы что-то иное имеете в виду?
опции хрому задают в драйвере. если есть no-sandbox то его убрать, был глюк такой с зомби-процессами в win
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
Я прогнал часть тестов и наблюдал, что происходит в диспетчере.

Если тест проходит штатно, то запущенные chrome процессы (их почему-то 6 штук), после исполнения сценарию закрываются.

Я добавил в hooks.rb команду page.driver.quit() - внешне мало, что изменилось, разве порезче все закрывается
тут вот так советуют https://stackoverflow.com/a/45038052/7856072
источник

EG

Edward Galiaskarov in QA — Автоматизация
Lev Yarushin
опции хрому задают в драйвере. если есть no-sandbox то его убрать, был глюк такой с зомби-процессами в win
Посмотрю. У меня в env точно нет.
источник

EG

Edward Galiaskarov in QA — Автоматизация
Да, я так и сделал.
источник

EG

Edward Galiaskarov in QA — Автоматизация
Это не помогло. В какой-то момент прохождения тестов получается сбой и размножаются процессы chrome. И процессор забивается напрочь.
источник

TN

Timur Nurlygayanov in QA — Автоматизация
1) можно обновить хром, вдруг пройдет
2) надо убедиться что в случае если тест падает браузер все равно корректно закрывается
3) попробуйте снизить количество потоков для запуска тестов
источник

EG

Edward Galiaskarov in QA — Автоматизация
Я правда делал просто page.driver.quit()
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
Я правда делал просто page.driver.quit()
тогда стоит прямо скопировать из стек оверфлоу и попытать удачу )
источник

EG

Edward Galiaskarov in QA — Автоматизация
Timur Nurlygayanov
1) можно обновить хром, вдруг пройдет
2) надо убедиться что в случае если тест падает браузер все равно корректно закрывается
3) попробуйте снизить количество потоков для запуска тестов
по второму пункту, а как это сделать? Насколько я смог понять, буду еще искать как отловить причину, часть тестов падает в самом начале при входе в систему (скорее всего это уже следствие, а не причина),  по какой-то причине не срабатывает hook after получается
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
по второму пункту, а как это сделать? Насколько я смог понять, буду еще искать как отловить причину, часть тестов падает в самом начале при входе в систему (скорее всего это уже следствие, а не причина),  по какой-то причине не срабатывает hook after получается
можно начать с вот этой классной статьи https://sonja.codes/fixing-flaky-tests-like-a-detective
источник

EG

Edward Galiaskarov in QA — Автоматизация
Спасибо
источник

TN

Timur Nurlygayanov in QA — Автоматизация
Edward Galiaskarov
по второму пункту, а как это сделать? Насколько я смог понять, буду еще искать как отловить причину, часть тестов падает в самом начале при входе в систему (скорее всего это уже следствие, а не причина),  по какой-то причине не срабатывает hook after получается
и надо подебажить падающие тесты, добавить там скриншотов / видео чтобы понять почему они падают
источник

EG

Edward Galiaskarov in QA — Автоматизация
у меня все это есть
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Edward Galiaskarov
по второму пункту, а как это сделать? Насколько я смог понять, буду еще искать как отловить причину, часть тестов падает в самом начале при входе в систему (скорее всего это уже следствие, а не причина),  по какой-то причине не срабатывает hook after получается
Лично я бы не надеялся только на драйвер. Джобы и запуски иногда и просто прерываются. Есть такие утилиты как nircmd и comandiux которые могут убивать ненужные процессы по команде (nircmd killprocess "chrome.exe" например). Это можно использовать для очистки перед прогоном или после него.
источник

EG

Edward Galiaskarov in QA — Автоматизация
Roman (rpwheeler)
Лично я бы не надеялся только на драйвер. Джобы и запуски иногда и просто прерываются. Есть такие утилиты как nircmd и comandiux которые могут убивать ненужные процессы по команде (nircmd killprocess "chrome.exe" например). Это можно использовать для очистки перед прогоном или после него.
Да, спасибо, за рекомендацию. Я предполагаю включить в тестовый план команд подобного плана, если ничего не изменится.

Просто я не могу выявить причину. Вчера я перед прогоном вообще перегрузил машину. Сейчас обновил драйвер и запустил прогон.

Вот думаю может встроить какую-то команду, чтобы просто записывать число запущенных процессов chrome в какой-то лог. Пока не очень понятно когда это происходит. Например я сделал короткий запуск из 10-ка тестов, никаких проблем с накоплением. Правда, я обратил внимание, что по окончанию теста гасятся только им запущенные процессы.
источник