Initial commit
This commit is contained in:
commit
9795660e1f
43 changed files with 2757 additions and 0 deletions
158
tests/ui/test_admin_page.py
Normal file
158
tests/ui/test_admin_page.py
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
|
||||
import json
|
||||
import time
|
||||
import allure
|
||||
import pytest
|
||||
from selenium.webdriver.chrome.webdriver import WebDriver
|
||||
|
||||
from config.ui_config import UIConfig
|
||||
from tests.api.utils.api_client import APIClient
|
||||
from tests.ui.pages.admin_page import AdminPage
|
||||
|
||||
|
||||
@allure.epic("Страница администратора")
|
||||
@allure.feature("Основной функционал")
|
||||
class TestAdminPage:
|
||||
@allure.story("Загрузка страницы")
|
||||
@allure.title("Проверка успешной загрузки страницы")
|
||||
@allure.severity(allure.severity_level.BLOCKER)
|
||||
@pytest.mark.smoke
|
||||
@pytest.mark.ui
|
||||
def test_page_load_succesfull(self, driver):
|
||||
admin_page = AdminPage(driver)
|
||||
|
||||
with allure.step('1. Открыть страницу'):
|
||||
admin_page.open_admin_page()
|
||||
admin_page.take_screenshot("admin_page")
|
||||
|
||||
@allure.story("Структура страницы")
|
||||
@allure.title("Проверка отображения элементов")
|
||||
@allure.severity(allure.severity_level.BLOCKER)
|
||||
@pytest.mark.smoke
|
||||
@pytest.mark.ui
|
||||
def test_page_elements_visiblity(self, driver):
|
||||
admin_page = AdminPage(driver)
|
||||
|
||||
with allure.step('1. Открыть страницу'):
|
||||
admin_page.open_admin_page()
|
||||
admin_page.take_screenshot("admin_page")
|
||||
|
||||
with allure.step('2. Проверка наличия кнопки блока логина'):
|
||||
assert admin_page.is_login_block_visible(), 'Кнопка блока логина не отобразилась'
|
||||
|
||||
with allure.step('3. Проверка невидимости кнопки "try it out"'):
|
||||
assert not admin_page.is_login_tryitout_btn_visible(), 'Кнопка не должна быть видима'
|
||||
|
||||
with allure.step('4. Проверка невидимости поля ввода'):
|
||||
assert not admin_page.is_login_textarea_visible(), 'Поле ввода не должно быть видимо'
|
||||
|
||||
with allure.step('5. Проверка невидимости кнопки выполнения запроса'):
|
||||
assert not admin_page.is_login_execute_btn_visible(), 'Кнопка выполнения запроса не должна быть видимой'
|
||||
|
||||
@allure.story("Функциональность")
|
||||
@allure.title("Проверка функциональности страницы")
|
||||
@allure.severity(allure.severity_level.BLOCKER)
|
||||
@pytest.mark.smoke
|
||||
@pytest.mark.ui
|
||||
def test_page_login_process(self, driver: WebDriver):
|
||||
admin_page = AdminPage(driver)
|
||||
|
||||
with allure.step('1. Открыть страницу'):
|
||||
admin_page.open_admin_page()
|
||||
admin_page.wait_for_element(admin_page.LOGIN_BLOCK)
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_BLOCK)
|
||||
admin_page.take_screenshot("admin_page")
|
||||
|
||||
with allure.step('2. Нажать на блок логина'):
|
||||
admin_page.click_login_block()
|
||||
assert admin_page.is_login_tryitout_btn_visible(), 'Кнопка "try it out" должна быть видимой'
|
||||
|
||||
with allure.step('3. Нажать на кнопку "try it out"'):
|
||||
admin_page.click_login_tryitout_btn()
|
||||
assert admin_page.is_login_textarea_visible(), 'Поле ввода должно быть видимым'
|
||||
assert admin_page.is_login_execute_btn_visible(), 'Кнопка выполнения запроса должна быть видимой'
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_TRYITOUT_BTN)
|
||||
admin_page.take_screenshot('admin_page_login_block')
|
||||
|
||||
with allure.step('4. Ввод данных для входа'):
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_TEXTAREA)
|
||||
admin_page.take_screenshot("admin_page_login_area_unchanged")
|
||||
admin_page.enter_text_to_login_textarea(admin_page.LOGIN_DATA)
|
||||
time.sleep(0.5)
|
||||
admin_page.take_screenshot("admin_page_login_text_entered")
|
||||
|
||||
with allure.step('5. Выполнение запроса'):
|
||||
admin_page.click_login_execute_btn()
|
||||
time.sleep(2.0)
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_STATUS_CODE)
|
||||
admin_page.take_screenshot("admin_page_login_request_executed")
|
||||
|
||||
with allure.step('6. Проверка статуса выполнения запроса'):
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_STATUS_CODE)
|
||||
assert int(admin_page.get_login_status()) == 200
|
||||
|
||||
@allure.story("Добавление пользователя")
|
||||
@allure.title("Проверка функции добавления пользователя")
|
||||
@allure.severity(allure.severity_level.BLOCKER)
|
||||
@pytest.mark.smoke
|
||||
@pytest.mark.ui
|
||||
def test_page_user_adding(self, driver: WebDriver, auth_admin: APIClient):
|
||||
admin_page = AdminPage(driver)
|
||||
user_id = ''
|
||||
|
||||
with allure.step('1. Открыть страницу'):
|
||||
admin_page.open_admin_page()
|
||||
admin_page.wait_for_element(admin_page.USER_BLOCK)
|
||||
admin_page.scroll_to_element(admin_page.USER_BLOCK)
|
||||
admin_page.take_screenshot("admin_page")
|
||||
|
||||
with allure.step("2. Авторизоваться"):
|
||||
admin_page.click_login_block()
|
||||
admin_page.click_login_tryitout_btn()
|
||||
admin_page.enter_text_to_login_textarea(admin_page.LOGIN_DATA)
|
||||
time.sleep(0.5)
|
||||
admin_page.click_login_execute_btn()
|
||||
time.sleep(2.0)
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_STATUS_CODE)
|
||||
admin_page.take_screenshot("admin_page_login_request_executed")
|
||||
|
||||
with allure.step('3. Нажать на блок пользователя'):
|
||||
admin_page.click_user_block()
|
||||
assert admin_page.is_user_tryitout_btn_visible(), 'Кнопка "try it out" должна быть видимой'
|
||||
|
||||
with allure.step('4. Нажать на кнопку "try it out"'):
|
||||
admin_page.click_user_tryitout_btn()
|
||||
assert admin_page.is_user_textarea_visible(), 'Поле ввода должно быть видимым'
|
||||
assert admin_page.is_user_execute_btn_visible(), 'Кнопка выполнения запроса должна быть видимой'
|
||||
admin_page.scroll_to_element(admin_page.USER_TRYITOUT_BTN)
|
||||
admin_page.take_screenshot('admin_page_user_block')
|
||||
|
||||
with allure.step('5. Ввод данных для регистрации пользователя'):
|
||||
admin_page.scroll_to_element(admin_page.USER_TEXTAREA)
|
||||
admin_page.take_screenshot("admin_page_user_area_unchanged")
|
||||
admin_page.enter_text_to_user_textarea(admin_page.USER_DATA)
|
||||
time.sleep(0.5)
|
||||
admin_page.take_screenshot("admin_page_user_text_entered")
|
||||
|
||||
with allure.step('6. Выполнение запроса'):
|
||||
admin_page.click_user_execute_btn()
|
||||
time.sleep(2.0)
|
||||
admin_page.scroll_to_element(admin_page.USER_STATUS_CODE)
|
||||
admin_page.take_screenshot("admin_page_user_request_executed")
|
||||
|
||||
with allure.step('7. Проверка статуса выполнения запроса'):
|
||||
admin_page.scroll_to_element(admin_page.LOGIN_STATUS_CODE)
|
||||
assert int(admin_page.get_login_status()) == 200
|
||||
|
||||
with allure.step('8. Сохраняем id пользователя для удаления'):
|
||||
content = admin_page.get_user_response()
|
||||
user_id = json.loads(content)['id']
|
||||
|
||||
with allure.step('9. Проверка, что пользователь добавлен на сайт'):
|
||||
admin_page.open(UIConfig.get_url('team'))
|
||||
time.sleep(2)
|
||||
admin_page.take_screenshot('team_page_user')
|
||||
|
||||
with allure.step('10. Удаляем пользователя через API'):
|
||||
auth_admin.delete_user(user_id)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue