Сервис OCR тестирования
@wdio/ocr-service - это сторонний пакет, для получения дополнительной информации, пожалуйста, посетите GitHub | npm
Документацию по визуальному тестированию с WebdriverIO можно найти в документации. Этот проект содержит все необходимые модули дл я проведения визуальных тестов с WebdriverIO. В директории ./packages вы найдете:
@wdio/visual-testing: сервис WebdriverIO для интеграции визуального тестированияwebdriver-image-comparison: модуль сравнения изображений, который может использоваться с различными фреймворками автоматизации тестирования NodeJS, поддерживающими протокол WebDriver
Storybook Runner (BETA)
Нажмите, чтобы узнать больше о Storybook Runner BETA
Storybook Runner все еще находится в стадии BETA, документация позже будет перемещена на страницы документации WebdriverIO.
Этот модуль теперь поддерживает Storybook с новым Visual Runner. Этот runner автоматически сканирует локальный/удаленный экземпляр storybook и создает скриншоты элементов для каждого компонента. Это можно сделать, добавив
export const config: WebdriverIO.Config = {
// ...
services: ["visual"],
// ....
};
в ваши services и запустив npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook через командную строку.
По умолчанию он будет использовать Chrome в безголовом режиме.
[!NOTE]
- Большинство опций Visual Testing также будут работать для Storybook Runner, см. документацию WebdriverIO.
- Storybook Runner перезапишет все ваши capabilities и может работать только на поддерживаемых браузерах, см.
--browsers.- Storybook Runner не поддерживает существующую конфигурацию, использующую Multiremote capabilities, и выдаст ошибку.
- Storybook Runner поддерживает только Desktop Web, а не Mobile Web.
Опции сервиса Storybook Runner
Опции сервиса можно предоставить следующим образом
export const config: WebdriverIO.Config = {
// ...
services: [
[
'visual',
{
// Некоторые опции по умолчанию
baselineFolder: join(process.cwd(), './__snapshots__/'),
debug: true,
// Опции storybook, см. описание CLI-опций
storybook: {
additionalSearchParams: new URLSearchParams({foo: 'bar', abc: 'def'}),
clip: false,
clipSelector: ''#some-id,
numShards: 4,
// `skipStories` может быть строкой ('example-button--secondary'),
// массивом (['example-button--secondary', 'example-button--small'])
// или регулярным выражением, которое должно быть предоставлено в виде строки ("/.*button.*/gm")
skipStories: ['example-button--secondary', 'example-button--small'],
url: 'https://www.bbc.co.uk/iplayer/storybook/',
version: 6,
// Опционально - Позволяет переопределить путь базовых изображений. По умолчанию изображения группируются по категории и компоненту (например, forms/input/baseline.png)
getStoriesBaselinePath: (category, component) => `path__${category}__${component}`,
},
},
],
],
// ....
}
CLI-опции Storybook Runner
--additionalSearchParams
- Тип:
string - Обязательно: Нет
- По умолчанию: ''
- Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --additionalSearchParams="foo=bar&abc=def"
Добавляет дополнительные параметры поиска к URL Storybook. См. документацию URLSearchParams для получения дополнительной информации. Строка должна быть допустимой строкой URLSearchParams.
[!NOTE] Двойные кавычки необходимы, чтобы
&не интерпретировался как разделитель команд. Например, с--additionalSearchParams="foo=bar&abc=def"будет сгенерирован следующий URL Storybook для теста истори й:http://storybook.url/iframe.html?id=story-id&foo=bar&abc=def.
--browsers
- Тип:
string - Обязательно: Нет
- По умолчанию:
chrome, вы можете выбрать изchrome|firefox|edge|safari - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --browsers=chrome,firefox,edge,safari - ПРИМЕЧАНИЕ: Доступно только через CLI
Будет использовать указанные браузеры для создания скриншотов компонентов
[!NOTE] Убедитесь, что у вас установлены браузеры, которые вы хотите использовать, на вашем локальном компьютере
--clip
- Тип:
boolean - Обязательно: Нет
- По умолчанию:
true - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --clip=false
При отключении будет создан скриншот всего viewport. При включении будут созданы скриншоты элементов на основе --clipSelector, что уменьшит количество пустого пространства вокруг скриншота компонента и уменьшит размер скриншота.
--clipSelector
- Тип:
string - Обязательно: Нет
- По умолчанию:
#storybook-root > :first-childдля Storybook V7 и#root > :first-child:not(script):not(style)для Storybook V6, см. также--version - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --clipSelector="#some-id"
Это селектор, который будет использоваться:
- для выбора элемента, скриншот которого будет сделан
- для ожидания видимости элемента перед созданием скриншота
--devices
- Тип:
string - Обязательно: Нет
- По умолчанию: Вы можете выбрать из
deviceDescriptors.ts - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --devices="iPhone 14 Pro Max","Pixel 3 XL" - ПРИМЕЧАНИЕ: Доступно только через CLI
Будет использовать указанные устройства, соответствующие deviceDescriptors.ts, для создания скриншотов компонентов
[!NOTE]
- Если вам не хватает конфигурации устройства, не стесняйтесь отправить Feature request
- Это будет работать только с Chrome:
- если вы указали
--devices, то все экземпляры Chrome будут работать в режиме Mobile Emulation- если вы также указали другие браузеры, кроме Chrome, например
--devices --browsers=firefox,safari,edge, то автоматически будет добавлен Chrome в режиме эмуляции мобильных устройств- Storybook Runner по умолчанию создает снимки элементов, если вы хотите увидеть полный скри ншот в режиме мобильной эмуляции, укажите
--clip=falseчерез командную строку- Имя файла будет выглядеть, например, так:
__snapshots__/example/button/desktop_chrome/example-button--large-local-chrome-iPhone-14-Pro-Max-430x932-dpr-3.png- SRC: Тестирование мобильного сайта на desktop с использованием мобильной эмуляции может быть полезным, но тестировщики должны знать, что существует много незначительных различий, таких как:
- совершенно другой GPU, что может привести к большим изменениям производительности;
- мобильный UI не эмулируется (в частности, скрывающаяся URL-строка влияет на высоту страницы);
- всплывающее окно устранения неоднозначности (где вы выбираете одну из нескольких целей касания) не поддерживается;
- многие аппаратные API (например, событие orientationchange) недоступны.
--headless
- Тип:
boolean - Обязательно: Нет
- П о умолчанию:
true - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --headless=false - ПРИМЕЧАНИЕ: Доступно только через CLI
По умолчанию тесты будут запущены в безголовом режиме (если браузер поддерживает его) или этот режим может быть отключен
--numShards
- Тип:
number - Обязательно: Нет
- По умолчанию:
true - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --numShards=10
Это будет количество параллельных экземпляров, которые будут использоваться для запуска историй. Оно будет ограничено maxInstances в вашем файле wdio.conf.
[!IMPORTANT] При запуске в режиме
headlessне увеличивайте число более чем до 20, чтобы предотвратить нестабильность из-за ограничений ресурсов
--skipStories
- Тип:
string|regex - Обязательно: Нет
- По умолчанию: null
- Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --skipStories="/.*button.*/gm"
Это может быть:
- строка (
example-button--secondary,example-button--small) - или регулярное выражение (
"/.*button.*/gm")
для пропуска определенных историй. Используйте id истории, который можно найти в URL истории. Например, id в этом URL http://localhost:6006/?path=/story/example-page--logged-out - это example-page--logged-out
--url
- Тип:
string - Обязательно: Нет
- По умолчанию:
http://127.0.0.1:6006 - Пример:
npx wdio tests/configs/wdio.local.desktop.storybook.conf.ts --storybook --url="https://example.com"
URL, на котором размещен ваш экземпляр Storybook.
--version
- Тип:
number