Skip to content

TestZTPTemplatesTab

Модуль тестов вкладки 'Шаблоны' в модуле Zero Touch Provisioning.

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

TestZTPTemplatesTab

Набор тестов для вкладки 'Шаблоны' в модуле Zero Touch Provisioning.

Проверяет корректность отображения, функциональность элементов интерфейса и консистентность данных между UI и API на вкладке шаблонов ZTP.

Тесты покрывают следующие функциональные области: 1. test_templates_tab_content - Базовая структура и содержимое вкладки 2. test_templates_table_row_highlighting - Визуальное выделение строк таблицы 3. test_templates_table_scrolling - Навигация по таблице с большим объемом данных 4. test_templates_modal_window_content - Структура и содержимое модальных окон 5. test_templates_modal_window_scrolling - Навигация в модальных окнах 6. test_templates_modal_window_api_data_consistency - Синхронизация данных UI и API

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

Source code in tests\e2e\test_ztp_templates_tab.py
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
class TestZTPTemplatesTab:
    """Набор тестов для вкладки 'Шаблоны' в модуле Zero Touch Provisioning.

    Проверяет корректность отображения, функциональность элементов интерфейса
    и консистентность данных между UI и API на вкладке шаблонов ZTP.

    Тесты покрывают следующие функциональные области:
    1. test_templates_tab_content - Базовая структура и содержимое вкладки
    2. test_templates_table_row_highlighting - Визуальное выделение строк таблицы
    3. test_templates_table_scrolling - Навигация по таблице с большим объемом данных
    4. test_templates_modal_window_content - Структура и содержимое модальных окон
    5. test_templates_modal_window_scrolling - Навигация в модальных окнах
    6. test_templates_modal_window_api_data_consistency - Синхронизация данных UI и API

    Фикстура setup обеспечивает подготовку тестового окружения:
    - Авторизацию в системе
    - Навигацию к целевой вкладке через панель настроек
    - Инициализацию необходимых компонентов страницы
    """

    @pytest.fixture(scope="function", autouse=True)
    def setup(self, browser: Page) -> None:
        """Фикстура для подготовки тестового окружения.

        Выполняет:
        1. Авторизацию в системе
        2. Переход на вкладку 'Шаблоны' через панель навигации
        """
        # Авторизация в системе
        login_page = LoginPage(browser)
        login_page.do_login()

        # Инициализация главной страницы
        main_page = MainPage(browser)

        # Проверка и взаимодействие с элементами навигации
        main_page.should_be_navigation_panel()
        main_page.click_main_navigation_panel_item("Настройки")
        main_page.click_subpanel_item("Zero Touch Provisioning")
        main_page.click_subpanel_item("Шаблоны", parent="Zero Touch Provisioning")
        main_page.wait_for_timeout(5000)


    def test_templates_tab_content(self, browser: Page) -> None:
        """Тест содержимого вкладки 'Шаблоны'.

        Проверяет:
        1. Наличие и корректность тулбара
        2. Наличие таблицы шаблонов
        3. Соответствие содержимого таблицы
        """
        # Инициализация страницы сеансов
        ztp_templates_tab = ZTPTemplatesTab(browser)

        # Проверка тулбара вкладки
        ztp_templates_tab.should_be_toolbar()

        # Проверка наличия таблицы шаблонов
        ztp_templates_tab.should_be_templates_table()

        browser.wait_for_timeout(5000)

        # Проверка содержимого таблицы шаблонов
        ztp_templates_tab.check_templates_table_content()

    def test_templates_table_row_highlighting(self, browser: Page) -> None:
        """Проверка выделения строк в таблице шаблонов.

        Проверяет корректность выделения строк при клике на различные позиции:
        1. Первая строка
        2. Последняя строка
        3. Строка в середине таблицы
        """

        ztp_templates_tab = ZTPTemplatesTab(browser)

        # Проверка тулбара вкладки
        ztp_templates_tab.should_be_toolbar()

        # Проверка наличия таблицы шаблонов
        ztp_templates_tab.should_be_templates_table()

        # Получение количества строк в таблице
        rows_count = ztp_templates_tab.get_rows_count()

        # Проверка выделения строк
        ztp_templates_tab.check_templates_table_row_highlighting(0)
        ztp_templates_tab.check_templates_table_row_highlighting(rows_count - 1)
        ztp_templates_tab.check_templates_table_row_highlighting(int(rows_count / 2))

    def test_templates_table_scrolling(self, browser: Page) -> None:
        """Проверка вертикального скроллинга таблицы шаблонов.

        Проверяет:
        1. Возможность вертикальной прокрутки таблицы
        2. Видимость строк после прокрутки вниз и вверх
        3. Корректность отображения данных после скроллинга
        """

        ztp_templates_tab = ZTPTemplatesTab(browser)

        browser.wait_for_timeout(2000)

        # Проверка возможности вертикального скроллинга
        is_scrollable = ztp_templates_tab.check_templates_table_vertical_scrolling()

        if is_scrollable:
            print("Таблица поддерживает вертикальный скроллинг")

            # Прокрутка вниз
            ztp_templates_tab.scroll_templates_table_down()

            browser.wait_for_timeout(1000)

            # Проверка видимости последней строки после прокрутки
            ztp_templates_tab.check_templates_table_last_row_visibility()

            # Прокрутка вверх
            ztp_templates_tab.scroll_templates_table_up()

            browser.wait_for_timeout(1000)

            # Проверка видимости первой строки после прокрутки
            ztp_templates_tab.check_templates_table_first_row_visibility()
        else:
            print("Таблица не поддерживает вертикальный скроллинг")

            # Проверка видимости первой строки
            ztp_templates_tab.check_templates_table_first_row_visibility()

    def test_templates_modal_window_content(self, browser: Page) -> None:
        """Тест содержимого модального окна шаблона.

        Проверяет:
        1. Открытие модального окна при клике на строку таблицы
        2. Наличие и содержимое модального окна
        3. Наличие тулбара в модальном окне
        4. Проверка кнопки закрытия и её подсказки
        5. Закрытие модального окна
        """
        # Инициализация страницы шаблонов
        ztp_templates_tab = ZTPTemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        ztp_templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(2000)

        # Открываем модальное окно, кликая на первую строку таблицы
        template_name = ztp_templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(1000)

        # Проверка открытия модального окна
        ztp_templates_tab.should_be_modal_window()

        # Проверка содержимого модального окна
        ztp_templates_tab.check_templates_modal_content(template_name)

        # Закрытие модального окна через кнопку закрытия
        ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

        # Проверяем, что модальное окно закрылось
        ztp_templates_tab.should_not_be_modal_window()

    #@pytest.mark.skip(reason=" Временно исключено из тестирования")
    def test_templates_modal_window_scrolling(self, browser: Page) -> None:
        """Тест скроллинга модального окна шаблона.

        Проверяет:
        1. Открытие модального окна при клике на строку таблицы
        2. Возможность вертикального скроллинга содержимого модального окна
        3. Закрытие модального окна
        """

        # Инициализация страницы шаблонов
        ztp_templates_tab = ZTPTemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        ztp_templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(2000)

        # Открываем модальное окно, кликая на первую строку таблицы
        template_name = ztp_templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(1000)

        # Проверка открытия модального окна
        ztp_templates_tab.should_be_modal_window()

        # Проверка вертикального скроллинга модального окна
        is_scrollable = ztp_templates_tab.check_modal_vertical_scrolling()

        if is_scrollable:
            print("Модальное окно поддерживает вертикальный скроллинг")

            # Прокрутка вниз
            ztp_templates_tab.scroll_modal_down()
            browser.wait_for_timeout(1000)

            # Прокрутка вверх
            ztp_templates_tab.scroll_modal_up()
            browser.wait_for_timeout(1000)
        else:
            print("Модальное окно не поддерживает вертикальный скроллинг")

        # Закрытие модального окна через кнопку закрытия
        ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

        # Проверяем, что модальное окно закрылось
        ztp_templates_tab.should_not_be_modal_window()

    #@pytest.mark.skip(reason=" Временно исключено из тестирования")
    def test_templates_modal_window_api_data_consistency(self, browser: Page) -> None:
        """Тест соответствия данных модального окна шаблона данным из API.

        Проверяет консистентность данных между интерфейсом пользователя и API:
        1. Открытие модального окна просмотра шаблона по клику на строку таблицы
        2. Получение и валидация данных из полей модального окна
        3. Сравнение данных UI с эталонными данными из API запроса
        4. Проверка корректности отображения всех параметров шаблона
        5. Закрытие модального окна после проверки

        Args:
            browser (Page): Экземпляр страницы Playwright для взаимодействия с UI.
        """
        # Инициализация страницы шаблонов
        ztp_templates_tab = ZTPTemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        ztp_templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(5000)

        # Открываем модальное окно, кликая на первую строку таблицы и возвращаем имя заголовка
        template_name = ztp_templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(2000)

        # Проверка открытия модального окна
        ztp_templates_tab.should_be_modal_window()

        # Проверка соответствия данных модального окна данным из API
        ztp_templates_tab.verify_template_data_with_api(template_name)

        # Закрытие модального окна через кнопку закрытия
        ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

        # Проверяем, что модальное окно закрылось
        ztp_templates_tab.should_not_be_modal_window()

