Ваши тесты Playwright проверяет Delta-QA. Одна строка на каждую проверяемую страницу.
@delta-qa/vision отправляет в Delta-QA каждую страницу, которую проверяют ваши тесты Playwright. Delta-QA сравнивает её с эталоном по элементам и показывает, какой элемент изменился. Регрессионные тесты, написанные в коде, и сценарии, записанные без кода, живут в одном рабочем пространстве: те же эталоны, та же проверка, тот же отчёт.
Vision SDK сначала доступен в раннем доступе: свяжитесь с нами, чтобы использовать его в своих тестах Playwright.
Три шага в ваших тестах
- Создайте API-ключ в рабочем пространстве Delta-QA и сохраните его в секрете вашего CI. SDK читает его из
DELTAQA_API_KEY; рабочее пространство — то, которому принадлежит ключ. - Добавьте проверку там, где тест должен проверить страницу:
vision.check("Оплата"). По её имени она сопоставляется со своим эталоном. - Сделайте push. При первом запуске каждый тест «Новый»: его первый снимок становится эталоном. При втором, если сайт не изменился, различий не будет.
import { test } from "@playwright/test";
import { Vision } from "@delta-qa/vision";
const vision = new Vision(); // reads DELTAQA_API_KEY
test("Checkout", async ({ page }) => {
await vision.open(page, { id: "checkout", name: "Checkout" });
await page.goto("https://shop.example.com/checkout");
await vision.check("Payment");
await vision.close(); // fails the test on an unreviewed difference
});SDK предлагает только настройки, которые Delta-QA применяет: ни одна не принимается без эффекта. Тег и эталонный тег необязательны; без них SDK определяет их сам.
Сравнение по элементам, а не по пикселям
Для каждой проверки SDK отправляет страницу (её HTML, viewport) и ресурсы, загруженные браузером. Delta-QA заново открывает страницу и сравнивает её элементы с эталонными, как шаг сценария: отчёт называет элемент, который изменился — кнопку «Оплатить», была синей, стала зелёной, — а не область пикселей.
Непроверенное различие роняет тест Playwright, а лог CI содержит ссылку на пакет запусков. Вы открываете шаг, читаете отчёт и решаете: «Ожидаемо» или «Bug».
Каждый ресурс опознаётся по хешу: ресурс, который уже есть в вашем рабочем пространстве, повторно не отправляется. При втором запуске набора тестов, если сайт не менялся, уходят только HTML и хеши.
Один эталон на ветку, без автоматического слияния
- Тег определяется сам по вашей git-ветке или CI, а эталонный тег — по целевой ветке PR, иначе это
main. Новая ветка сравнивается сmainуже с первого запуска, и пакет показывает «сравнено с main». - «Ожидаемо» действует на отмеченные вами теги, по умолчанию «только этот тег»: другие ветки не видят изменений.
- История теста фильтруется по окружению и по тегу; любой скан можно назначить эталоном для отмеченных вами тегов.
- Тесты одного запуска CI образуют пакет, общий для параллельно работающих машин; список пакетов читается как ваш CI.
Вопросы о Vision SDK
Какие фреймворки поддерживает Vision SDK?
Нужно ли переписывать мои тесты Playwright?
Какие данные отправляет SDK?
Изменятся ли мои сценарии без кода?
Можно ли использовать его из другого языка?
Пусть Delta-QA проверяет ваши тесты Playwright
Чтобы использовать Vision, свяжитесь с нами: сначала он доступен в раннем доступе. Расскажите, какие тесты вы хотите проверять, и мы откроем вам доступ.