Перейти к основному содержимому

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...
};

Расшифровка параметров конфигурации

ПараметрТипПо умолчаниюОписание
enabledBooleantrueВключить / отключить плагин.
rulesArrayN/AНабор правил, в соответствии с которыми команды будут ретраиться. Обязательный параметр.

rules

Параметр rules представляет собой массив объектов. Каждый объект описывает отдельное правило для ретрая команд.

Из каких параметров состоит это правило:

ПараметрТипПо умолчаниюОписание
conditionStringN/AУсловие для ретрая: blank-screenshot или assert-view-failed. Подробнее см. ниже.
browsersString/RegExp/Array/.*/Список браузеров, в которых нужно применять ретраи.
retryCountNumber2Количество ретраев.
retryIntervalNumber100Задержка перед каждым ретраем, в мс.
retryOnlyFirstBooleanfalseРетраить только первую команду в тесте. Опция актуальна только для условия assert-view-failed.

condition

Условие, при котором нужно ретраить. Всего доступны 2 значения:

  • blank-screenshot — ретраить низкоуровневую команду снятия скриншота takeScreenshot, если в результате команды вернулся пустой скриншот;
  • assert-view-failed — ретраить высокоуровневую команду testplane для снятия скриншота assertView, если она упала.

browsers

Список браузеров, в которых нужно применять низкоуровневые ретраи для команд. Можно задавать как строку (если это один браузер), регулярное выражение или массив строк или регулярных выражений. По умолчанию, параметр browsers имеет значение /.*/, под которое попадают все браузеры.

retryCount

Параметр определяет сколько раз нужно ретраить команду, если соблюдено условие, заданное в параметре condition.

retryInterval

Параметр задает время в миллисекундах, которое надо подождать, прежде чем попытаться снова повторить команду.

warning

Будьте осторожны, устанавливая значение для данного параметра, так как слишком большое значение может драматически снизить скорость ваших тестов.

retryOnlyFirst

Разрешает ретраить только первую команду assertView в тесте, если установлено значение true. Для других условий этот параметр не используется.

Передача параметров через CLI

Все параметры плагина, которые можно определить в конфиге, можно также передать в виде опций командной строки или через переменные окружения во время запуска testplane. Используйте префикс --retry-command- для опций командной строки и testplane_retry_command_ — для переменных окружения. Например:

npx testplane --retry-command-count 3
testplane_retry_command_count=3 npx testplane