Параметры среды

Для конфигурирования платформы “Meta Test” используются параметры среды. Это переменные хранящиеся в пространстве имён CONFIG, их значение устанавливается пользователем во время старта платформы или во время загрузки тестового набора.

Если значение не задано явно, то действует значение установленное для данного параметра по умолчанию. Для переопределение параметра среде в тестах нужно явно присвоить параметру определённое значение.

Пример:

from dsl import *

CONFIG.REMOTE_EXECUTOR = "192.168.1.5:4444" # Запуск тестов на сервере 192.168.1.5:4444

Запуск платформы с определёнными параметрами

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

Ключ Параметр Описание
-hl, --headless HEADLESS Запуск браузеров в headless режиме
-d, --debug DEBUG Режим отладки
-s, --silently SILENTLY Не выводить информацию на консоль
-t, --tags TAGS Список тегов
-n, --threads THREADS Количество потоков
-b, --browser BROWSERS Список используемых браузеров
-r, --reports REPORTS Список используемых отчётов
-l, --load-strategy PAGE_LOAD_STRATEGY Способ определения загрузки страницы
-rt, --retries RETRIES Количество попыток повторного запуска
-re, --repeated TEST_REPEATED Количество запусков теста
-e, --remote-exe REMOTE_EXECUTOR Строка подключения к тестовому серверу
-z, --size PAGE_SIZE Размер окна браузера
-id, --test_id TEST_ID Список идентификаторов исполняемых тестов
-vc, --vacuum VACUUM Очищать браузеры в место их запуска
-i, --info ONLY_INFO Только информация о тестовом наборе

Параметры для которых не определён ключ запуска можно переопределить следующим образом:

  • Для не логических значений с помощью аргумента командной строки -P ПАРАМЕТР=значение
  • Для логических значений с помощью флагов: -T ПАРАМЕТР - для установки параметра в True или -F ПАРАМЕТР - для установки параметра в False

Пример:

# Запуск тестового набора other
# При тестировании использовать 10 потоков
# Тестировать на браузерах firefox и edge
# Результаты тестирования вывести в отчёты console и allure
# Способ определения загрузки страницы - NORMAL
# Данные отчёта allure сохранять в каталог /home/user/log
# Очищать браузер, в место его перезапуска

$ meta_test other -n 10 -b firefox,edge -r console,allure -P PAGE_LOAD_STRATEGY=NORMAL -P ALLURE_LOG_DIR=/home/user/log -T VACUUM

Пользовательские параметры

Часто при создании расширений платформы требуется определить собственные параметры среды. Это можно сделать при помощи класса ItemConfig из модуля parameter.

ItemConfig(name, data_type, [, default ] [, description ] [, serialize ] [, desirialize ] [, validator ] [, read_only ] [, public ] [, key ] [, full_key ] [, help ])

Создаёт описание нового параметра. Класс принимает следующие параметры:

Аргумент Описание По умолчанию
name Идентификатор параметра
data_type Тип данных
default Значение по умолчанию ""
description Краткое описание параметра ""
serialize Функция сериализатор lambda x: x
desirialize Функция десериализатор lambda x: x
validator Функция валидатор None
read_only Значение параметра может быть определено только единожды False
public Не выводить описание параметра True
key Ключ для установки параметра из командной строки ""
full_key Ключ для установки параметра из командной строки (полный вариант) ""
help Подсказка для справки (отображается при запуске с ключём –help) ""

В параметр serialize может быть передана функция-сериализатор. Она принимает значение параметра и возвращает его представление с текстовом виде. Параметр desirialize принимает противоположную ей функцию-десериализатор которая из текстового представления восстанавливает исходное значение параметра. В параметр validator может быть передана функция-валидатор. Она проверяет значение параметра и должна вернуть True если оно верно, иначе False.

Реализация этих функций обеспечивает правильную обработку значений передаваемых через командную строку.

ItemConfig.registrator(описание параметра {описание параметра})

Регистрирует одно или несколько описаний параметров.

Примеры:

from parameter import ItemConfig

# Определение параметра PAGE_SIZE

def serial_size(lst):
    return "x".join(map(repr, lst))

