🛠 Сервис для регресс-тестирования: как я собрал MVP и что в нём есть
Несколько вечеров фоновой мыслительной деятельности, и я осознал, каким вижу внутренний сервис для регресс-тестирования.
Он должен: – гибко настраивать тест-кейсы через WebUI; – запускать тесты через WebUI и CLI; – отдавать отчёт в HTML и JSON.
Чтобы не ждать восполнения бесплатных лимитов, поднял локальную модель. В нейминге и цифрах это выглядело так:
– DeepSeek v4.1 Flash Free (провайдер OpenCode) – разработчик-аналитик: на 100% сформировал со мной итоговое ТЗ и ~ на 70% его накодил. – MiMo-V2.6-Distill-Qwen-9B (локальная модель) – junior-разработчик. С ним пришлось повозиться, как с новеньким из другой ИТ-грядки: чтобы он осознал среду, изучил инструменты и ринулся в бой.
Важная оговорка: всё, что ниже, пока реализовано на бумаге, то есть в руководстве и ТЗ. Сейчас я как раз тестирую, всё ли действительно работает. Простой тест показал положительный результат, но простых в нашей работе не бывает. 😊 Так что это не «готовый продукт», а «карта того, что должно быть». Проверю и расскажу в следующих постах, что пришлось дорабатывать.
Что получилось в MVP: Окружения и учётки. Создаёшь окружение (адреса Web UI и API, заголовки, скриншоты), добавляешь API-учётки (токен) и GUI-учётки (логин/пароль). Имена учёток являются ключом: один кейс можно гонять на разных стендах, если имена совпадают, а секреты свои.
Тест-кейсы. Карточка с окружением по умолчанию, учётками, тегами и порядком сортировки. Шаги пяти типов: HTTP-запрос, открыть ссылку, клик, ввод, выбор из списка. Порядок задается стрелками ↑↓.
Локаторы. Семь стратегий: Test ID, роль, label, placeholder, текст, CSS, XPath. Плюс «Проверить локатор» показывает, сколько элементов найдено (желательно 1, а не 0 или >1).
Picker. Кликаешь по скриншоту страницы и получаешь кандидатов локаторов с пометкой «найдено 1».
Переменные и extractors. После шага можно вытащить значение в переменную: из JSON, заголовка, статуса, текста UI или regex.
Запуск. Помимо обычного прогона с отчетом, можно проверить кейс для быстрой отладки без истории. Также, есть возможность группового прогона по всем включённым, по отмеченным или по тегу.
Отчёт. Статусы, длительности, ошибки, запрос/ответ для HTTP, переменные и скриншоты для браузерных шагов. Секреты маскируются ***. Плюс статический HTML-отчёт в artifacts/reports//index.html.
Чего нет. Нет аутентификации пользователей и ролевой модели. Секреты в SQLite открытым текстом. Один прогон за раз. Только Chromium.
По итогу я получил MVP, который умеет то, ради чего затевался: настраивать кейсы руками, гонять их из UI и CLI, получать отчёт и не светить секретами.
А теперь вопрос к тем, кто гоняет регресс: чего здесь не хватает, чтобы регресс-тестирование было удобным и полным? Параметризации кейсов, параллельных прогонов, сравнения результатов между запусками, интеграции с CI? Чего вам лично не хватает в таких инструментах? 🤔
#разработка #ии #регресс #тестирование #пет_проект #opencode #самозванец