Copilot генерирует структуру Page Object, массивы тестовых данных, TypeScript-интерфейсы и паттерны assert'ов Playwright по мере набора: задачи где паттерн предсказуем и результат легко проверить. Он не видит твоё приложение, поэтому селекторы всегда угадываются и почти всегда неверны. Также генерирует тесты которые кликают по флоу без единого assert'а, которые проходят по умолчанию и ничего не тестируют.
Что такое Copilot
Copilot: инструмент дополнения кода который видит текущий файл (и опционально открытые вкладки) и предлагает что написать дальше. Обучен на публичном коде с GitHub, поэтому видел много Playwright-тестов, паттернов тестирования и типичного QA-кода.
Работает прямо в редакторе: никаких браузерных вкладок, никакого копипаста. По мере набора предлагает дополнения которые принимаешь нажатием Tab.
Также есть Copilot Chat (чат-сайдбар) для вопросов, объяснения кода, или запроса написать что-то конкретное.
Где Copilot реально полезен для QA
1. Устранение бойлерплейта
Самый стабильный выигрыш: Copilot отличен в повторяющихся структурах. При написании параметризованных тест-кейсов:
const CASES = [
{ input: 'valid@email.com', expected: true },
// начни набирать здесь...Copilot часто предложит следующие 5–10 строк твоей таблицы тестовых данных. Не всегда идеально, но часто достаточно хорошо чтобы просто нажать Tab и подправить.
Аналогично для настройки тестов:
test.beforeEach(async ({ page }) => {
await page.goto('/');
// Copilot предлагает: await page.waitForLoadState('networkidle');2. Бойлерплейт Page Object
При создании класса Page Object Model Copilot хорошо справляется со структурой:
export class LoginPage {
constructor(private page: Page) {}
// Набери "async login(" и Copilot дополнит:
async login(email: string, password: string) {
await this.page.fill('[data-testid="email"]', email);
await this.page.fill('[data-testid="password"]', password);
await this.page.click('[data-testid="submit"]');
}Имена селекторов часто неверны (угадывает), но структура и паттерны await page.fill/click/expect будут правильными.
3. TypeScript-типы и интерфейсы
Copilot хорошо справляется с TypeScript-бойлерплейтом. Если тестовые данные типизированы:
interface User {
id: number;
email: string;
role: 'admin' | 'member' | 'viewer';
// Copilot часто продолжает: createdAt: string;Знает типичные имена полей и паттерны TypeScript.
4. Дополнение assert'ов Playwright
Набери expect(page.locator( и Copilot знает типичные assert'ы и предложит:
await expect(page.locator('[data-testid="error"]')).toBeVisible();
await expect(page.locator('[data-testid="title"]')).toHaveText('Welcome');
await expect(page.locator('[data-testid="count"]')).toContainText('3 items');Не революционно, но быстрее чем каждый раз вспоминать точный API assert'ов.
5. Написание тестовых хелперов и утилит
Напиши комментарий вроде:
// Генерируем случайный email для тестовых данныхCopilot часто выдаст:
function generateTestEmail(): string {
const timestamp = Date.now();
return `test_${timestamp}@example.com`;
}Полезно для быстрых утилит которые иначе искал бы на Stack Overflow.
6. Copilot Chat: объяснение незнакомого кода
Когда принимаешь чужую кодовую базу автоматизации:
«Объясни что делает этот хукbeforeAllи почему он используетstorageState.»
Copilot Chat хорошо объясняет код, предлагает почему что-то сделано именно так, и даёт контекст по незнакомым API.
Где Copilot разочаровывает
Селекторы почти всегда неверны
Copilot не видит реальное приложение. Угадывает селекторы по типичным паттернам ([data-testid="submit"], button.login-btn, #username). Это почти никогда не твои реальные селекторы. Их всегда нужно заменять.
Не давай Copilot писать селекторы: будешь терять время на исправление ложных предложений.
Решения о покрытии тестами принимаешь ты
Copilot напишет тест для happy path. Он не расскажет об edge case где пользователь применяет промокод к корзине с товаром из ограниченной категории. Он не знает твой продукт.
Copilot ускоряет код, но не проектирует тесты. Решения о том что тестировать: всегда твои.
В сгенерированных тестах часто нет assert'ов
Copilot иногда пишет тесты которые кликают по флоу без единого assert'а:
test('user checkout', async ({ page }) => {
await page.goto('/checkout');
await page.fill('#card', '4242 4242 4242 4242');
await page.click('#submit');
// Нет assert'а: это тест или просто скрипт?
});Всегда проверяй сгенерированный код на отсутствующие вызовы expect().
Контекст по нескольким файлам ограничен
Copilot лучше всего работает в текущем файле. Если фикстуры в отдельном файле, Copilot может о них не знать. Иногда нужно сказать явно:
«ИспользуйloginFixtureимпортированный из../fixtures/auth.»
Практический воркфлоу: как реально использовать Copilot в Playwright
Используй Copilot для
- Написания скелета нового тестового файла
- Генерации повторяющихся массивов тестовых данных
- Дополнения известных паттернов Playwright API
- Написания TypeScript-интерфейсов для тестовых данных
- Написания утилитных функций (генераторы случайных данных, хелперы)
- Понимания незнакомого кода через Copilot Chat
Не полагайся на Copilot для
Селекторы всегда пиши сам из DevTools/Playwright Inspector. Решения о покрытии тестами: твои предметные знания, не ИИ. Полностью сгенерированные тесты верифицируй сам: проверяй assert'ы, логику и граничные случаи.
Совет по промптам для Copilot Chat
Прося Copilot Chat написать тест, будь конкретен:
«Напиши Playwright TypeScript тест для формы входа на /en/login. Селекторы: data-testid='email-input', data-testid='password-input', data-testid='submit-btn', data-testid='error-message'. Тест: валидный вход с test@example.com/ValidPass1 редиректит на /dashboard. Неверный пароль показывает сообщение об ошибке.»
Конкретный контекст даёт намного лучший результат.
Copilot vs. ChatGPT для QA
| | Copilot | ChatGPT |
|-|---------|---------|
| Лучше для | Встроенное дополнение кода, быстрые подсказки | Генерация длинного кода, объяснения, планирование тестов |
| Воркфлоу | Остаётся в редакторе | Отдельная вкладка браузера |
| Контекст | Видит текущий файл | Видит то что вставляешь |
| Скорость | Моментально, по мере набора | Несколько секунд |
| Проектирование тестов | Не полезен | Полезнее с хорошими промптами |
На практике многие QA-инженеры используют оба: Copilot при написании кода, ChatGPT для проектирования того что писать.
Стоит ли Copilot своих денег?
За $10 в месяц (или бесплатно с GitHub Education): да, для QA-автоматизаторов которые регулярно пишут тесты. Окупишь временем сэкономленным на бойлерплейте, особенно при создании новых тестовых файлов и POM-классов.
Если пишешь тесты редко, выигрыш в производительности меньше. Сначала попробуй бесплатный тариф.
Главное: Copilot не делает тебя лучшим QA-инженером. Он делает хорошего QA-инженера быстрее. Суждение о том что тестировать, как структурировать тесты, и какие граничные случаи важны: это по-прежнему полностью ты.
→ See also: Prompt Engineering для QA-инженеров: как получать лучшие результаты от ИИ-инструментов | ИИ в QA в 2026 году: что реально полезно, а что просто хайп | Использование ChatGPT для генерации тест-кейсов: практическое руководство для QA | Playwright MCP: как заставить ИИ писать тесты за вас