t.me/atinfo_chat Telegram группа по автоматизации тестирования

Проблема с потоками Cucumber+Dockers containers

Теги: #<Tag:0x00007f74874a03c8> #<Tag:0x00007f74874a02b0> #<Tag:0x00007f74874a01e8> #<Tag:0x00007f74874a0120> #<Tag:0x00007f74874a0030> #<Tag:0x00007f74874a7f38> #<Tag:0x00007f74874a7e70> #<Tag:0x00007f74874a7d58> #<Tag:0x00007f74874a7c68>

Сначала попробую описать структуру проекта: на проекте более 1к тестов и моя задача сейчас как можно уменьшить время пробега регрессии. Стек: selenium+gradle+testNG+cucumber(точнее Courgette, библиотека на базе Cucumber)+ Selenium Grid+Jenkins.
Ноды - докер контейнеры, создаются в зависимости от количества заданных потоков. Установлен runLevel = CourgetteRunLevel.SCENARIO
И вот пытаясь увеличить количество потоков я заметила, что например при 70 потоках изначально стартует 70 сессий, но через время их активных становится 30-40, потом 20 и больше никак не становится. Или если запускаю 40 потоков, то сначала стартует 40 сессий браузера, через время их уже постоянно активных 20-23. Как мне добиться постоянного максимума в потоках? В чем может быть проблема? Иначе сократить время регрессии не выходит, в итоге я получаю очень маленькую экономию во времени. Может использовать другие тулы. Очень интересен успешный опыт в этом вопросе.
Заранее благодарна за любые предложения.

А где у вас эти контейнеры разворачиваются? Что в них запускается, хром? Всё упирается в машину где они крутятся.
Вы понимаете, что примерно на один контейнер нужен 1 виртуальный проц (в идеале 2), ну и примерно 1-2 гигабайта оперативной памяти.
Подсчитайте примерное количество контейнеров с таким требованием (2проца-2 гига) для исполняющей машины, запустите это количество, смотрите в менеджер ресурсов на сколько будут потреблены ресурсы, ну и увеличивайте потихоньку количество потоков.

В контейнерах могут запускается 5 chrome сессий. Спасибо, будут смотреть в эту сторону

Это ещё более усложняет и увеличивает требования к железу на 1 контейнер. Сделайте хотя бы 2 сессии в контейнере.
И ещё, я слишком высоко задрал планку по памяти, стоит начать что для 1 контейнера с 1 сессией браузера достаточно 600-750 мегабайт.

1 Симпатия

я в этом еще мало понимаю, узнала, что контейнеры создаются на aws c4.xlarge.

c4.xlarge - это 4 CPU и 7,5 памяти.
Значит надо начинать: на 1 такую машину максимум 4 контейнера, с одной сессией браузера. Потом попробовать увеличить до 2х сессий браузеров.

1 Симпатия

суть проблемы поняла, большое спасибо за помощь!