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

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

Для переопределение параметра среде в тестах нужно явно присвоить параметру определённое значение. Например:

from dsl import *

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

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

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

Ключ Парамерт Описание
-hl, --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=None, desirialize=None, validator=None, read_only=False, public=True, key=”“, full_key=”“, help=”")

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

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

ItemConfig.registrator(Описание параметра 1, Описание параметра 2, …)

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

Примеры:

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 - Таймаут подключения к тестовому серверу

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

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

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

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

Уровень Описание
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 и teardown на уровне всего тестового набора, а так же является триггером для теста если для него не задан другой триггер (см. методы теста).

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

HEADLESS - Hardless режим

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

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

INCOGNITO - Incognito режим

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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": "00419342C700A32E4F4F84B19B469821692000673"
}

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. Если не определена то используется драйвер соответствующий установленной версии браузера или последняя доступная версия драйвера.

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

GECKO_DRIVER_PATH - Путь к geckodriver

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

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

CHROME_VERSION - Версия chrome

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

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

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

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

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

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

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 который нужно использовать при тестировании. По умолчанию - ""