Ни для кого не секрет, что хорошее программное обеспечение отличается от остального не функциональностью, а качеством заявленных функций.
Ведь никому не нужно функциональное программное обеспечение, если оно просто не работает. Но как вовремя сообщить разработчикам, что с проектом что-то не так?
Сегодня мы немного поговорим о проблемах коммуникации между отделами внутри компании, а заодно на примере Test IT посмотрим, что помогло нам постичь Дзен: беспристрастный бот с каменным сердцем и душа алгоритма — в Bot Framework. Добро пожаловать коту!
Издавна считалось, что главным инструментом на войне являются коммуникации.
Без связи невозможно координировать свои войска, узнавать новости с полей, оказывать поддержку и следить за действиями противника.
Что такое разработка, как не локальная война нескольких отделов из-за продукта? И если в древности для распространения новостей использовался мессенджер, мессенджер, а позже и телефонная связь, то в преддверии 2020 года было бы странно использовать подобные технологии, особенно когда ваша армия, работающая над продуктом, может быть распространена далеко за пределы границы одного офиса.
Наш инженер по контролю качества задал аналогичный вопрос.
Конечно, вы можете написать подробности о непройденном тесте в рабочем чате.
Но для этого потребуется время, которое вы не захотите тратить на однотипные уведомления.
Вы можете добавить команду на портал Попробуй это и заставить их проверять статус автотестов.
Это тоже частично решит проблему, но необходимость постоянно находиться на портале будет сильно отвлекать команду разработчиков.
Нам нужно что-то попроще, без необходимости тратить время на рассылку уведомлений.
Следуя этой логике, мы пришли к вебхукам.
Они позволят автоматизировать отправку уведомлений и критических логов из системы на любое устройство, подключенное к Интернету.
Итак, с каналом связи мы разобрались.
Сейчас самое время подумать о том, куда вебхуки должны отправлять свои уведомления.
В идеале это должна быть платформа, объединяющая несколько мессенджеров и электронную почту для любителей классики.
И, как вы могли догадаться по названию статьи, выбор платформы пал на Bot Framework. Такая комбинация полностью отвечает требованиям к срочным уведомлениям и позволит расширить возможности бота, не мешая тест-кейсам и платформе.
А сам бот станет нашим помощником в разработке, который будет без устали читать рабочий чат и уведомлять нас о любых интересующих событиях в TMS Test IT. В сегодняшней статье мы рассмотрим пример использования бота в Telegram для отправки уведомлений командам разработки и тестирования с платформы Test IT.
Создание проекта и бота
Заходим на портал и создаем новый проект:В проект входят тест-кейсы, автотесты, чек-листы, вебхуки и многое другое.
Далее мы создадим план тестирования.
Пусть оно будет иметь то же простое имя, что и имя проекта:
Далее вы можете добавлять новые тест-кейсы, но мы перейдем непосредственно к созданию нашего умного помощника.
Не закрывайте портал, мы вернемся к нему позже для настройки вебхуков.
Разработка будет вестись на .
Net Framework (ну куда бы мы без него) с использованием Azure. Собственно, мы начнем с Лазурный .
Перейдите на портал и найдите Web App Bot:
Нажмите «Создать», заполните необходимые поля и разверните.
В рамках статьи мы изначально развернем шаблон Echo Bot и в дальнейшем будем опираться на него.
Когда бот успешно развернут, пришло время подключиться к вашим каналам связи с ботом.
У разработчика очень большой список мессенджеров и вариантов связи на выбор, но для наших целей вполне хватит Telegram. Для этого напишем боту пару хороших команд @BotFather и создайте нового бота.
К счастью, он общается с нами очень дружелюбно, помогая создать нечто похожее на себя.
Bot Father был создан в Telegram для управления другими ботами.
Да-да, не зря его называют отцом ботов! По окончании регистрации Бот Отец должен дать нам уникальный ключ для нашего ребенка.
С радостью копируем его, благодарим отца этого странного семейства и возвращаемся на портал Azure.
Теперь нам нужно скачать исходный код бота, чтобы мы могли работать с ним прямо в нашей IDE:
Мы также можем получить эмулятор для локальной отладки.
Если логика вашего бота будет немного сложнее, чем вывод «Привет, мир», лучше обзавестись инструментами для отладки и тестирования нового члена команды.
Прямо на портале нам останется только открыть нашего нового бота, перейти на вкладку «Каналы», добавить Telegram-канал и передать ему ключ, любезно оставленный отцом ботов.
Также, чтобы бот не вылетел при длительном простое, желательно зайти в сервис приложения (название аналогично названию нашего бота на портале) -> конфигурация -> общие параметры и в в столбце «Всегда включено» выберите статус «Включено».
В противном случае ваш бот может уснуть, что будет стоить вашим конечным пользователям драгоценного времени, чтобы его запустить и запустить.
Также, поскольку мы все еще находимся на портале Azure, мы развернем небольшую базу данных для этого бота.
Полезно для хранения списка индексов групп и их секретных ключей.
Подробнее о развертывании базы данных можно прочитать здесь .
Итак, если при обращении к нашему боту в Telegram он возвращает наше сообщение, значит, мы все сделали правильно и вкладку Azure можно отложить до лучших времен.
Теперь мы можем приступить к работе над логикой работы нашего помощника.
Мозговой штурм бота
Для тех, кто имеет опыт работы с ASP.NET Core, дальше не будет ничего нового.
Для остальных оставим краткую инструкцию, что делать дальше:
- Научите приложение работать с Entity Framework и подключать базу данных.
Требуется, чтобы бот мог сохранять отношения ChatID, статус игнорирования чата и «secretKeyBot» входящих объектов в базе данных.
Это позволит вам использовать бота не только в рамках данного проекта и компании в целом, но и свободно добавлять его в группы для всех желающих;
- Добавьте модель данных и контроллер API. Наше приложение должно иметь какую-то внешнюю точку входа, через которую мы можем связаться с ботом и передать тело запроса.
Модель данных — это представление тела запроса, а контроллер должен работать с внешним вызовом;
- Пишите cruds и сервисные команды.
Если с крудами все понятно, то командный сервис — это наша бизнес-логика обработки сообщений чата.
Изначально мы хотели иметь возможность отключать уведомления от бота в любом конкретном чате.
Один из вариантов сделать это — напрямую командой в чате, которую бот должен обработать и запомнить только для этого чата.
- Протестируйте бота в локальной среде с помощью эмулятора.
Особо опытные ребята могут загрузить бота прямо в Azure и следить за его поведением через чат в Telegram, но в этом случае бот не вернет вам подробное описание ошибок.
И вы не можете устанавливать точки останова (любимый инструмент отладки).
Кстати, небольшая особенность Bot Framework в том, что он очень не любит возвращать подробное описание ошибки.
Так что давайте тщательно разрабатывать и совершать коммиты почаще!
- Публикация в Azure. Среди папок проекта вы можете найти одну с простым названием «PostDeployScripts».
Он содержит один важный для нас файл с расширением .
PublishSettings. Там же находятся данные о подключении к хранилищу бота в Azure. А для тех, кто использует Visual Studio, этот файл — священный ключ к публикации проекта: импортируйте его при публикации, и IDE вытянет из него все необходимые данные.
Добавление вебхука
Собственно, бот создан.
Пришло время отправить вебхук с портала TestIT. Радуемся, что не закрыли вкладку в браузере, а заходим туда:
Перейдите в настройки проекта, вкладка «Вебхуки» и добавьте новый:
Теперь попробуем изменить статус плана тестирования и посмотрим, как отреагирует бот.
Собственно, на этом мы и закончили небольшой пример создания бота-помощника.
Вы можете увидеть нашего бота на GitHub .
Отныне команды разработчиков и тестировщиков могут спокойно разрабатывать продукты, а наш новый умный друг будет неутомимо ждать новостей с полей тестирования и оперативно ими делиться.
Важно понимать, что возможности бота практически безграничны: он способен обрабатывать любые запросы извне.
Это значит, что его можно многому научить: фильтровать сообщения чата, уведомления о тимбилдинге, мини-игры в свободное время.
Если постараться и проявить немного фантазии, то можно научить его заказывать пиццу, строить рабочий календарь, распознавать документы или даже пересылать ваши входящие электронные письма в мессенджеры.
Теги: #Microsoft Azure #тестирование #Тестирование веб-сервисов #Тестирование мобильных приложений #Тестирование ИТ-систем #Тестирование игр #Тестирование связи #боты #Тестирование веб-приложений #команда разработчиков #azure #bot framework #team #asp.net core #notifications
-
Сервер Приложений На Pl/Pgsql
19 Oct, 24 -
Создание Uml Из Существующего Кода Php
19 Oct, 24