Telegram бот для автоматизированного тестирования веб-сайтов с использованием MCP (Model Context Protocol) и Playwright.
- 🌐 Автоматическое тестирование веб-сайтов через естественные команды на русском языке
- 🔍 Интеллектуальное выполнение сценариев тестирования с помощью LLM
- 👤 Система персон - тестирование от лица разных типов пользователей (новички, эксперты, разный возраст и пол)
- 🧪 A/B тестирование - запуск множественных тестов с 5-50 пользователями одновременно
- 🎬 Запись тест-кейсов - выполнение тестов с записью последовательности инструментов для воспроизведения
- 📊 Расширенная аналитика - детальная статистика с коэффициентами вариации, персентилями и инсайтами
- 📱 Telegram интерфейс для удобного взаимодействия
- 📈 Сравнительный анализ поведения разных групп пользователей
- 🎯 Множественные сессии для разных пользователей
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Telegram Bot │◄──►│ MCP Client │◄──►│ Playwright MCP │
│ │ │ │ │ Server │
└─────────────────┘ └──────────────────┘ └─────────────────┘
▲ ▲ ▲
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Telegram Users │ │ OpenAI API │ │ Browser │
│ + Personas │ │ (GPT-4/qwen) │ │ Automation │
└─────────────────┘ └──────────────────┘ └─────────────────┘
- Docker и Docker Compose
- Telegram Bot Token (получить у @BotFather)
- OpenAI API Key или доступ к локальной LLM (qwen3)
- Напишите @BotFather в Telegram
- Отправьте команду
/newbot - Следуйте инструкциям для создания бота
- Сохраните полученный токен
Создайте файл .env в корне проекта:
# OpenAI/OpenRouter API настройки
OPENAI_API_KEY=your-api-key-here
BASE_URL=https://openrouter.ai/api/v1
MODEL=openai/gpt-4.1
# Telegram Bot Token
TELEGRAM_BOT_TOKEN=your-telegram-bot-token-here
# MCP Server настройки
PLAYWRIGHT_MCP_URL=http://playwright-mcp:8931/sse# Клонирование и переход в папку
git clone <your-repo>
cd <project-folder>
# Запуск всех сервисов
docker-compose up -d
# Просмотр логов бота
docker-compose logs -f telegram-bot
# Остановка сервисов
docker-compose down/start- Начать работу с ботом/help- Справка по использованию/status- Проверить статус соединения/clear- Очистить текущую сессию
Бот поддерживает тестирование от лица различных типов пользователей:
- Технический уровень: новички, средний уровень, эксперты
- Демография: разный возраст, пол, страны
- Поведенческие модели: осторожные, быстрые, детальные пользователи
Как использовать:
- Нажмите "👤 Выбрать персону" в главном меню
- Выберите нужную персону или "🎲 Случайная персона"
- Отправьте тестовый сценарий
Запуск множественных тестов для получения статистических данных:
- Количество пользователей: от 5 до 50
- Фильтрация: по полу, возрасту, техническому уровню
- Статистика: средние значения, медианы, стандартные отклонения
- Инсайты: автоматические рекомендации на основе результатов
Как использовать:
- Нажмите "🧪 A/B тестирование" в главном меню
- Настройте количество пользователей (рекомендуется 10-20)
- Установите фильтры (опционально)
- Отправьте тестовый сценарий
Выполнение реальных тестов с записью последовательности действий:
- Принцип: LLM выполняет тест как обычно, но все tool calls записываются
- Форматы: JSON последовательность, Python код для MCP, текстовые шаги
- Применение: автоматизация, повторное воспроизведение, CI/CD интеграция
- Воспроизведение: можно выполнить записанную последовательность без LLM
Как использовать:
- Нажмите "🎬 Записать тест-кейс" в главном меню
- Выберите формат сохранения (JSON/Python/Текст)
- Опишите тестовый сценарий как обычно
- Получите записанную последовательность инструментов
🔍 Поиск и навигация:
Перейди на yandex.ru и найди "рецепт борща"
Открой wikipedia.org и найди статью о Python
🛒 E-commerce тестирование:
Зайди на ozon.ru и найди смартфоны до 30000 рублей
Открой wildberries.ru и добавь в корзину первую футболку
📝 Тестирование форм:
Перейди на translate.google.com и переведи "Hello" на русский
Открой calculator.net и посчитай 15 * 24
🎯 Комплексные сценарии:
Протестируй поиск на habr.com: найди статьи про AI и открой первую
Проверь работу фильтров на avito.ru в категории автомобили
🎬 Запись тест-кейсов:
Зайди на yandex.ru и найди "рецепт борща" (будет записана последовательность)
Открой github.com, найди репозиторий "python" и зайди в него
Протестируй добавление товара в корзину на ozon.ru с записью шагов
- Процент успешности выполнения
- Время выполнения и количество действий
- Детализация каждого шага
- Информация о выбранной персоне
- Агрегированная статистика: средние значения, медианы, стандартные отклонения
- Временная аналитика: общее время, действий в минуту, самые медленные операции
- Разбивка по персонам: сравнение эффективности разных групп пользователей
- Статистические инсайты: автоматические выводы и рекомендации
- Коэффициенты вариации: оценка консистентности результатов
- JSON последовательность: точная запись всех вызовов MCP инструментов
- Python код: готовый скрипт для воспроизведения через MCP клиент
- Текстовые шаги: описание каждого шага с параметрами и временем выполнения
- Полная воспроизводимость: можно повторить тест без участия LLM
- "✅ Высокая общая успешность - сайт хорошо подходит для всех пользователей"
- "📊 Высокая вариативность результатов - пользователи сильно отличаются по успешности"
- "⏱️ Долгое выполнение задач - возможно стоит упростить интерфейс"
- "📏 Широкий интерквартильный размах - время выполнения сильно зависит от пользователя"
├── src/
│ ├── bot/
│ │ └── telegram_bot.py # Основной файл Telegram бота
│ └── client/
│ ├── mcp_client.py # MCP клиент
│ └── prompts.py # Системные промпты и персоны
├── docker-compose.yml # Docker конфигурация
├── Dockerfile # Образ для сборки
├── requirements.txt # Python зависимости
└── README.md # Этот файл
# Установка зависимостей
pip install -r requirements.txt
# Запуск только MCP сервера
docker-compose up -d playwright-mcp
# Запуск бота локально
export PLAYWRIGHT_MCP_URL="http://localhost:8931/sse"
python src/bot/telegram_bot.pyПоддерживаются различные LLM:
OpenRouter (рекомендуется):
BASE_URL=https://openrouter.ai/api/v1
MODEL=openai/gpt-4.1Локальная qwen3 через vLLM:
BASE_URL=http://localhost:8000/v1
MODEL=qwen3-32b-int4OpenAI напрямую:
BASE_URL=https://api.openai.com/v1
MODEL=gpt-4# Логи всех сервисов
docker-compose logs
# Логи только бота
docker-compose logs telegram-bot
# Логи в реальном времени
docker-compose logs -fБот не отвечает:
- Проверьте токен бота в
.env - Убедитесь что контейнер запущен:
docker-compose ps
Ошибки MCP соединения:
- Проверьте что playwright-mcp сервер запущен
- Проверьте URL в переменных окружения
Ошибки LLM:
- Проверьте API ключ OpenAI
- Убедитесь что модель доступна
Долгое выполнение A/B тестов:
- A/B тесты с большим количеством пользователей могут занимать 5-10 минут
- Рекомендуется начинать с 10-20 пользователей
Бот логирует:
- Подключения пользователей и выбор персон
- Выполнение тестовых сценариев (единичных и A/B)
- Статистику A/B тестов и агрегированные результаты
- Ошибки и исключения
- Временные метрики и производительность
- Каждый пользователь получает свою сессию MCP
- Сессии автоматически очищаются при ошибках
- Ограничение на 15 итераций на один тест
- A/B тесты выполняются параллельно для оптимизации времени
- Поддержка до 50 пользователей в одном A/B тесте
- Выбирайте персону, соответствующую вашей целевой аудитории
- Формулируйте четкие и конкретные сценарии
- Используйте "Случайную персону" для общей оценки
- Начинайте с 10-20 пользователей для быстрого тестирования
- Используйте 30-50 пользователей для статистической значимости
- Настраивайте фильтры для фокусировки на определенных группах
- Обращайте внимание на коэффициент вариации (CV) в результатах
- Форкните репозиторий
- Создайте ветку для фичи:
git checkout -b feature/amazing-feature - Коммитьте изменения:
git commit -m 'Add amazing feature' - Пушьте в ветку:
git push origin feature/amazing-feature - Откройте Pull Request
Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.
Если у вас возникли вопросы или проблемы:
- Проверьте Issues на наличие похожих проблем
- Создайте новый Issue с подробным описанием
- Приложите логи и конфигурацию (без приватных ключей!)
Сделано с ❤️ для автоматизации QA тестирования с поддержкой A/B тестирования и системы персон