testplane-retry-command
Обзор
Используйте плагин testplane-retry-command, чтобы ретраить отдельные команды на низком уровне.
Установка
npm install -D testplane-retry-command
Настройка
Необходимо подключить пла гин в разделе plugins
конфига testplane
:
module.exports = {
plugins: {
"testplane-retry-command": {
enabled: true,
rules: [
{
condition: "blank-screenshot",
browsers: ["MicrosoftEdge"],
retryCount: 5,
retryInterval: 120,
},
{
condition: "assert-view-failed",
browsers: ["Chrome"],
retryCount: 1,
retryOnlyFirst: true,
},
],
},
// другие плагины testplane...
},
// другие настройки testplane...
};
Расшифровка параметров конфигурации
Параметр | Тип | По умолчанию | Описание |
enabled | Boolean | true | Включить / отключить плагин. |
rules | Array | N/A | Набор правил, в соответствии с которыми команды будут ретраиться. Обязательный параметр. |
rules
Параметр rules
представляет собой массив объектов. Каждый объект описывает отдельное правило для ретрая команд.
Из каких параметров состоит это правило:
Параметр | Тип | По умолчанию | Описание |
condition | String | N/A | Условие для ретрая: blank-screenshot или assert-view-failed. Подробнее см. ниже. |
browsers | String/RegExp/Array | /.*/ | Список браузеров, в которых нужно применять ретраи. |
retryCount | Number | 2 | Количество ретраев. |
retryInterval | Number | 100 | Задержка перед каждым ретраем, в мс. |
retryOnlyFirst | Boolean | false | Ретраить только первую команду в тесте. Опция актуальна только для условия assert-view-failed. |
condition
Условие, при котором нужно ретраить. Всего доступны 2 значения:
blank-screenshot
— ретраить низкоуровневую команду снятия скриншота takeScreenshot, если в результате команды вернулся пустой скриншот;assert-view-failed
— ретраить высокоуровневую команду testplane для снятия скриншота assertView, если она упала.
browsers
Список браузеров, в которых нужно применять низкоуровневые ретраи для команд. Можно задавать как строку (если это один браузер), регулярное выражение или массив ст рок или регулярных выражений. По умолчанию, параметр browsers
имеет значение /.*/
, под которое попадают все браузеры.
retryCount
Параметр определяет сколько раз нужно ретраить команду, если соблюдено условие, заданное в параметре condition
.
retryInterval
Параметр задает время в миллисекундах, которое надо подождать, прежде чем попытаться снова повторить команду.
Будьте осторожны, устанавливая значение для данного параметра, так как слишком большое значение может драматически снизить ск орость ваших тестов.
retryOnlyFirst
Разрешает ретраить только первую команду assertView в тесте, если установлено значение true
. Для других условий этот параметр не используется.
Передача параметров через CLI
Все параметры плагина, которые можно определить в конфиге, можно также передать в виде опций командной строки или через переменные окружения во время запуска testplane. Используйте префикс --retry-command-
для опций командной строки и testplane_retry_command_
— для переменных окружения. Например:
npx testplane --retry-command-count 3
testplane_retry_command_count=3 npx testplane