Black_Raven 116651cdb0 fix: Fixed app.py
- Replaced NULL with None
- Added proper error handling with typer.BadParameter
- Added if __name__ == '__main__' block
2026-08-24 15:48:00 +03:00
2026-08-24 15:47:52 +03:00
2026-08-24 15:47:13 +03:00
2026-08-24 15:47:14 +03:00
2026-08-24 15:48:00 +03:00
2026-08-18 10:26:47 +03:00
2026-08-24 15:47:53 +03:00
2026-08-18 10:26:47 +03:00

API Checker - Models

Архитектура

Данные flowing через систему:

YAML/OpenAPI/Postman → Parser → TestModel → Context → Runner → TestResult

Классы

TestModel (models/itm.py)

Основная структура теста.

Поле Тип Описание
name str Название теста
base_url str Базовый URL
variables dict Переменные
steps list[StepModel] Шаги теста

StepModel (models/itm.py)

Один шаг теста.

Поле Тип Описание
name str Название шага
request RequestModel HTTP запрос
extract list[ExtractModel] Извлечение данных
assert_ list[AssertModel] Проверки

RequestModel (models/itm.py)

HTTP запрос.

Поле Тип Описание
method str GET, POST, PUT...
path str Путь URL
headers dict Заголовки
body dict Тело запроса
timeout int Таймаут

ExtractModel (models/itm.py)

Извлечение данных из ответа.

Поле Тип Описание
name str Имя переменной
json_path str Путь к значению
source str body/header/status

AssertModel (models/itm.py)

Проверка ответа.

Поле Тип Описание
type str status/json/header
path str Путь к полю
operator str equals/exists/gt/lt
value Any Ожидаемое значение

Context (models/context.py)

Контекст выполнения.

Поле Тип Описание
config TestModel Конфигурация
variables dict Статические переменные
extracted dict Извлечённые данные
Метод Описание
resolve(template) Заменяет {{var}} на значение
set_extracted(name, value) Сохраняет извлечённое

Executor (models/executor.py)

Выполняет HTTP запросы.

Метод Описание
execute(request) → Response Выполняет запрос

Extractor (models/extractor.py)

Извлекает данные из ответов.

Метод Описание
extract(configs, response) Извлекает данные в Context

Validator (models/validator.py)

Проверяет ответы.

Метод Описание
validate(asserts, response) → bool Все ли проверки прошли

TestRunner (models/runner.py)

Оркестратор.

Метод Описание
run() → TestResult Запускает тест

Пример использования

from models import TestModel, StepModel, RequestModel, ExtractModel, TestRunner, Context

config = TestModel(
    base_url="http://localhost:8080",
    variables={"email": "test@x.com"},
    steps=[
        StepModel(
            name="Login",
            request=RequestModel(method="POST", path="/login"),
            extract=[ExtractModel(name="token", json_path="$.token")],
        )
    ]
)

context = Context(config)
runner = TestRunner(context)
result = runner.run()

print(result.passed)  # True/False
S
Description
No description provided
Readme
68 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 99%
Nix 1%