setup(browser)

Фикстура для подготовки тестового окружения.

Выполняет: 1. Авторизацию в системе 2. Переход на вкладку 'Шаблоны' через панель навигации

Source code in tests\e2e\test_ztp_templates_tab.py
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None:
    """Фикстура для подготовки тестового окружения.

    Выполняет:
    1. Авторизацию в системе
    2. Переход на вкладку 'Шаблоны' через панель навигации
    """
    # Авторизация в системе
    login_page = LoginPage(browser)
    login_page.do_login()

    # Инициализация главной страницы
    main_page = MainPage(browser)

    # Проверка и взаимодействие с элементами навигации
    main_page.should_be_navigation_panel()
    main_page.click_main_navigation_panel_item("Настройки")
    main_page.click_subpanel_item("Zero Touch Provisioning")
    main_page.click_subpanel_item("Шаблоны", parent="Zero Touch Provisioning")
    main_page.wait_for_timeout(5000)

test_templates_modal_window_api_data_consistency(browser)

Тест соответствия данных модального окна шаблона данным из API.

Проверяет консистентность данных между интерфейсом пользователя и API: 1. Открытие модального окна просмотра шаблона по клику на строку таблицы 2. Получение и валидация данных из полей модального окна 3. Сравнение данных UI с эталонными данными из API запроса 4. Проверка корректности отображения всех параметров шаблона 5. Закрытие модального окна после проверки

