Последнее время все чаще появляются продукты, которые скрещивают LLM и TMS — и получается магия! ✨

Свежий пример: ▶️ Gen-A: как искусственный интеллект переворачивает тестирование

Плюсы таких решений очевидны. Минусы тоже есть: у всех свои TMS, конфлюенсы и прочие инструменты. Как это затянуть в свой контур? ?

Ну и давайте честно, LLM есть у многих, но не у всех есть AI-команды, которые делают такие красивые большие продукты. И есть ощущение, что стоит это как крыло от самолета

Что делать? Есть решение - MCP - Model Context Protocol.


Статья синьерская, пишу кратко.
Будет много ссылок, я покажу как собрать это в рабочее решение.

? 1. Model Context Protocol (MCP) – универсальный протокол для взаимодействия с ИИ
https://habr.com/ru/articles/899088

? 2. Готовые MCP-серверы, возможно вам повезет и вы сразу найдете то что вам нужно. Например, Playwright MCP, который позволяет управлять браузером
https://github.com/microsoft/playwright-mcp

? 3. Гайд, как делать свои MCP-сервисы
https://devblogs.microsoft.com/devops/azure-devops-mcp-server-public-preview

Что нужно для профита?

✅ Доступ к TMS (минимум):

  • Получение шагов теста

  • Создание теста

  • Изменение теста

  • Добавление теста в каталог

  • Получение списка тестов из каталога

✅ Доступ к документации (минимум):

  • Получение текста статьи

Как это сделать?

  1. Читаем гайд как сделать свой MCP сервис

  2. Копируем примеры, делаем свой MCP-сервис. В Asp net core от классического rest сервиса практически ничем не отличается

Примеры контроллера для LLM, обратите внимание, строку получили, строку отдали, также подсказываем LLM какой формат внутри строки нам нужен, непривычно:

[McpServerTool, Description("Get testcases details")]
public async Task<string> GetTestCases(
[Description("The ids of the testcases sample: '1,2'")] string ids
)
{
    var tcs = await testCaseService.GetTestCasesAsync(ids.Split(",").Select(int.Parse).ToArray());
    return JsonSerializer.Serialize(tcs, TestCaseContext.Default.ListTestCase);
}

[McpServerTool, Description("Create testcase")]
public async Task<string> CreateTestCase(
[Description(@"The testcase details. Use json format: Title, Precondition, Steps: [{ Action, ExpectedResult }]")] string details
)
{
    var tcDetails = JsonSerializer.Deserialize(details, TestCaseContext.Default.TestCase);
    var tc = await testCaseService.CreateTestCaseAsync(tcDetails);
    return tc.ToString() ;
}

Сообщаем о нашем сервисе LLM

1. UI не пишем.
2. Мне нравится расширение RooCode для VS Code → https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline
3. Поднимаем свой сервис в сети на веб-сервисе (MCP SSE) и подключаем к RooCode.
https://apidog.com/blog/mcp-server-roo-code/

Готово ?
Подбираем промты, пишем тесты, работаем с разными API, экономим время!

✅ Плюсы - все работает из коробки. Я за пару дней всё подключил
? Некоторые модели долго думают чтобы тыкнуть API через MCP, тут надо настройки и промты подкрутить

Результат

Пример обращения к API через LLM
Пример обращения к API через LLM

Комментарии (0)