def deserial_size(lst):
    [w,h] = lst.split("x")
    return (int(w), int(h))

def valid_size(data):
    (w,h) = data
    return w >= 516 and h >= 134

ItemConfig.registrator(
    ItemConfig(
        "PAGE_SIZE", tuple, (1920, 1080), "Размер окна браузера"
        , serial_size, deserial_size, valid_size, key="z", full_key="size"
    ))

# Определение параметров для поддержки браузера Edge

ItemConfig.registrator(
    ItemConfig("EDGE_VERSION", str, "", "EDGE: Версия edge")
    , ItemConfig("EDGE_LOCAL_PATH", str, "", "EDGE: Путь к исполняемому файлу edge")
    , ItemConfig("EDGE_DRIVER_PATH", str, "", "EDGE: Путь к файлу драйвера msedgedriver")
)

Описание основных параметров

VERSION - Версия платформы

Строковая константа содержащая версию платформы. Нельзя изменить.

BUILD_DATE - Дата сборки платформы

Строковая константа содержащая дату сборки платформы. Нельзя изменить.

TEST_CONFIG_PATH - Путь к каталогу с конфигурацией тестов

Строковая константа содержащая путь к каталогу с текущей конфигурацией тестов. Определяется при запуске. Нельзя изменить.

TEST_CONFIG_NAME - Наименование текущей конфигурации тестов

Строковая константа содержащая наименование текущей конфигурации тестов. Определяется при запуске. Нельзя изменить.

ONLY_INFO - Только информация о тестовом наборе

Флаг указывает на то что нужно вывести только информацию о тестах не запуская их. Определяется при запуске. Нельзя изменить.

По умолчанию - False

TEST_CONFIG_DIR - Каталог с конфигурациями тестов

Строковая константа содержащая путь к каталогу в котором платформа ищет тестовые наборы. Определяется при запуске. Нельзя изменить.

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

Например:

$ meta_test example

в место

$ meta_test /home/user/meta_test/tests/example

По умолчанию - каталог tests находящийся в корне поставки

EXT_DIR_PATH - Пут к каталогу расширений

Строковая переменная содержащая путь к каталогу с расширениями.

По умолчанию - каталог extensions находящийся в корне поставки

BROWSERS_DIR - Пут к каталогу браузеров

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

По умолчанию - каталог browsers находящийся в корне поставки

DOWNLOAD_DIR - Путь к каталогу загрузок

Строковая переменная определяющая каталог для загрузки файлов. Каталог автоматически очищается перед завершением работы платформы. Если каталог не определён, то скачивание файлов будет невозможно.

По умолчанию - каталог download находящийся в каталоге BROWSERS_DIR

CACHE_DIR - Путь к каталогу кеша браузеров

Строковая переменная определяющая каталог кеша браузера. Каталог автоматически очищается перед завершением работы платформы. Если каталог не определён, то кеш не будет сохраняться на диске.

По умолчанию - каталог cache находящийся в каталоге BROWSERS_DIR

REPORT_DIR - Путь к каталогу отчётов

Строковая переменная определяющая каталог для отчётов.

По умолчанию - каталог reports находящийся в корне поставки

USER_PROFILE - Пользовательский каталог профиля браузеров

Флаг разрешающий использование пользовательских профилей браузеров. Пользовательский профиль должен быть помещён в каталог CONFIG.BROWSERS_DIR/profile/наименование браузера/версия/

По умолчанию - False

REMOTE_EXECUTOR - Адрес тестового сервера

Строковая переменная содержащая адрес удалённого сервера для запуска тестов (например с через selenoid или selenium grid) в формате хост : порт Например: 127.0.0.0:4444 Если значение не определено, то используется локальный webdriver.

По умолчанию - ""

REMOTE_TIMEOUT - Тайм-аут подключения к тестовому серверу

Вещественная переменная определяющая тайм-аут (в секундах) при подключении к удалённого сервера для запуска тестов. Если равна 0, то используется тайм-аут заданный по умолчанию в настройках ОС.

По умолчанию - 30.0

LOG_LEVEL - Уровень логирования

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

