От стабильных автотестов до CI-пайплайнов: 15 промтов для Cypress, Playwright и Selenium, которые сэкономят часы работы QA-инженера

Автоматизация тестирования веб-приложений давно перестала быть просто «написать скрипт и забыть». Современный QA-инженер — это наполовину разработчик, наполовину аналитик, который должен быстро разбираться в новых инструментах, отлаживать флейки и встраивать тесты в CI/CD. Но даже опытные специалисты тратят уйму времени на рутинные задачи: генерацию тестовых данных, написание шаблонного кода, анализ упавших тестов. Здесь на помощь приходят промты для ИИ-ассистентов — они позволяют делегировать рутину и сосредоточиться на действительно сложных задачах.

В этой статье я собрал 15 практичных промтов, которые покрывают весь цикл работы с автотестами: от написания первого теста до настройки пайплайна и разбора флейков. Каждый промт сопровождается примером использования и пояснением, как его адаптировать под ваш проект. Вы узнаете, как заставить нейросеть генерировать код, который действительно работает, а не просто выглядит правдоподобно.

Базовые промты: с чего начать

Эти промты помогут вам быстро создавать каркас тестов и не тратить время на рутину.

1. Генерация теста по пользовательскому сценарию

Задача: Получить готовый тест на основе описания сценария.

Промт:

Напиши тест на [Cypress/Playwright/Selenium] для проверки сценария: [опишите сценарий, например, «пользователь входит в систему, добавляет товар в корзину и оформляет заказ»]. Используй [Page Object Model], данные для теста возьми из [фикстур/переменных окружения]. Добавь проверки [критических элементов].

Пример результата:

// cypress/e2e/checkout.cy.js
describe('Checkout flow', () => {
  it('should complete purchase', () => {
    cy.login(Cypress.env('USER'), Cypress.env('PASS'));
    cy.addToCart('apple');
    cy.get('[data-test="checkout"]').click();
    cy.fillShippingForm();
    cy.get('[data-test="place-order"]').should('be.visible').click();
    cy.contains('Order placed').should('be.visible');
  });
});

Почему это работает: Промт задаёт контекст (инструмент, паттерн, источник данных), и нейросеть генерирует код, который легко интегрировать в проект.

2. Создание Page Object Model

Задача: Автоматически сгенерировать классы Page Object для вашей страницы.

Промт:

Создай Page Object для страницы [URL или название] в [Cypress/Playwright/Selenium]. Включи селекторы для элементов: [перечислите элементы, например, «поле email, кнопка submit, сообщение об ошибке»]. Используй [CSS/XPath] селекторы, добавь методы для взаимодействия с элементами.

Пример результата:

// pages/LoginPage.ts
export class LoginPage {
  private emailInput = '[data-test="email"]';
  private passwordInput = '[data-test="password\']';
  private submitButton = '[data-test="login-submit"]';

  async login(email: string, password: string) {
    await page.fill(this.emailInput, email);
    await page.fill(this.passwordInput, password);
    await page.click(this.submitButton);
  }
}

Совет: Уточняйте в промте, какие именно селекторы предпочтительны — это избавит от лишних правок.

3. Генерация тестовых данных

Задача: Получить набор реалистичных данных для тестов.

Промт:

Сгенерируй JSON-файл с тестовыми данными для [формы регистрации]. Включи 10 записей с полями: [имя, email, телефон, пароль]. Используй [faker.js/библиотеку] для генерации, данные должны быть уникальными и соответствовать формату [email/телефон].

Пример результата:

[
  {
    "name": "John Doe",
    "email": "john.doe@example.com",
    "phone": "+1-555-0100",
    "password": "P@ssw0rd!"
  },
  // ... ещё 9 записей
]

Применение: Подключите файл в тестах через cy.fixture() или импортируйте в Playwright.

4. Написание проверок для API

Задача: Создать тесты для REST API.

Промт:

Напиши тест на [Cypress/Playwright] для API-эндпоинта [GET/POST] [URL]. Проверь статус-код, схему ответа (используй [Joi/JSON Schema]) и ключевые поля. Добавь тест на негативный сценарий [например, неверные данные].

Пример результата:

// cypress/e2e/api.cy.js
it('GET /api/users returns list', () => {
  cy.request('GET', '/api/users').then((response) => {
    expect(response.status).to.eq(200);
    expect(response.body).to.have.property('data');
    expect(response.body.data).to.have.length.greaterThan(0);
  });
});

5. Подключение браузеров и устройств

Задача: Настроить запуск тестов в разных браузерах и разрешениях.

Промт:

Настрой проект [Playwright/Cypress] для запуска тестов в [Chrome, Firefox, WebKit] и на мобильных устройствах [iPhone 12, Pixel 5]. Укажи конфигурацию в [playwright.config.ts/cypress.config.js].

Пример для Playwright:

// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
  projects: [
    { name: 'chromium', use: { browserName: 'chromium' } },
    { name: 'firefox', use: { browserName: 'firefox' } },
    { name: 'webkit', use: { browserName: 'webkit' } },
    { name: 'mobile-chrome', use: { browserName: 'chromium', viewport: { width: 390, height: 844 } } },
  ],
});

Продвинутые промты: отладка и стабильность

Здесь — промты для борьбы с флейками и оптимизации тестов.

6. Анализ флейковых тестов

Задача: Найти причины нестабильности теста.

Промт:

У меня флейковый тест [вставьте код]. Он падает примерно в 10% случаев. Проанализируй возможные причины: тайминги, гонки, асинхронность, внешние зависимости. Предложи конкретные исправления, например, использование [waitFor, expect.poll, cy.intercept].

