Блог

AQL-запросы в ТестОпс

AQL (Allure Query Language) = встроенный язык запросов платформы ТестОпс, разработанный специально для эффективного управления аналитикой тестирования. С его помощью QA-специалисты создают точные выборки тест-кейсов, результатов тестов и запусков. Так формируется надёжная основа для принятия обоснованных решений в процессах обеспечения качества.
AQL представляет собой декларативный язык запросов, созданный для работы с данными тестирования в ТестОпс. Каждый запрос состоит из двух ключевых компонентов: названия поля и требуемого значения для этого поля. Такая структура делает его интуитивно понятным даже для пользователей без значительного опыта программирования.
name = "Мой тест"
Такая структура делает его интуитивно понятным даже для пользователей без значительного опыта программирования.
Основная идея — дать пользователям возможность создавать гибкие запросы для фильтрации данных тестирования без глубокого изучения SQL или других специализированных языков. Это позволяет инженерам по тестированию сосредоточиться на анализе результатов, избегая сложностей с синтаксисом запросов.

Когда и зачем появился AQL

Традиционные системы управления тестированием (TMS) предлагали только базовую фильтрацию, что было недостаточно для современных требований. AQL был создан как ответ на эти вызовы, предоставляя мощную, но простую в использовании систему запросов.
AQL был разработан как неотъемлемая часть экосистемы ТестОпс для решения критически важной проблемы: необходимости в эффективном анализе больших объемов данных тестирования. По мере роста популярности DevOps и увеличения количества автоматизированных тестов в проектах, возникла острая потребность в инструменте, который бы позволил аналитикам и QA-инженерам быстро находить нужную информацию среди тысяч тест-кейсов и результатов их выполнения.

Где применяется AQL

AQL используется в нескольких ключевых областях ТестОпс, далее рассматриваем каждую из них отдельно.

Дашборды и аналитика

Основное применение AQL — создание пользовательских дашбордов и виджетов. В разделе Дашборды ТестОпс инженеры могут использовать AQL-запросы для настройки виджетов, таких как "Аналитика запусков", "Тренд запусков", "Круговая диаграмма тестов" и других. Например, чтобы показать статистику только по тест-кейсам с тегом "web", можно использовать запрос tag = "web" в настройках виджета.

API-запросы

AQL активно используется в работе с API ТестОпс для программного доступа к данным. Это особенно важно при интеграции с внешними системами и создании автоматизированных отчетов. В TMS ТестОпс можно фильтровать результаты тестов. С версии ТестОпс 5.24 AQL-фильтры для запусков и результатов доступны напрямую в интерфейсе платформы при активации соответствующего фича-флага.

Фильтрация запусков в интерфейсе

В ТестОпс можно фильтровать запуски и результаты тестов с помощью AQL-запросов прямо в интерфейсе. Эта функция доступна через фича-флаг «Поддержка AQL в фильтрах». Она включает подсветку синтаксиса, проверку запросов и возможность переключаться между обычным поиском и AQL.

Основные возможности и синтаксис

Базовые операторы

AQL поддерживает все основные операторы сравнения и логические операции:
  • Точное соответствие: name = "Мой тест";
  • Частичное соответствие: name ~= "тест";
  • Неравенство: name != "Мой тест" или not name = "Мой тест";
  • Численные сравнения: id >= 100, createdDate < 1569430502709;
  • Логические операторы: and, or, not.

Работа с множественными значениями

Для указания нескольких значений используется оператор в строке:
name in ["Тест 1", "Тест 2", "Тест 3"].

Сложные запросы с группировкой

AQL поддерживает использование скобок для изменения порядка выполнения операций:
(createdBy = "Иван" or createdBy = "Александр") and name ~= "тест".

Доступные поля для запросов

AQL предоставляет обширный набор полей для создания запросов :
Основные поля тест-кейсов:
  • id — ID тест-кейса
  • name — название тест-кейса
  • tag — теги тест-кейса
  • issue — связанные задачи из таск-трекера
  • automation — флаг автоматизации
  • muted — статус карантина
Пользовательские поля:
  • role["Owner"] — пользователи в определенной роли
  • member — все назначенные пользователи
  • cf["Epic"] — кастомные поля
  • cfv — все значения кастомных полей
Временные поля:
  • createdDate, lastModifiedDate — даты создания и изменения
  • mutedDate — дата помещения в карантин
  • createdBy, lastModifiedBy — пользователи-создатели и редакторы

Практические преимущества AQL

Гибкая аналитика

AQL позволяет создавать сложные аналитические запросы без необходимости обращения к разработчикам. Инженеры могут формировать собственные отчеты благодаря гибкой системе фильтров и языку запросов.

Повышение эффективности команд

Использование AQL в дашбордах позволяет командам быстро выявлять компоненты с наибольшим количеством сбоев, анализировать тренды качества и принимать обоснованные решения. Это особенно важно для крупных проектов, где объем данных тестирования исчисляется тысячами тест-кейсов.

Интеграция с DevOps-процессами

AQL органично встраивается в DevOps-культуру, поддерживая принципы непрерывной интеграции и доставки. Это позволяет автоматизировать создание отчетов и оперативно реагировать на изменения в качестве продукта.

Интеграция с системой дашбордов

AQL тесно интегрирован с системой дашбордов ТестОпс, позволяя создавать информативные и настраиваемые панели мониторинга. При добавлении виджета на дашборд можно изменить его название, что особенно полезно при использовании AQL-запросов для фильтрации.
Каждый дашборд может содержать множество виджетов с различными AQL-запросами, обеспечивая комплексный взгляд на состояние проекта. Это позволяет командам создавать специализированные метрики для различных ролей: от разработчиков до менеджеров проектов.

Будущее развития AQL

С каждым новым шагом в развитии ТестОпс возможности AQL становятся все шире. В релизе 5.24 поддержка AQL в пользовательских фильтрах — это яркое проявление стремления команды разработчиков сделать продукт как можно удобнее для пользователей.
AQL превращает ТестОпс из экосистемы для управления и визуализации тестирования в полноценную аналитическую платформу для обеспечения качества ПО. Его простота в использовании и мощные возможности делают его незаменимым для современных команд, стремящихся к высоким стандартам и эффективности.