Разобрать операцию

Автотесты Playwright из ручных сценариев

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

Как обрабатываются данные

  1. Ручной кейс и ожидаемый результат

    Из TestRail, Jira или другой системы берём ID, предусловия, шаги и проверяемый результат.

  2. Согласование сценария в Gherkin

    LLM формирует Given / When / Then. Недостающие условия и двусмысленные ожидания возвращаются QA на уточнение.

  3. Автотест Playwright

    В сценарий добавляем действия, локаторы, тестовые данные и проверки ожидаемого поведения.

  4. Прогон и связь с кейсом

    QA сверяет тест с оригиналом и проверяет два исхода. Отчёт связывает результат прогона с ID ручного сценария.

Пример артефакта

Данные и результат условные. Формат подбираем под вашу задачу и рабочие системы.

Прогон автотестов

Покажи автотест Playwright для C-482 и результат его прогона.

C-482 пройден

Ручной кейс TestRail перенесён в Gherkin и покрыт автотестом Playwright. После повторного добавления товара в корзине остаётся одна строка, количество увеличивается до двух.

ПроверкаРезультат
Строки с SKU-1011 из 1
Количество2 из 2
Отчёт прогонаcart-quantity.spec.ts · 1 passed
Сценарий Gherkin
Feature: Корзина
  @C-482
  Scenario: Повторное добавление товара
    Given в корзине 1 единица SKU-101
    When покупатель добавляет SKU-101 ещё раз
    Then в корзине 1 строка с SKU-101
    And количество в строке равно 2
Код автотеста Playwright
import { test, expect } from "playwright/test";

test("C-482 · повторное добавление товара", async ({ page }) => {
  const regression = process.env.CART_REGRESSION === "1";
  await page.setContent(`
    <button>Добавить SKU-101</button>
    <ul><li>SKU-101 · <span data-testid="quantity">1</span></li></ul>
  `);

  if (!regression) {
    await page.getByRole("button").evaluate(button => {
      button.addEventListener("click", () => {
        document.querySelector('[data-testid="quantity"]').textContent = "2";
      });
    });
  }

  const item = page.getByRole("listitem").filter({ hasText: "SKU-101" });
  await page.getByRole("button", { name: "Добавить SKU-101" }).click();
  await expect(item).toHaveCount(1);
  await expect(item.getByTestId("quantity")).toHaveText("2");
});
Источники ответа
  • Jira · CART-17 · Повторное добавление товара

    Задача связана с тест-кейсом C-482.

    В корзине с одной единицей SKU-101 нажать «Добавить SKU-101» повторно. Критерий приёмки: остаётся одна строка, количество в ней увеличивается до 2.

  • ТЗ · «Корзина» · § 3.2

    Правило для повторного добавления позиции.

    Если артикул уже есть в корзине, увеличиваем количество в существующей строке на 1. Отдельную строку создаём только для нового артикула.

  • TestRail · C-482 · Повторное добавление товара

    Проверяет критерий приёмки CART-17 и правило из § 3.2 ТЗ.

    Предусловие: в корзине 1 единица SKU-101. Действие: добавить SKU-101 ещё раз. Ожидается одна строка с количеством 2.

  • TestRail · прогон R-731

    Корректное поведение. Автотест для C-482 пройден.

    cart-quantity.spec.ts · 1 passed. Строк с SKU-101: 1. Фактическое количество: 2. Ожидаемое: 2.

GPT Client

Вопросы о сценарии

Сколько стоит перенести ручные кейсы в автотесты?

Ориентир за работы — 120–190 тыс. ₽. Оценка для одного потока из TestRail или другой TMS в существующий Playwright-проект. Объём набора и тестовые данные согласуем на разборе.

Что нужно, чтобы проверить получившиеся тесты?

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

Общие условия и расходы на инфраструктуру