Skip to content

docs: parallelism#120

Open
Nikolaengel wants to merge 1 commit intomasterfrom
docs-parallelism
Open

docs: parallelism#120
Nikolaengel wants to merge 1 commit intomasterfrom
docs-parallelism

Conversation

@Nikolaengel
Copy link
Copy Markdown
Collaborator

No description provided.

@github-actions
Copy link
Copy Markdown

✅ Successfully deployed static

Copy link
Copy Markdown
Member

@shadowusr shadowusr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Статья пока что очень сырая. Нужно более внимательно пройтись по каждой секции, сверить с реальным поведение Testplane, его параметрами.

└── ...
```

Мастер-процесс управляет очередью тестов и распределяет их по воркерам. Каждый воркер — это отдельный `Node.js`-процесс, который может держать одну или несколько браузерных сессий и последовательно выполнять в них тесты.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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


Мастер-процесс управляет очередью тестов и распределяет их по воркерам. Каждый воркер — это отдельный `Node.js`-процесс, который может держать одну или несколько браузерных сессий и последовательно выполнять в них тесты.

Тесты внутри одного `describe`-блока по умолчанию выполняются последовательно — в том порядке, в котором они объявлены. Параллелизм достигается за счет одновременного выполнения тестов из разных файлов и разных браузеров в разных воркерах.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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


Поведение параллельного запуска контролируется тремя ключевыми настройками в `testplane.config.ts`.

#### Рабочие процессы
Copy link
Copy Markdown
Member

@shadowusr shadowusr Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай напишем "workers" или воркеры, рабочие процессы звучит странно.

И унесем эту секцию в конец, т.к. чаще всего обращать внимание нужно не на это.


#### Ограничение количества рабочих процессов

Чтобы ограничить количество воркеров, воспользуйтесь командной строкой.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вообще не понятно, чем эта секция отличается от предыдущей. Я бы удалил.

};
```

#### Лимит сессий на браузер
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лимит на количество параллельно запущенных браузерных сессий


333 теста на чанк при `sessionsPerBrowser`: 10 и `testsPerSession`: 20 — разумное соотношение.

## Сводная таблица настроек
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не выглядит полезным

steps:
- uses: actions/checkout@v3
- run: npm ci
- run: npx testplane --chunks 4 --chunk ${{ matrix.chunk }}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Этот пример тоже не жизнеспособный. аргументы не соответствуют действительности, что дальше с этим делать — не понятно, как получить итоговый отчет? В этом кейсе в PR будет запущено 4 задачи параллельно, это вообще не удобно.

Надо либо удалить, либо написать хороший пример.

};
```

## Рекомендуемые настройки и их расчет
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы в эту секцию занес и рекоммендации по чанкам (шардам)

Здесь также стоит указать, что грубо 1 сессия потребляет 1.2 ядра, если браузеры локально запускаются, надо это учитывать.

Отправной точкой для расчета является количество ядер CPU и доступная память на машине, где запускаются браузеры (Selenium Grid, Selenoid, или локальная машина).

```text
sessionsPerBrowser = количество доступных слотов на grid / количество браузеров
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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


```text
sessionsPerBrowser = количество доступных слотов на grid / количество браузеров
workers = sessionsPerBrowser × количество браузеров
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это вообще не соответствует действительности. Рекомендация — 8, но не больше количества ядер CPU

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants