Exemplo n.º 1
0
 def test_reg_repeat_password_negative(self):
     """
     Тестируется негативный сценарий, когда пароли не совпадают при регистрации
     Приложение работает корректно
     Пользователю выводится сообщение об ошибке
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password, generate_user()[2])
     assert "Passwords must match" in self.driver.page_source
     self.builder.del_user(username)
Exemplo n.º 2
0
 def test_login_negative(self):
     """
     Тестируется негативный сценарий авторизации с неверно введенным логином или паролем.
     Приложение работает корректно, пользователю выводится сообщение об ошибке
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     self.login_page.login(generate_user()[0], password)
     self.builder.del_user(username)
     assert "Invalid username or password" in self.driver.page_source
Exemplo n.º 3
0
 def test_reg_several_incorrect_fields(self):
     """
     Тестируется сценарий, когда пользователь при регистрации допустил ошибки в более чем 1-м поле ввода.
     Приложение выводит ошибку в виде словаря из некорректных данных, не прилагая пояснительный текст с описанием
     возникших проблем для обычного пользователя
     """
     username, email, password = generate_user(len_user=1, mask=False)
     self.reg_page.reg(username, email, password, generate_user()[2])
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "Incorrect username length, incorrect email address, passwords must match" in self.driver.page_source
Exemplo n.º 4
0
 def test_reg_exist_email(self):
     """
     Тестируется возможность регистрации пользователя с уже существуещем email.
     Приложение ведет себя некорректно, возникает 500-ая ошибка
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     self.reg_page.reg(generate_user()[0], email, password)
     self.builder.del_user(username)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "Email already exist" in self.driver.page_source
Exemplo n.º 5
0
 def test_reg_invalid_email(self):
     """
     Тестируется возможность пройти регистрацию со значением email, не проходящим под стандартную маску ввода
     Приложение ведет себя корректно и пользователю выводится сообщение об ошибке
     """
     username, email, password = generate_user(mask=False)
     self.reg_page.reg(username, email, password)
     assert "Invalid email address" in self.driver.page_source
     self.builder.del_user(username)
Exemplo n.º 6
0
 def test_logged_as(self):
     """
     Тестируется появление имени пользователя на главной страние при успешной авторизации в приложении
     Приложение работает корректно, на главной странице отображается logged as {username}
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.builder.del_user(username)
     assert f'logged as {username}' in self.driver.page_source
Exemplo n.º 7
0
 def test_reg_incorrect_username_length_max(self):
     """
     Тестируется негативный сценарий, когда производится попытка зарегестрировать пользователя с длиной поля
     usеrname, превышающей максимальную допустимую границу
     Приложение работает корректно и пользователю выводится сообщение об ошибке
     """
     username, email, password = generate_user(len_user=17)
     self.reg_page.reg(username, email, password)
     assert "Incorrect username length" in self.driver.page_source
     self.builder.del_user(username)
Exemplo n.º 8
0
 def test_logout(self):
     """
     Тестируется кнопка выхода  Logout, расположенная на главной странице приложения
     Приложение работает корректно, после нажатия на данную кнопку пользователь переходит на страницу авторизации
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     self.builder.del_user(username)
     assert "Welcome to the TEST SERVER" in self.driver.page_source
Exemplo n.º 9
0
 def test_logout_access_flag(self):
     """
     Тестируется изменение флага access с 1 на 0 при нажатии кнопки Logout, расположенной на главной странице
     Приложение работает некорректно, после выхода из аккаунта флаг сохраняет значение 1
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     result_flag = self.builder.get_access(username)
     self.builder.del_user(username)
     assert result_flag == 0
Exemplo n.º 10
0
 def test_login(self):
     """
     Тестируется сценарий авторизации зарегестрированного в приложении пользователя. Приложение работает корректно,
     после авторизации пользвателю доступна главная страница
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     self.login_page.login(username, password)
     self.builder.del_user(username)
     assert "powered by ТЕХНОАТОМ" in self.driver.page_source
Exemplo n.º 11
0
 def test_reg_success(self):
     """
     Тестируется сценарий регистрации нового пользователя. Все поля введены корректно, регистрация проходит успешно
     и пользователю открывается главная страница приложения. В базе выставляется флаг access равный 1
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     result_flag = self.builder.get_access(username)
     self.builder.del_user(username)
     assert "powered by ТЕХНОАТОМ" in self.driver.page_source
     assert result_flag == 1