Parameters:

Name Type Description Default
browser Page

Экземпляр страницы Playwright для взаимодействия с UI.

required
Source code in tests\e2e\test_ztp_templates_tab.py
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
def test_templates_modal_window_api_data_consistency(self, browser: Page) -> None:
    """Тест соответствия данных модального окна шаблона данным из API.

    Проверяет консистентность данных между интерфейсом пользователя и API:
    1. Открытие модального окна просмотра шаблона по клику на строку таблицы
    2. Получение и валидация данных из полей модального окна
    3. Сравнение данных UI с эталонными данными из API запроса
    4. Проверка корректности отображения всех параметров шаблона
    5. Закрытие модального окна после проверки

    Args:
        browser (Page): Экземпляр страницы Playwright для взаимодействия с UI.
    """
    # Инициализация страницы шаблонов
    ztp_templates_tab = ZTPTemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    ztp_templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(5000)

    # Открываем модальное окно, кликая на первую строку таблицы и возвращаем имя заголовка
    template_name = ztp_templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(2000)

    # Проверка открытия модального окна
    ztp_templates_tab.should_be_modal_window()

    # Проверка соответствия данных модального окна данным из API
    ztp_templates_tab.verify_template_data_with_api(template_name)

    # Закрытие модального окна через кнопку закрытия
    ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

    # Проверяем, что модальное окно закрылось
    ztp_templates_tab.should_not_be_modal_window()

test_templates_modal_window_content(browser)

Тест содержимого модального окна шаблона.

Проверяет: 1. Открытие модального окна при клике на строку таблицы 2. Наличие и содержимое модального окна 3. Наличие тулбара в модальном окне 4. Проверка кнопки закрытия и её подсказки 5. Закрытие модального окна

Source code in tests\e2e\test_ztp_templates_tab.py
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
def test_templates_modal_window_content(self, browser: Page) -> None:
    """Тест содержимого модального окна шаблона.

    Проверяет:
    1. Открытие модального окна при клике на строку таблицы
    2. Наличие и содержимое модального окна
    3. Наличие тулбара в модальном окне
    4. Проверка кнопки закрытия и её подсказки
    5. Закрытие модального окна
    """
    # Инициализация страницы шаблонов
    ztp_templates_tab = ZTPTemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    ztp_templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(2000)

    # Открываем модальное окно, кликая на первую строку таблицы
    template_name = ztp_templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(1000)

    # Проверка открытия модального окна
    ztp_templates_tab.should_be_modal_window()

    # Проверка содержимого модального окна
    ztp_templates_tab.check_templates_modal_content(template_name)

    # Закрытие модального окна через кнопку закрытия
    ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

    # Проверяем, что модальное окно закрылось
    ztp_templates_tab.should_not_be_modal_window()

test_templates_modal_window_scrolling(browser)

Тест скроллинга модального окна шаблона.

Проверяет: 1. Открытие модального окна при клике на строку таблицы 2. Возможность вертикального скроллинга содержимого модального окна 3. Закрытие модального окна

