FastAPI Mock Service Dashboard

Библиотечный модуль для mock-сервисов с инфраструктурой нагрузочного тестирования

Управление тестом

inactive Тест не запущен Моки неактивны

📊 Реалтайм метрики

Визуализация текущих показателей производительности

Возможности для НТ

Автоматические метрики

Prometheus метрики по кодам ответов, времени отклика и пропускной способности

Сценарии ошибок

Настраиваемые коды ошибок для тестирования различных failure scenarios

Реальная статистика

Отслеживание RPS, среднего времени ответа и распределения по кодам

Таргетирование

Возможность тестировать конкретные endpoint'ы или группы по тегам

Зарегистрированные Mock Endpoint'ы

{% if endpoints %} {% for endpoint in endpoints %}
{{ endpoint.method }} {{ endpoint.path }} {{ endpoint.service }} ({{ endpoint.handler }})
Возможные ответы:
{% for response in endpoint.responses %} {{ response.code }} - {{ response.description }} {% endfor %}
{% endfor %} {% else %}

Нет зарегистрированных endpoint'ов

{% endif %}

Возможные коды ответов

Важно: Все ответы возвращаются с HTTP статусом 200. Ошибки определяются по полю result.code в JSON ответе.

{% if endpoints %} {% set grouped_responses = {} %} {% for endpoint in endpoints %} {% if endpoint.responses %} {% for tag in endpoint.tags or ['default'] %} {% if grouped_responses.update({tag: grouped_responses.get(tag, []) + endpoint.responses}) %}{% endif %} {% endfor %} {% endif %} {% endfor %} {% for tag, responses in grouped_responses.items() %}

{{ tag.title() }} API

{% set unique_responses = [] %} {% for response in responses %} {% if response not in unique_responses %} {% if unique_responses.append(response) %}{% endif %}
{{ response.code }} - {{ response.description }}
{% endif %} {% endfor %}
{% endfor %} {% else %}

Нет зарегистрированных endpoint'ов с определенными кодами ответов.

{% endif %}
0
Всего запросов
0.00s
Среднее время ответа
-
Топ код ответа
0
Уникальных кодов

Распределение по кодам ответов

Нет данных...

История тестов

{% for result in test_results %}

{{ result.test_name }}

Время: {{ result.start_time.strftime('%Y-%m-%d %H:%M:%S') }} - {% if result.end_time %}{{ result.end_time.strftime('%Y-%m-%d %H:%M:%S') }}{% else %}Активен{% endif %}

Запросов: {{ result.total_requests }}

Среднее время ответа: {{ "%.3f"|format(result.avg_response_time) }}s

{% if result.code_distribution %}
Детализация по кодам
{{ result.code_distribution }}
{% endif %} {% if result.summary %}
Подробности
{{ result.summary }}
{% endif %}
{% endfor %}

Лог активности

Готов к работе...