Уровень Описание
OFF Логирование отключено
SEVERE Только ошибки
WARNING Ошибки и предупреждения
INFO Ошибки, предупреждения и дополнительные сообщения
DEBUG Ошибки, предупреждения, сообщения и отладочная информация
ALL Все доступные сообщения.

По умолчанию - OFF

BASE_URL - Базовый URL

Строковая переменная содержащая адрес домена используемого тестовым набором. Её определение позволяет использовать относительные URL.

По умолчанию - ""

TAGS - Теги

Переменная определяющая множество тегов. Может быть задана как строка в формате “тег1,тег2…” так и в виде списка или множества.

Тест будет запущен только в том случае если множество тегов TAGS будет пересекаться с множеством тегов самого теста (см. атрибуты теста). Если переменная не определена т.е. установлена как пустая строка или пустое множество, то будут запущены все активные тесты.

Если необходимо запустить все тесты кроме тех которые имеют определённый тег, то это можно сделать указав этот тег с префиксом “@”. Например множество [“Тег1”, “@Тег2” ,“Тег3”] означает что будут запущены тесты с тегами “Тег1” и “Тег3” и не запущены тесты с тегом “Тег2” в не зависимости от того определены ли они не тегах “Тег1” или “Тег3”.

По умолчанию - ""

TEST_ID - Идентификаторы выполняемых тестов

Строковая переменная содержащая идентификатор или список идентификаторов (в том числе поддерживается строковый формат списков - “id_1,id_2,…”) тестов которые нужно выполнить. (см. параметр test_id в атрибутах теста).

Если необходимо запустить все тесты кроме тех которые имеют определённый идентификатор, то это можно сделать указав этот идентификатор с префиксом “@”. Например параметр в командной строке -id @id1,@id2 означает что будут запущены все тесты кроме тестов с идентификаторами id1 и id2

По умолчанию - ""

THREADS - Количество потоков

Числовая переменная определяющая максимальное количество одновременно запущенных тестов.

По умолчанию - 1

DELAY_THREADS - Пауза между запусками потоков

Вещественная переменная определяющая длительность паузы (в секундах) между запусками потоков потоков.

По умолчанию - 0.2

SINGLE_THREADS - Запускать экземпляры тесты в одном потоке

Флаг указывает на то что все экземпляры теста (т.е. тесты с разными параметрами и/или тесты в разных браузерах) должны запускаться последовательно в одном и том же потоке. Это позволяет предотвратить взаимное влияние экземпляров теста друг на друга.

По умолчанию - True

PAGE_SIZE - Размер окна браузера

Переменная определяющая размеры окна браузера (действует в том случае если размер не задан в аргументах теста). Может быть определена как кортеж в формате (длина, ширина) или как строка с разделителем “x” например “1920x1080”.

По умолчанию - (1920, 1080)

REPORTS - Отчёты

Переменная определяющая множество используемых отчётов. Может быть задана как строка в формате “отчёт1,отчёт2…” так и в виде списка или множества строк или объектов типа BaseReport.

По умолчанию - “console”

BROWSERS - Браузеры

Переменная определяющая множество браузеров. Может быть задана как строка в формате “браузер1,браузер2…” так и в виде списка или множества строк или объектов типа BaseBrowser.

По умолчанию - “chrome”

VACUUM - Очищать браузеры в место их запуска

Флаг указывает на то что браузер должен очищаться после завершения теста, а не запускаться каждый раз снова. Это позволяет экономить время на запуске браузера. Стандартная процедура очистки состоит из следующих этапов:

  • Удаление cookies
  • Очистка локального хранилища window.localStorage.clear()
  • Очистка сессионного хранилища window.sessionStorage.clear()
  • Удаление загруженных файлов
  • Переход на базовый URL или перезагрузка текущей страницы

По умолчанию - False

TRIGGER - Триггер для всех тестов

Переменная определяющая глобальный триггер. Этот триггер определяет методы setup и close на уровне всего тестового набора, а так же является триггером для теста если для него не задан другой триггер (см. методы теста). См. Триггеры

По умолчанию - ""

HEADLESS - Hardless режим