Exemplo n.º 12
0
 def test_reg_exist_user(self):
     """
     Тестируется негативный сценарий, когда производится попытка зарегестрировать уже существующего в базе
     пользователя.
     Приложение работает корректно и пользователю выводится сообщение об ошибке
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.logout()
     self.reg_page.reg(username, email, password)
     assert "User already exist" in self.driver.page_source
     self.builder.del_user(username)
Exemplo n.º 13
0
 def test_reg_russian_email(self):
     """
     Тестируется возможность пройти регистрацию с русским значением поля email. Приложение должно выдавать ошибку,
     т.к. email ни при каких условиях не может принимать русские значения
     """
     username, email, password = generate_user(russian_email=True)
     self.reg_page.reg(username, email, password)
     self.builder.del_user(username)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "Invalid email address" in self.driver.page_source
Exemplo n.º 14
0
 def test_api_link(self):
     """
     Тестируется клик и переход на внешний ресурс "What is an API?"
     Проверяется не только переход на страницу запрашиваемого ресурса, но и его открытие в новой вкладке браузера
     Приложение работает корректно, в новой вкладке открывается запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.click(self.main_page.locators.API_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://en.wikipedia.org/wiki/Application_programming_interface" == self.driver.current_url
Exemplo n.º 15
0
 def test_smtp_link(self):
     """
     Тестируется клик и переход на внешний ресурс "Lets talk about SMTP?"
     Проверяется не только переход на страницу запрашиваемого ресурса, но и его открытие в новой вкладке браузера
     Приложение работает корректно, в новой вкладке открывается запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.click(self.main_page.locators.SMTP_LOCATOR)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     self.builder.del_user(username)
     assert "https://ru.wikipedia.org/wiki/SMTP" == self.driver.current_url
Exemplo n.º 16
0
 def test_reg_incorrect_password_length(self):
     """
     Тестируется возможность пройти регистрацию с длиной значений password = 1
     Приложение должно выдавать ошибку в силу соображений тестирования безопасности
     Приложение работает некорректно и регистрация проходит успешно
     """
     username, email, password = generate_user(len_pass=1)
     self.reg_page.reg(username, email, password)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "Incorrect password length" in self.driver.page_source
     self.builder.del_user(username)
Exemplo n.º 17
0
 def test_change_phrase(self):
     """
     Тестируется обновление цитаты в нижней части страницы при обновлении главной страницы приложения
     Приложение работает корректно, при обновлении страницы генерируется новая цитата
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     phrase = self.main_page.find(
         self.main_page.locators.PHRASE_LOCATOR).text
     self.driver.refresh()
     self.builder.del_user(username)
     assert phrase != self.main_page.find(
         self.main_page.locators.PHRASE_LOCATOR).text
Exemplo n.º 18
0
 def test_internet_future_link(self):
     """
     Тестируется клик и переход на внешний ресурс "Future of internet"
     Проверяется не только переход на страницу запрашиваемого ресурса, но и его открытие в новой вкладке браузера
     Приложение работает корректно, в новой вкладке открывается запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.click(self.main_page.locators.INTERNET_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://www.popularmechanics.com/technology/infrastructure/a29666802/future-of-the-internet/" \
            == self.driver.current_url
Exemplo n.º 19
0
 def test_reg_russian_username(self):
     """
     Тестируется возможность пройти регистрацию с русским значением поля username.
     Приложение должно выдавать ошибку в силу следующих причин:
     1. В любом сервисе данное поле заполняется на универсальном английском языке и почти всегда должно
     быть уникально(это в данном случае предусмотрено)
     2. Приложение подразумевает использование VK API, для работы которого необходимо передавать username на англ.
     """
     username, email, password = generate_user(russian_username=True)
     self.reg_page.reg(username, email, password)
     self.builder.del_user(username)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "Incorrect username" in self.driver.page_source
Exemplo n.º 20
0
 def test_examples(self):
     """
     Тестируется элемент Examples из выпадающего списка, появляющегося после наведения на элемент Linux
     из горизонтального меню.
     После нажатия на элемент приложение отрабатывает корректно и в новом окне браузера открывает
     запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.move(self.main_page.locators.NETWORK_LOCATOR)
     self.main_page.click(self.main_page.locators.EXAMPLES_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://hackertarget.com/tcpdump-examples/" == self.driver.current_url
Exemplo n.º 21
0
 def test_wireshark_download(self):
     """
     Тестируется элемент Download из выпадающего списка, появляющегося после наведения на элемент Linux
     из горизонтального меню.
     После нажатия на элемент приложение отрабатывает корректно и в новом окне браузера открывает
     запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.move(self.main_page.locators.NETWORK_LOCATOR)
     self.main_page.click(self.main_page.locators.DOWNLOAD_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://www.wireshark.org/#download" == self.driver.current_url
Exemplo n.º 22
0
 def test_about_flask(self):
     """
     Тестируется элемент About flask из выпадающего списка, появляющегося после наведения на элемент Python
     из горизонтального меню.
     После нажатия на элемент приложение отрабатывает корректно и в новом окне браузера открывает
     запрашиваемый ресурс
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.move(self.main_page.locators.PYTHON_LOCATOR)
     self.main_page.click(self.main_page.locators.FLASK_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://flask.palletsprojects.com/en/1.1.x/#" == self.driver.current_url
Exemplo n.º 23
0
 def test_python_history(self):
     """
     Тестируется элемент Python history из выпадающего списка, появляющегося после наведения на элемент Python
     из горизонтального меню.
     После нажатия на элемент приложение отрабатывает некорректно, т.к запрашиваемый внешний ресурс отерывается
     в текущем окне браузера
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.move(self.main_page.locators.PYTHON_LOCATOR)
     self.main_page.click(self.main_page.locators.PYTHON_HISTORY)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://en.wikipedia.org/wiki/History_of_Python" == self.driver.current_url
Exemplo n.º 24
0
 def test_linux_link(self):
     """
     Тестируется ссылка с переходом на сайт linux из горизонтального меню.
     Данный элемент стоит в ряду, который подразумевает, что каждый в нем находящийся элемент является линком.
     Тест падает, потому что ссылка является неактивной
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.click(self.main_page.locators.LINUX_LOCATOR)
     self.builder.del_user(username)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://www.linuxfoundation.org/" == self.driver.current_url
Exemplo n.º 25
0
 def test_python_link(self):
     """
     Тестируется ссылка с переходом на сайт python.org
     Ссылка является внешним ресурсом и страницы должна открываться в новой вкладке браузера.
     Приложение работает некорректно и остается на текущей странице
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.click(self.main_page.locators.PYTHON_LOCATOR)
     self.builder.del_user(username)
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     assert "https://www.python.org/" == self.driver.current_url
Exemplo n.º 26
0
 def test_centos(self):
     """
     Тестируется элемент Download Centos7 из выпадающего списка, появляющегося после наведения на элемент Linux
     из горизонтального меню.
     После нажатия на элемент, приложение проходит перввую проверку и открывает ссылку в новой вкладке, вторую
     проверку тест не прошел, т.к. url не совпадает с ожидаемым.
     """
     username, email, password = generate_user()
     self.reg_page.reg(username, email, password)
     self.main_page.move(self.main_page.locators.LINUX_LOCATOR)
     self.main_page.click(self.main_page.locators.CENTOS_LOCATOR)
     self.builder.del_user(username)
     assert len(self.driver.window_handles) == 2
     self.driver.switch_to.window(self.driver.window_handles[-1])
     allure.attach(self.driver.get_screenshot_as_png(),
                   name='test_python_link',
                   attachment_type=allure.attachment_type.PNG)
     assert "https://www.centos.org/download/" == self.driver.current_url