Триггеры
Исходный код на языке python находящийся в тестовых файлах будет выполнен при загрузки теста, после чего будут запущены сами тесты. Но часто возникает потребность выполнить тот иди иной код во время выполнения тест, для этих целей был создан механизм триггеров.
Триггер представляет собой производный класс от класса BaseTrigger в котором можно переопределить методы вызываемые в определённые моменты прохождения теста:
Метод | Аргументы | Описание |
---|---|---|
setup_test | browser, test_id, test_scope, test_args | Срабатывает перед запуском теста. |
teardown_test | browser, test_id, test_scope, test_args | Срабатывает после окончания работы теста. |
setup_step | browser, step_id, test_scope, step_args | Срабатывает перед переходом на новый шаг теста. |
teardown_step | browser, step_id, test_scope, step_args | Срабатывает после окончания работы шага теста. |
setup_script | browser, script_id, test_scope, script_args | Срабатывает перед выполнением объекта SCRIPT. |
teardown_script | browser, script_id, test_scope, script_args | Срабатывает после выполнения объекта SCRIPT. |
close | Срабатывает после окончания работы набора тестов. |
В момент вызова методам могут быть переданы следующие аргументы:
Aргумент | Тип | Описание |
---|---|---|
browser | Browser | Специальный объект реализующий высокоуровневую обёртку над WebDriver |
test_id | str | Идентификатор текущего теста |
step_id | str | Идентификатор текущего шага |
script_id | [str] | Список идентификаторов последовательно запускаемых сценариев |
test_scope | SCOPE | Ссылка на пространство имён теста |
test_args | dict | Словарь аргументов теста |
step_args | dict | Словарь аргументов шага |
script_args | dict | Словарь аргументов передаваемых сценарию |
Для того что бы задействовать триггер нужно передать строку с названием класса триггера в переменную среды TRIGGER. Для каждого теста возможно определить свой уникальный триггер передав его идентификатор в аргумент теста trigger.
Пример:
from dsl import *
from trigger import BaseTrigger
class AuthTrigger(BaseTrigger):
"""
Авторизация на сайте при помощи cookies
"""
def __init__(self):
"""
Конструктор вызывается перед выполнением набора тестов
"""
self._cookies = {
"name": "user", "value": "234d36e1de92e831d66bd788e1974bc0"
}
def setup_test(self, browser, test_id, test_scope, test_args):
"""
Перед выполнением теста переходим на страницу BASE_URL, очищаем cookies и
устанавливаем cookies определённые в конструкторе
"""
browser.get_url(CONFIG.BASE_URL)
browser.del_cookies()self._cookies)
browser.set_cookies(
# "подключаем" триггер
= "AuthTrigger" CONFIG.TRIGGER
Telegramm группа
Политика конфиденциальности
Персональные данные
© ИП Пуляев Григорий Васильевич, 2024