⚡️ 10 промптов для QA-автоматизатора

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

1. Чистый Pytest + Page Object

Напиши Python + Pytest + Selenium тест для https://example.com/login. Строго по Page Object Model. Проверь вход с валидными [логин:пароль]. Верни только код файлов \pages/login_page.py\ и \tests/test_login.py. Без пояснений.

👉 Зачем: Жесткие рамки фреймворка и запрет на болтовню отсекают выдуманные методы.

2. Только Assert, только суть (API)

Python + requests + pytest. POST /api/order. Payload: {“item”: “book”}. Проверь: status_code == 201, ‘id’ in response.json(). Используй фикстуру base_url. Выдай только содержимое def test_create_order(): .

👉 Зачем: Конкретная проверка вместо “напиши тест”. ИИ не придумает лишних валидаций.

3. Селектор без фантазий (Playwright)

Playwright JS. Найди кнопку “Добавить в корзину” на странице товара. Селектор должен быть устойчивым (data-testid или точный текст). Напиши только строку локатора в формате: page.locator(‘…’).click().

👉 Зачем: Просим конкретный артефакт, а не весь тест. Исключаем хрупкие XPath, придуманные нейросетью.

4. JSON Schema с нюансами

Сгенерируй JSON Schema для ответа GET /user/1. Поля: id (int), name (str), email (формат email). Только валидный JSON код. Без Markdown разметки.

👉 Зачем: Уточнение “только валидный JSON” экономит время на вырезание обрамляющих комментариев из ответа.

5. Генерация данных под бизнес-логику

Создай Python-функцию generate_user(role=‘admin’). Возвращает dict с полями: name (str), age (int, 25-60), email (str, валидный вид). Только код функции, без примеров вызова.

👉 Зачем: Ограничение возраста предотвращает генерацию пользователей 150 лет или с отрицательным возрастом.

6. Allure шаг без украшательств

Добавь в код Pytest: with allure.step(‘Проверка баланса’): assert balance > 0. Только блок with, вставь его туда, где комментарий # ALLURE-STEP.

👉 Зачем: Точечная правка существующего кода. ИИ не пытается переписать весь файл, если мы четко указали место.

7. SQL запрос для проверки БД

Напиши SQL запрос (PostgreSQL) для проверки, что запись с id=5 имеет статус ‘ACTIVE’. Только SELECT запрос, одна строка.

👉 Зачем: Минимум контекста — минимум шансов на неправильный синтаксис JOIN для несуществующих таблиц.

8. Конфиг без лишних строк (Selenide/Java)

Selenide Java. Конфигурация для запуска в Docker-контейнере (remote url). Покажи только блок Configuration.remote = “…”; без импортов и класса.

👉 Зачем: QA часто нужно настричь кусков конфигов. Без импортов код короче и не содержит ошибок в именах пакетов.

9. Ревью чужого AI-кода

Проанализируй код ниже. Найди потенциальные race conditions и проблемы с ожиданиями в Selenium. Ответ в формате: “Строка 10: проблема - … Исправление: …”. Без похвалы коду.

👉 Зачем: Формат ответа блокирует стандартную привычку LLM разводить рассуждения “Это отличный код, но…”.

10. Заглушка WireMock за секунду

Создай mapping файл (stub) для WireMock. URL: /status. Возвращает 200 OK и тело {“status”: “ok”}. Только JSON для папки mappings.

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

💎 Совет дня: Замените в своих привычных промптах фразу “Напиши тест” на “Верни только содержимое метода test_… без комментариев”. Разница в чистоте выдачи будет неплохая.

Сохраняйте в избранное, чтобы не искать в нужный момент 🔖 #промпт_инжиниринг #qa_automation #ai_tools