Size: a a a

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

2020 November 24

BO

Boris Osipov in QA — Автоматизация
Kostya Mironov
Тогда единственный адекватный вариант автоматизации страничек, где подгружается и выполняется JS код, будет какой-нибудь firefox?
почти любой браузер уже умеет в headless режим.
источник

EG

Edward Galiaskarov in QA — Автоматизация
Коллеги, добрый вечер.
Я немного в отчаянии ибо не могу понять проблему и ее причины. Вижу только ее проявление.
У меня есть набор тестов, который обычно занимает примерно 4часа 30 минут. Однако примерно последний месяц это время постоянно плавает в сторону увеличения. ;:30 это практически нижняя граница. Пока самое большое этот же набор занял 7 часов.
Анализ отчетов прогонов показывает, что торможение может возникать в разных местах тестового плана, но достаточно регулярно по прогону.
Как собрать доп информацию для диагностики, понять не смог, но посидел и понаблюдал глазами.

Обнаружил следующее - в некоторый момент времени при прохождения теста вдруг появляется еще один процесс chromedriver, получается два, а иногда и три запущенных процесса. Причем один активный - есть какие-то изменения в нагрузке процессора, другие висят, ничего не делают  и занимают одинаковый объем памяти.
Когда тест завершается, все запущенные процессы chromedriver выгружаются, при этом для активного выгружаются и chrome (их запускается почему-то ровно 6 штук + 1), а для "левых" их 6 штук остаются, в результате таких "висячих" chrome образуется довольно много и все вместе начинает грузить процессор, прогон замедляется. Т.е. тест который выполнялся за минут может идти 10.
Чтобы ка-то компенсировать проблему, я через 10-20 запусков тестов убиваю taskkill chrome лишние.

Возможно проблема вообще не в этом. Может есть идеи, что это? Нормальное поведение, что можно сделать?

Спасибо. Извините, за многословие.
источник

ES

Eugene Stogniy in QA — Автоматизация
незнаю (
источник

BS

BLVCK SONNET in QA — Автоматизация
Edward Galiaskarov
Коллеги, добрый вечер.
Я немного в отчаянии ибо не могу понять проблему и ее причины. Вижу только ее проявление.
У меня есть набор тестов, который обычно занимает примерно 4часа 30 минут. Однако примерно последний месяц это время постоянно плавает в сторону увеличения. ;:30 это практически нижняя граница. Пока самое большое этот же набор занял 7 часов.
Анализ отчетов прогонов показывает, что торможение может возникать в разных местах тестового плана, но достаточно регулярно по прогону.
Как собрать доп информацию для диагностики, понять не смог, но посидел и понаблюдал глазами.

Обнаружил следующее - в некоторый момент времени при прохождения теста вдруг появляется еще один процесс chromedriver, получается два, а иногда и три запущенных процесса. Причем один активный - есть какие-то изменения в нагрузке процессора, другие висят, ничего не делают  и занимают одинаковый объем памяти.
Когда тест завершается, все запущенные процессы chromedriver выгружаются, при этом для активного выгружаются и chrome (их запускается почему-то ровно 6 штук + 1), а для "левых" их 6 штук остаются, в результате таких "висячих" chrome образуется довольно много и все вместе начинает грузить процессор, прогон замедляется. Т.е. тест который выполнялся за минут может идти 10.
Чтобы ка-то компенсировать проблему, я через 10-20 запусков тестов убиваю taskkill chrome лишние.

Возможно проблема вообще не в этом. Может есть идеи, что это? Нормальное поведение, что можно сделать?

Спасибо. Извините, за многословие.
Самое первое, что приходит в голову - дропай время прохождения в отдельные отчёты. На дистанции в 5-6 сессий сможешь увидеть минимальное и максимальное время для каждого кейса и уже делать выводы
источник

VS

Vadim Shurhal in QA — Автоматизация
Edward Galiaskarov
Коллеги, добрый вечер.
Я немного в отчаянии ибо не могу понять проблему и ее причины. Вижу только ее проявление.
У меня есть набор тестов, который обычно занимает примерно 4часа 30 минут. Однако примерно последний месяц это время постоянно плавает в сторону увеличения. ;:30 это практически нижняя граница. Пока самое большое этот же набор занял 7 часов.
Анализ отчетов прогонов показывает, что торможение может возникать в разных местах тестового плана, но достаточно регулярно по прогону.
Как собрать доп информацию для диагностики, понять не смог, но посидел и понаблюдал глазами.

Обнаружил следующее - в некоторый момент времени при прохождения теста вдруг появляется еще один процесс chromedriver, получается два, а иногда и три запущенных процесса. Причем один активный - есть какие-то изменения в нагрузке процессора, другие висят, ничего не делают  и занимают одинаковый объем памяти.
Когда тест завершается, все запущенные процессы chromedriver выгружаются, при этом для активного выгружаются и chrome (их запускается почему-то ровно 6 штук + 1), а для "левых" их 6 штук остаются, в результате таких "висячих" chrome образуется довольно много и все вместе начинает грузить процессор, прогон замедляется. Т.е. тест который выполнялся за минут может идти 10.
Чтобы ка-то компенсировать проблему, я через 10-20 запусков тестов убиваю taskkill chrome лишние.

Возможно проблема вообще не в этом. Может есть идеи, что это? Нормальное поведение, что можно сделать?

Спасибо. Извините, за многословие.
Вы сами ответили на свой вопрос ) Просто контролируйте сам процесс хромдрайвера и не давайте ему "плодить" новые бесполезные
источник

SM