Source code in tests\e2e\test_ztp_templates_tab.py
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
def test_templates_modal_window_scrolling(self, browser: Page) -> None:
    """Тест скроллинга модального окна шаблона.

    Проверяет:
    1. Открытие модального окна при клике на строку таблицы
    2. Возможность вертикального скроллинга содержимого модального окна
    3. Закрытие модального окна
    """

    # Инициализация страницы шаблонов
    ztp_templates_tab = ZTPTemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    ztp_templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(2000)

    # Открываем модальное окно, кликая на первую строку таблицы
    template_name = ztp_templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(1000)

    # Проверка открытия модального окна
    ztp_templates_tab.should_be_modal_window()

    # Проверка вертикального скроллинга модального окна
    is_scrollable = ztp_templates_tab.check_modal_vertical_scrolling()

    if is_scrollable:
        print("Модальное окно поддерживает вертикальный скроллинг")

        # Прокрутка вниз
        ztp_templates_tab.scroll_modal_down()
        browser.wait_for_timeout(1000)

        # Прокрутка вверх
        ztp_templates_tab.scroll_modal_up()
        browser.wait_for_timeout(1000)
    else:
        print("Модальное окно не поддерживает вертикальный скроллинг")

    # Закрытие модального окна через кнопку закрытия
    ztp_templates_tab.close_modal_window_by_toolbar_button(template_name)

    # Проверяем, что модальное окно закрылось
    ztp_templates_tab.should_not_be_modal_window()

test_templates_tab_content(browser)

Тест содержимого вкладки 'Шаблоны'.

Проверяет: 1. Наличие и корректность тулбара 2. Наличие таблицы шаблонов 3. Соответствие содержимого таблицы

Source code in tests\e2e\test_ztp_templates_tab.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def test_templates_tab_content(self, browser: Page) -> None:
    """Тест содержимого вкладки 'Шаблоны'.

    Проверяет:
    1. Наличие и корректность тулбара
    2. Наличие таблицы шаблонов
    3. Соответствие содержимого таблицы
    """
    # Инициализация страницы сеансов
    ztp_templates_tab = ZTPTemplatesTab(browser)

    # Проверка тулбара вкладки
    ztp_templates_tab.should_be_toolbar()

    # Проверка наличия таблицы шаблонов
    ztp_templates_tab.should_be_templates_table()

    browser.wait_for_timeout(5000)

    # Проверка содержимого таблицы шаблонов
    ztp_templates_tab.check_templates_table_content()

test_templates_table_row_highlighting(browser)

Проверка выделения строк в таблице шаблонов.

Проверяет корректность выделения строк при клике на различные позиции: 1. Первая строка 2. Последняя строка 3. Строка в середине таблицы

Source code in tests\e2e\test_ztp_templates_tab.py
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
def test_templates_table_row_highlighting(self, browser: Page) -> None:
    """Проверка выделения строк в таблице шаблонов.

    Проверяет корректность выделения строк при клике на различные позиции:
    1. Первая строка
    2. Последняя строка
    3. Строка в середине таблицы
    """

    ztp_templates_tab = ZTPTemplatesTab(browser)

    # Проверка тулбара вкладки
    ztp_templates_tab.should_be_toolbar()

    # Проверка наличия таблицы шаблонов
    ztp_templates_tab.should_be_templates_table()

    # Получение количества строк в таблице
    rows_count = ztp_templates_tab.get_rows_count()

    # Проверка выделения строк
    ztp_templates_tab.check_templates_table_row_highlighting(0)
    ztp_templates_tab.check_templates_table_row_highlighting(rows_count - 1)
    ztp_templates_tab.check_templates_table_row_highlighting(int(rows_count / 2))

test_templates_table_scrolling(browser)

Проверка вертикального скроллинга таблицы шаблонов.

Проверяет: 1. Возможность вертикальной прокрутки таблицы 2. Видимость строк после прокрутки вниз и вверх 3. Корректность отображения данных после скроллинга

Source code in tests\e2e\test_ztp_templates_tab.py
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
def test_templates_table_scrolling(self, browser: Page) -> None:
    """Проверка вертикального скроллинга таблицы шаблонов.

    Проверяет:
    1. Возможность вертикальной прокрутки таблицы
    2. Видимость строк после прокрутки вниз и вверх
    3. Корректность отображения данных после скроллинга
    """

    ztp_templates_tab = ZTPTemplatesTab(browser)

    browser.wait_for_timeout(2000)

    # Проверка возможности вертикального скроллинга
    is_scrollable = ztp_templates_tab.check_templates_table_vertical_scrolling()

    if is_scrollable:
        print("Таблица поддерживает вертикальный скроллинг")

        # Прокрутка вниз
        ztp_templates_tab.scroll_templates_table_down()

        browser.wait_for_timeout(1000)

        # Проверка видимости последней строки после прокрутки
        ztp_templates_tab.check_templates_table_last_row_visibility()

        # Прокрутка вверх
        ztp_templates_tab.scroll_templates_table_up()

        browser.wait_for_timeout(1000)

        # Проверка видимости первой строки после прокрутки
        ztp_templates_tab.check_templates_table_first_row_visibility()
    else:
        print("Таблица не поддерживает вертикальный скроллинг")

        # Проверка видимости первой строки
        ztp_templates_tab.check_templates_table_first_row_visibility()