Быстрый старт

Платформа не требует отдельной установки и может использоваться стразу после распаковки дистрибутивного архива. Для её запуска нужно из командной строки перейти в каталог платформы и выполнить исполняемый файл metatest (или metatest.bat в случае с windows) передав ему имя (если конфигурация находится в каталоге tests) или путь к каталогу с конфигурацией тестов. Подробное описание параметров запуска находится в разделе документации Параметры среды

Переходим в каталог с платформой и запускаем:

./metatest тестовая_конфигурация [ параметры ] { -P ПАРАМЕТР=значение} { -F ФЛАГ } { -T ФЛАГ }

В некоторых случаях наиболее актуальна глобальная установка платформы. Для неё достаточно распаковать каталог дистрибутива в любое подходящее мести и создать символьную ссылка на исполняемый файл:

Пример глобальной установки:

tar -xf meta_test-1.0-linux-x86_64-debian_12.tar.gz -C /opt
ln -s /opt/meta_test/metatest /usr/local/bin/metatest

Для установки дополнительных python - библиотек нужно использовать pip3 из подкаталога python/bin/ находящегося в каталоге платформы.

Пример:

/opt/meta_test/metatest/python/bin/pip3 install faker

Интеграция с IDE

Ниже приведён пример основных настроек OpenIDE или PyCharm для создания проекта-конфигурации Meta Test. При использовании других IDE нужно будет выполнить аналогичные действия.

  • При создании нового проекта нужно указать путь к исполняемому файлу интерпретатора python находящегося в каталоге дистрибутива python/bin/python Виртуальные окружения и прочее устанавливать не нужно:

  • После создания проекта в настройках запуска нужно указать путь к файлу meta_test/main.py, а в строке “рабочая директория” путь к каталогу проекта. Строка параметров аналогична той которая используется для запуска тестовой конфигурации из консоли:

  • Для того что бы в IDE заработали подсказки и автодополнение, нужно добавить каталог meta_test как корневой каталог проекта:

Расширения

Всё взаимодействие с внешними зависимостями в платформе “Meta Test” вынесено в расширения. Расширение это объект реализующий специальный интерфейс при помощи которого платформа может взаимодействовать с внешними системами. Расширения загружаются перед загрузкой тестов и по этому может быть использовано для переопределения параметров среды для всех тестов.

В настоящий момент при помощи расширений обеспечивается поддержка:

  • Браузеров (в том числе можно обеспечить автоматическую загрузка драйверов и браузеров)
  • Серверов для удалённого тестирования
  • Систем отчётов (см. Интеграция с системами отчётов)
  • Триггеров (см. Триггеры)

В дистрибутиве поставляются следующие расширения:

Каталог Описание
extensions/chrome.py Поддержка браузера Google Chrome
extensions/chromium.py Поддержка браузера Chromium
extensions/firefox.py Поддержка браузера Mozilla Firefox
extensions/edge.py Поддержка браузера Microsoft Edge
extensions/safari.py Поддержка браузера Safari
extensions/free_keys.py Лицензионные ключи для тестовых сайтов
extensions/report_allure.py Поддержка инструмента отчётов Allure
extensions/selenoid.py Поддержка инфраструктуры Selenoid

Тестовая конфигурация

Описание тестовых сценариев производится в тестовой конфигурации. Тестовая конфигурация это один или несколько файлов на языке python находящихся в общем каталоге и в его подкаталогах.

С точки зрения платформы разделение на файлы имеет только семантическое значение по этому не важно в каких конкретно файлах находятся определённые тесты. Но тем не менее во избежания путаницы следует выработать чёткие правила размещения объектов конфигурации и их придерживаться.

При запуске платформа рекурсивно импортирует фалы конфигурации, за исключением файлов начинающихся с символов “.” или "_".

Для описания тестовых сценариев используется метя-язык что бы его подключить необходимо в начало каждого файла конфигурации добавить строку импорта:

from dsl import *

Пример:

from dsl import * # Подключаем метаязык

# Декларативное описание теста
TEST["This text has random Id"](
    URL("/dynamic-properties")
    , NOT("#enableAfter", "disabled", wait_timeout=5)
    , tags = "button,dinamic"
)

# Параметра тестовой конфигурации
CONFIG.BASE_URL = "https://demoqa.com"
CONFIG.PAGE_LOAD_STRATEGY = "EAGER"

Метаязык подробно описан в разделах Основы мета-языка и Встроенные команды мета-языка

Примеры тестовых конфигураций