Флаг указывающий на то что браузер должен быть запущен в hardless режиме.

По умолчанию - False

INCOGNITO - Incognito режим

Флаг указывающий на то что браузер должен быть запущен в режиме incognito. Отключает использование кеша браузера.

По умолчанию - True

TEST_FATALITY - Все ошибки фатальны

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

По умолчанию - True

TEST_REPEATED - Количество повторных запусков теста

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

По умолчанию - 1

RETRIES_MODE - Режим перезапуска

Строковая переменная определяющая режим перезапуска. Доступны следующие значения:

Режим Описание
OFF Перезапуск отключён
FLAKY Перезапуск только не стабильных тестов т.е. тех у которых атрибут flaky = True
CRITICAL Перезапуск тестов у которых severity равен CRITICAL или BLOCKER
BLOCKER Перезапуск тестов у которых severity равен BLOCKER
ALL Перезапуск всех тестов

По умолчанию - “OFF”

RETRIES - Максимальное количество перезапусков

Числовая переменная определяющая максимальное количество перезапусков теста. Действует в том случае если для теста не определён аналогичный параметр (см. методы теста).

По умолчанию - 3

RETRIES_SLEEP - Пауза между перезапусками

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

По умолчанию - 1.0

PAGE_LOAD_STRATEGY - Способ определения загрузки страницы

Строковая переменная определяющая способ определения загрузки страницы. Подробности смотри в разделе pageLoadStrategy официальной документации selenium.

Доступны значения: NORMAL | EAGER | NONE

По умолчанию - “NORMAL”

PAGE_LOAD_TIMEOUT - Тайм-аут загрузки страницы

Вещественная переменная определяющая максимальное время (в секундах) ожидания загрузки страницы. Если время превышено, то тест завершается со статусом TIMEOUT

По умолчанию - 10.0

SCRIPT_TIMEOUT - Тайм-аут JS

Вещественная переменная определяющая максимальное время (в секундах) выполнения js скриптов на страницы.

По умолчанию - 30.0

WAIT_TIMEOUT - Время явного ожидания

Вещественная переменная определяющая максимальное время (в секундах) ожидания элемента на странице. Если время превышено, то тест завершается со статусом ERROR

По умолчанию - 5.0

WAIT_FREQUENCY - Частота проверки при ожидании

Вещественная переменная определяющая интервал (в секундах) опроса элементов при явном ожидании.

По умолчанию - 0.1

DEBUG - Режим отладки

Флаг указывающий что нужно выводить отладочную информацию в отчётах. В настоящее время актуален только для отчёта console.

По умолчанию - False

SILENTLY - Не выводить сообщения на консоль

Флаг отключающий вывод информации в стандартный поток вывода.

По умолчанию - False

LICENSE_KEYS - Лицензионные ключи доступа к доменам

Словарь содержащий лицензионные ключи доступа к доменам в формате {“Домен”: “Ключ”}.

Пример:

CONFIG.LICENSE_KEYS = {
    "demoqa.com": "0003519342C700A32E4F4F84B19B469821692000659"
}

AUTH_METHOD - Способ HTTP аутентификации

Текстовая переменная содержащая метод HTTP аутентификации. В настоящее время может принимать следующие значения:

Метод Описание
OFF Аутентификация не используется
BASE Базовая аутентификация
DIGEST Digest аутентификация

По умолчанию - OFF

AUTH_URL - URL аутентификации

Строковая переменная содержащая адрес HTTP авторизации.

По умолчанию - ""

AUTH_USER - Пользователь для аутентификации

Строковая переменная содержащая наименование пользователя для HTTP аутентификации.

По умолчанию - ""

AUTH_PASSWD - Пароль для аутентификации

Строковая переменная содержащая пароль для HTTP аутентификации.

По умолчанию - ""

Пример:

# Подключаем DIGEST аутентификацию

CONFIG.AUTH_URL    = "https://the-internet.herokuapp.com/digest_auth"
CONFIG.AUTH_METHOD = "DIGEST"
CONFIG.AUTH_USER   = "admin"
CONFIG.AUTH_PASSWD = "admin"

PROXY - Адрес proxy сервера

