Skip to main content

CLI для Allure TestOps: получение Allure ID тест-кейса по названию

Project description

Allure CLI

CLI для работы с Allure TestOps. Основная задача — получение Allure ID тест-кейса по названию.

PyPI version Python License: MIT

Требования

  • Python 3.10+
  • Внешние зависимости не нужны (только stdlib)

Установка

pip install allure-cli

После установки команда allure_cli будет доступна в PATH.

Настройка

Переменные окружения (или аргументы --url, --token, --project):

Переменная Описание
ALLURE_ENDPOINT или ALLURE_TESTOPS_URL Базовый URL Allure TestOps (например, https://allure-testops.example.com)
ALLURE_TOKEN API-токен (создаётся в Allure: профиль → API Tokens)
ALLURE_PROJECT_ID ID проекта (например, 211)

Постоянно (zsh/bash): добавьте в ~/.zshrc или ~/.bashrc:

# Allure TestOps CLI
export ALLURE_ENDPOINT="https://allure-testops.example.com"
export ALLURE_PROJECT_ID="YOUR_PROJECT_ID"
export ALLURE_TOKEN="<YOUR_TOKEN>"

Использование

CLI поддерживает две команды:

  1. search (по умолчанию) — поиск тест-кейсов по ID или названию
  2. find-orphaned — поиск осиротевших (устаревших) тестов

Справка:

# Общая справка
allure_cli
allure_cli --help

# Справка по команде search
allure_cli search
allure_cli search --help

# Справка по команде find-orphaned
allure_cli find-orphaned --help

Команда search (поиск тестов)

export ALLURE_ENDPOINT=https://allure-testops.example.com
export ALLURE_PROJECT_ID=211
export ALLURE_TOKEN=<ваш_токен>

# Поиск по подстроке названия
allure_cli search "Автоответ в чат"

# Старый синтаксис (без команды) тоже работает
allure_cli "Автоответ в чат"

# Показать справку
allure_cli search
allure_cli search --help

Примеры:

# Поиск по подстроке названия — выводит id и name с цветами
allure_cli search "Автоответ в чат"

# Поиск по ID (число)
allure_cli search 12345

# Только ID, по одному на строку (без цветов)
allure_cli search -q "Автоответ в чат"

# Без цветов
allure_cli search --no-color "Автоответ в чат"

# Параметры через аргументы
allure_cli search --url https://allure-testops.example.com --project 211 --token $ALLURE_TOKEN "запрос"

Вывод:

  • В обычном режиме: номер, ID (синий), название (циан), и fullName (серый) если отличается
  • Результаты с цветной подсветкой для лучшей читаемости
  • В quiet режиме (-q): только ID, по одному на строку (без цветов)

Пример вывода:

Found 3 test cases:

1. ID 12345    User login with valid credentials
   └─ tests.auth.test_login.test_user_login_valid
2. ID 12389    User login with OAuth provider
   └─ tests.auth.oauth.test_login_oauth
3. ID 12401    User login with 2FA enabled
   └─ tests.auth.two_factor.test_login_2fa

Где:

  • 12345, 12389, 12401 — синий, жирный (ID)
  • User login... — циан (название)
  • tests.auth... — серый (fullName)

Примечание: Значение ID — это Allure ID для декоратора @allure.id("...") в коде тестов.

Команда find-orphaned (поиск устаревших тестов)

Находит потенциально осиротевшие тест-кейсы — тесты, которые давно не обновлялись и имеют похожие активные тесты (потенциальные дубликаты с новым ID).

Проблема: Когда в автотестах меняется название шагов или имя сценария, Allure генерирует новый ID. В БД остаётся старый тест, который больше не выполняется и не поддерживается.

Решение: Команда find-orphaned ищет такие тесты по двум критериям:

  1. Тест не обновлялся N дней (по умолчанию 30)
  2. Есть другие тесты с похожими названиями (similarity >= 0.75)
# Найти осиротевшие тесты (по умолчанию: неактивны 30+ дней + similarity >= 0.75)
allure_cli find-orphaned

# Только неактивные тесты (без проверки схожести)
allure_cli find-orphaned --days 60

# Только тесты с похожими названиями (без проверки неактивности)
allure_cli find-orphaned --similarity 0.8

# Оба критерия одновременно
allure_cli find-orphaned --days 60 --similarity 0.8

# Только ID (для скриптов)
allure_cli find-orphaned -q

# Интерактивное удаление найденных тестов
allure_cli find-orphaned --delete

Параметры:

Параметр Описание По умолчанию
--days Порог неактивности (дни). Если указан один, фильтрует только по дням 30 (если не указан --similarity)
--similarity Порог схожести названий (0.0-1.0). Если указан один, фильтрует только по схожести 0.75 (если не указан --days)
--no-normalize Отключить умную нормализацию названий (см. ниже) false (нормализация включена)
--no-color Отключить цветной вывод false (цвета включены)
--delete Интерактивное удаление найденных тестов false
-q, --quiet Вывести только ID false

Цветной вывод:

По умолчанию результаты выводятся с цветами для лучшей читаемости:

  • 🔴 Красный — осиротевшие тесты (кандидаты на удаление)
  • 🟢 Зелёный — высокая схожесть (≥0.9) или свежие тесты (<7 дней)
  • 🟡 Жёлтый — средняя схожесть (0.75-0.9) или средний возраст (7-30 дней)
  • 🔵 Синий — ID тестов
  • 🟣 Пурпурный — заголовки секций
  • Серый — второстепенная информация

Цвета автоматически отключаются при:

  • Перенаправлении вывода в файл
  • Переменной окружения NO_COLOR
  • Флаге --no-color
# Отключить цвета
allure_cli find-orphaned --no-color

# Или через переменную окружения
NO_COLOR=1 allure_cli find-orphaned

Логика работы флагов:

  • Без флагов: применяются оба критерия (--days 30 --similarity 0.75)
  • Только --days N: ищет тесты неактивные N+ дней (без проверки схожести)
  • Только --similarity X: ищет тесты с похожими названиями (без проверки неактивности)
  • Оба флага: применяются оба критерия одновременно

Умная нормализация названий:

По умолчанию включена нормализация названий для более точного поиска дубликатов. Удаляется "шум":

  • Даты: 2024-01-15, 15/01/2024, 20240115
  • Временные метки: 14:30:45, Unix timestamps
  • Версии: v1.2.3, version 2
  • ID и номера: test-123, [ID-456], #789, изолированные числа
  • Стоп-слова: test, check, verify, should, when, then, given

Примеры:

Оригинал: "Test [TC-123] User login verification 2024-01-15"
Нормализованное: "user login"

Оригинал: "Check user login #456 v2.0"  
Нормализованное: "user login"

Результат: similarity = 1.0 (идентичны после нормализации)

Чтобы отключить нормализацию (сравнивать названия как есть):

allure_cli find-orphaned --no-normalize

Пример вывода:

Searching for orphaned tests (inactive for 30+ days, similarity >= 0.75)...

Found 2 potentially orphaned test(s):

1. Test ID 12345 (inactive for 45 days)
   Name: User login test
   Similar tests found:
      - ID 12389 (similarity: 0.92, inactive: 2 days)
        User login test updated
      - ID 12401 (similarity: 0.85, inactive: 0 days)
        User login with OAuth test

2. Test ID 11234 (inactive for 67 days)
   Name: Payment flow test
   Similar tests found:
      - ID 12500 (similarity: 0.88, inactive: 1 days)
        Payment flow test refactored

Интерактивное удаление:

allure_cli find-orphaned --delete

Для каждого найденного теста будет предложено:

  • y — удалить тест
  • n — пропустить
  • q — завершить

Авторизация

Используется схема из документации ТестОпс: API-токен обменивается на JWT через POST /api/uaa/oauth/token, далее запросы к API — с заголовком Authorization: Bearer <jwt>.

JWT кэшируется на диск (~/.cache/allure_cli/ или $XDG_CACHE_HOME/allure_cli/), чтобы не запрашивать новый токен при каждом вызове. При ответе 401 от API кэш сбрасывается и токен запрашивается заново автоматически.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allure_cli-0.2.2.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allure_cli-0.2.2-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file allure_cli-0.2.2.tar.gz.

File metadata

  • Download URL: allure_cli-0.2.2.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for allure_cli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d8dcfc183cbaf7c8f5c4a22406ef11634ba0847d7ca09bf1df64c3d973b3adac
MD5 725ce51104bddcecf1b276a53fa120a4
BLAKE2b-256 a3767668cb448f9594779792db71ea450563c512bbb9824f9c4f998cafb8292d

See more details on using hashes here.

File details

Details for the file allure_cli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: allure_cli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for allure_cli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 68517744747214262eb3430736ea42889f3f41c7b1aa933aa9e9b2bd64e3ec0c
MD5 6b072b848560c870d086ff0fa8d2d522
BLAKE2b-256 175cbd5f8b68a7f34fd817ee7aac3ccad4c65e56a0da8cccf4302b9696fce8b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page