Пример: Нейросеть может предложить заменить cy.wait(2000) на cy.get('[data-test="result"]').should('be.visible') или использовать expect.poll для опроса состояния.

7. Исправление таймингов и ожиданий

Задача: Заменить жёсткие задержки на умные ожидания.

Промт:

Замени в этом тесте [код] все `cy.wait()` и `setTimeout()` на явные ожидания: `cy.get().should()`, `expect(page).toHaveURL()`, `waitForSelector()`. Убедись, что тест не будет ждать лишнего времени.

Пример: Вместо cy.wait(5000)cy.intercept('GET', '/api/data').as('getData'); cy.wait('@getData');

8. Работа с теневой DOM и iframe

Задача: Взаимодействовать с элементами внутри Shadow DOM и iframe.

Промт:

Напиши тест на [Cypress/Playwright] для работы с элементом внутри [Shadow DOM/iframe]. Используй [cy.get('selector').shadow()/frameLocator()]. Опиши, как получить доступ к элементу и кликнуть по нему.

Пример для Playwright:

const frame = page.frameLocator('#my-iframe');
await frame.locator('button').click();

9. Перехват сетевых запросов (Mocking)

Задача: Подменить ответы API для изоляции теста.

Промт:

Настрой перехват запроса [GET/POST] [URL] и верни мок-ответ [JSON]. Используй [cy.intercept()/page.route()]. Добавь проверку, что запрос был отправлен.

Пример для Cypress:

cy.intercept('GET', '/api/user', { fixture: 'user.json' }).as('getUser');
cy.visit('/profile');
cy.wait('@getUser');

10. Параллельный запуск и шардирование

Задача: Настроить параллельный запуск тестов.

Промт:

Настрой параллельный запуск тестов в [Cypress/Playwright]. Используй [Cypress Dashboard/Playwright sharding]. Покажи конфигурацию для CI [GitHub Actions/Jenkins].

Пример для Playwright:

# .github/workflows/playwright.yml
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        shard: [1, 2, 3]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npx playwright test --shard=${{ matrix.shard }}/3

Экспертные промты: интеграция и оптимизация

Для тех, кто хочет выжать максимум из автоматизации.

11. Настройка CI/CD пайплайна

Задача: Создать полный пайплайн для запуска тестов.

Промт:

Создай конфигурацию для [GitHub Actions/Jenkins] для запуска тестов [Cypress/Playwright] на каждый push в ветку [main]. Включи установку зависимостей, запуск тестов, загрузку артефактов и отправку уведомлений в [Slack/Telegram].

Пример: Готовый YAML-файл с шагами: checkout, setup-node, npm ci, run tests, upload artifacts, notify.

12. Генерация отчётов и аллюр-интеграция

Задача: Настроить красивые отчёты.

Промт:

Настрой генерацию отчётов для [Cypress/Playwright] с использованием [Allure/Mochawesome]. Покажи, как добавить шаги, скриншоты и видео в отчёт. Интегрируй с [CI].

Пример: Использование @shelex/cypress-allure-plugin или @playwright/test reporter: allure-playwright.

13. Анализ покрытия кода

Задача: Оценить покрытие тестами.

Промт:

Настрой сбор покрытия кода для [Cypress/Playwright] с использованием [Istanbul/nyc]. Покажи, как подключить плагин и как интерпретировать отчёт.

Пример: В Playwright — '@playwright/test' поддерживает coverage через @babel/plugin-istanbul.

14. Оптимизация скорости выполнения

Задача: Ускорить прогон тестов.

Промт:

Проанализируй этот набор тестов [код/описание] и предложи способы ускорить выполнение: сократить количество шагов, использовать [параллельные запуски, кэширование, моки]. Дай конкретные рекомендации.

Пример: Замена cy.visit() на cy.request() для подготовки данных, уменьшение скриншотов.

15. Кроссбраузерное и кроссдевайсное тестирование

Задача: Настроить запуск на реальных устройствах.

Промт:

Настрой запуск тестов на [BrowserStack/Sauce Labs] для [Cypress/Playwright]. Покажи конфигурацию и пример команды запуска.

Пример: Использование webdriverio или playwright с browserstack.

Заключение

Промты — это не замена инженерному мышлению, а инструмент для ускорения рутины. Надеюсь, эта подборка поможет вам сократить время на написание и отладку тестов. Начните с базовых промтов, адаптируйте их под свой проект и постепенно переходите к сложным. А если у вас есть свои проверенные промты — делитесь в комментариях, обсудим!

Помните: нейросеть — отличный помощник, но финальное слово всегда за вами. Всегда проверяйте сгенерированный код на корректность и безопасность.

← Все статьи

Комментарии

Читайте также

Семь промтов, которые заменят ручное тестирование: как я сократил время QA на 70%

2 сентября 2026

Практическая криптография: Навигация по квантовому переходу с помощью стандартов NIST и ИИ-обучения

2 сентября 2026

От EXPLAIN до pg_hint_plan: 15 промтов, которые выжмут из PostgreSQL максимум

2 сентября 2026

Vue.js и Nuxt: современный стек для высокопроизводительных веб-приложений в 2026 году

2 сентября 2026

Стартап без PM: 12 промтов, которые заменят продакт-менеджера

2 сентября 2026

Как создать конвейер обнаружения аномалий в реальном времени с помощью TensorFlow и Kafka: практическое руководство

2 сентября 2026

Клинические исследования — Клинические испытания и GCP: Ваш карьерный путь в отрасли, управляемой данными

2 сентября 2026

Как Java и C# — корпоративная разработка на Asibiont.com сокращает затраты на микросервисы: пример использования Spring Boot и Kafka

2 сентября 2026

SEO-аудит и контент-стратегия: 10 промтов, которые заменят половину рутины

1 сентября 2026