Текстовая переменная содержащая адрес proxy сервера.

По умолчанию - ""

Параметры расширений

Ниже перечислены параметры среды добавляемые стандартными расширениями.

SELENOID_OPTIONS - Параметры selenoid

Переменная содержащая словарь со специфичными для selenoid параметрами. Подробности смотри в разделе Special Capabilities официальной документации selenoid.

Пример:

import time

CONFIG.SELENOID_OPTIONS = {
    "enableVideo": True
    , "enableVNC": True
    , "videoName": "raname_%f.mp4"%(time.time())
}

По умолчанию - {}

ALLURE_LOG_DIR - Путь к рабочему каталогу Allure

Строковая переменная содержащая путь к директории для отчётов Allure.

По умолчанию - CONFIG.REPORT_DIR/allure_log/

CHROME_DRIVER_PATH - Путь к chromedriver

Строковая переменная содержащая путь к исполняемому файлу chromedriver. Если не определена то используется драйвер соответствующий установленной версии браузера или последняя доступная версия драйвера.

По умолчанию - ""

CHROME_VERSION - Версия браузера chrome

Строковая переменная содержащая версию браузера chrome которую нужно использовать при тестировании. Если версия не определена пользователем, то платформа определяет её автоматически.

Если браузер указанной версии не установлен, то платформа предпримет попытку его загрузки его porteble версии с последующей распаковкой в директорию указанную в параметре BROWSERS_DIR (на доступно на платформах win64, mac-64 и linux64).

По умолчанию - ""

CHROME_LOCAL_PATH - Путь к исполняемому файлу chrome

Строковая переменная содержащая путь к исполняемому файлу браузера chrome который нужно использовать при тестировании.

По умолчанию - ""

GECKO_DRIVER_PATH - Путь к geckodriver

Строковая переменная содержащая путь к исполняемому файлу geckodriver. Если не определена то используется драйвер соответствующий установленной версии браузера или последняя доступная версия драйвера.

По умолчанию - ""

FIREFOX_VERSION - Версия браузера firefox

Строковая переменная содержащая версию браузера firefox которую нужно использовать при тестировании. Если версия не определена пользователем, то платформа определяет её автоматически.

Если браузер указанной версии не установлен, то платформа предпримет попытку его загрузки его porteble версии с последующей распаковкой в директорию указанную в параметре BROWSERS_DIR (на данный момент доступно только на платформе linux64).

По умолчанию - ""

FIREFOX_LOCAL_PATH - Путь к исполняемому файлу firefox

Строковая переменная содержащая путь к исполняемому файлу браузера firefox который нужно использовать при тестировании.

По умолчанию - ""

EDGE_VERSION

Строковая переменная содержащая версию браузера edge которую нужно использовать при тестировании. Если версия не определена пользователем, то платформа определяет её автоматически.

По умолчанию - ""

EDGE_LOCAL_PATH

Строковая переменная содержащая путь к исполняемому файлу браузера edge который нужно использовать при тестировании.

По умолчанию - ""

CHROMIUM_VERSION

Строковая переменная содержащая версию браузера chromium которую нужно использовать при тестировании. Если версия не определена пользователем, то платформа определяет её автоматически.

По умолчанию - ""

CHROMIUM_LOCAL_PATH

Строковая переменная содержащая путь к исполняемому файлу браузера chromium который нужно использовать при тестировании.

По умолчанию - ""

YANDEX_DRIVER_PATH - Путь к yandexdriver

Строковая переменная содержащая путь к исполняемому файлу yandexdriver. Если не определена то используется драйвер соответствующий установленной версии браузера или последняя доступная версия драйвера.

По умолчанию - ""

YANDEX_VERSION - Версия yandex browser

Строковая переменная содержащая версию браузера yandex browser которую нужно использовать при тестировании. Если версия не определена пользователем, то платформа определяет её автоматически.

По умолчанию - ""

YANDEX_LOCAL_PATH - Путь к исполняемому файлу yandex browser

Строковая переменная содержащая путь к исполняемому файлу браузера yandex browser который нужно использовать при тестировании.

По умолчанию - ""