Sewa Makhinya in QA — Автоматизация
Edward Galiaskarov
Коллеги, добрый вечер.
Я немного в отчаянии ибо не могу понять проблему и ее причины. Вижу только ее проявление.
У меня есть набор тестов, который обычно занимает примерно 4часа 30 минут. Однако примерно последний месяц это время постоянно плавает в сторону увеличения. ;:30 это практически нижняя граница. Пока самое большое этот же набор занял 7 часов.
Анализ отчетов прогонов показывает, что торможение может возникать в разных местах тестового плана, но достаточно регулярно по прогону.
Как собрать доп информацию для диагностики, понять не смог, но посидел и понаблюдал глазами.

Обнаружил следующее - в некоторый момент времени при прохождения теста вдруг появляется еще один процесс chromedriver, получается два, а иногда и три запущенных процесса. Причем один активный - есть какие-то изменения в нагрузке процессора, другие висят, ничего не делают  и занимают одинаковый объем памяти.
Когда тест завершается, все запущенные процессы chromedriver выгружаются, при этом для активного выгружаются и chrome (их запускается почему-то ровно 6 штук + 1), а для "левых" их 6 штук остаются, в результате таких "висячих" chrome образуется довольно много и все вместе начинает грузить процессор, прогон замедляется. Т.е. тест который выполнялся за минут может идти 10.
Чтобы ка-то компенсировать проблему, я через 10-20 запусков тестов убиваю taskkill chrome лишние.

Возможно проблема вообще не в этом. Может есть идеи, что это? Нормальное поведение, что можно сделать?

Спасибо. Извините, за многословие.
я правильно понимаю, что "по заводу" предполагается, что запущенные на старте 6 инстансов Хрома будут жить до конца тестов?
источник

SM

Sewa Makhinya in QA — Автоматизация
если да - имеет смысл ограничить число тестов, проходящих в одном инстансе Хрома, и перезапускать оный явно по достижении этого числа
источник

EG

Edward Galiaskarov in QA — Автоматизация
Sewa Makhinya
я правильно понимаю, что "по заводу" предполагается, что запущенные на старте 6 инстансов Хрома будут жить до конца тестов?
Нет. я использую cucumber каждый тест запускают отдельной командой.

Насколько я вижу время жизни 6 хромов определяется одним сценарием - там довольно хитро все происходит.

Я давно поставил уже афтехук в котором закрываю драйвер на всякий случай, он и закрывается, но не всегда при этом закрываются chrome процессы.
источник

SM

Sewa Makhinya in QA — Автоматизация
Edward Galiaskarov
Нет. я использую cucumber каждый тест запускают отдельной командой.

Насколько я вижу время жизни 6 хромов определяется одним сценарием - там довольно хитро все происходит.

Я давно поставил уже афтехук в котором закрываю драйвер на всякий случай, он и закрывается, но не всегда при этом закрываются chrome процессы.
то есть ему что-то не даёт закрыться?
источник

ГК

Глеб Казаркин... in QA — Автоматизация
Привет, в Python или Selenium есть проверка, что в поле указано число\строка или что возвращается число\строка?
Можете дать примеры проверок?
источник

R

Roman Mhoian in QA — Автоматизация
Edward Galiaskarov
Нет. я использую cucumber каждый тест запускают отдельной командой.

Насколько я вижу время жизни 6 хромов определяется одним сценарием - там довольно хитро все происходит.

Я давно поставил уже афтехук в котором закрываю драйвер на всякий случай, он и закрывается, но не всегда при этом закрываются chrome процессы.
А как вы закрываете хром драйвер, можете скинуть код?
источник

EG

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

EG

Edward Galiaskarov in QA — Автоматизация
Код довольно простой с рудиментами экспериментов
источник

OK

Oleksandr Khotemskyi in QA — Автоматизация
Edward Galiaskarov
Нет. я использую cucumber каждый тест запускают отдельной командой.

Насколько я вижу время жизни 6 хромов определяется одним сценарием - там довольно хитро все происходит.

Я давно поставил уже афтехук в котором закрываю драйвер на всякий случай, он и закрывается, но не всегда при этом закрываются chrome процессы.
Можно настроить тестовую ферму, тот же селеноид, у него есть таймаут неактивности после которого контейнер с браузером убивается автоматически
источник

EG

Edward Galiaskarov in QA — Автоматизация
Sewa Makhinya
то есть ему что-то не даёт закрыться?
Видимо, но я не могу понять, что. Как гипотеза, как-то драйвер крашится, и связанные с ним chrome потом висят и мешают.

Я тут записал ролик, правда видюха у меня не очень и качество только 480 dpi получается https://youtu.be/K5VEHI68SKU
источник

EG

Edward Galiaskarov in QA — Автоматизация
Vadim Shurhal
Вы сами ответили на свой вопрос ) Просто контролируйте сам процесс хромдрайвера и не давайте ему "плодить" новые бесполезные
я не очень понимаю, как это контролировать в автоматическом режиме
источник

R

Roman Mhoian in QA — Автоматизация
A есть метод типа driver.close()
источник

EG

Edward Galiaskarov in QA — Автоматизация
BLVCK SONNET
Самое первое, что приходит в голову - дропай время прохождения в отдельные отчёты. На дистанции в 5-6 сессий сможешь увидеть минимальное и максимальное время для каждого кейса и уже делать выводы
У меня рипортов для анализа вполне достаточно, я не вижу какой-то локализации проблемы, все случайно и в разных прогонах может случатся в разных местах
источник

R

Roman Mhoian in QA — Автоматизация
Я не работал с тем стеком инструментов который у Вас, просто выдвигаю предположения
источник

А

Алексей in QA — Автоматизация
Edward Galiaskarov
я не очень понимаю, как это контролировать в автоматическом режиме
Не использовать комбайны, а писать код самому. Тогда есть контроль над происходящим
источник