Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Архитектура тестового набора, правильная ли?

fixtures
locators
pycharm
webdriver
selenium
python
Теги: #<Tag:0x00007fedbafd2ac8> #<Tag:0x00007fedbafd2960> #<Tag:0x00007fedbafd2780> #<Tag:0x00007fedbafd2438> #<Tag:0x00007fedbafd22d0> #<Tag:0x00007fedbafd2118>

(Olexander Davis) #1

Привет! Продолжаю изучать автоматизацию и сейчас структурирую тесты что бы выглядело не как простыня (поскольку у нас атоматизоторов у компании нету, пока спросить некого, прошу вашего совета, подсказки)
Сейчас сфокусировался на изучении того, что рекомендовали мне здесь на форуме, в частности приминение фикстуры. Я уже имплементировал, но хочу спросить про другие формы или просто, нормальная(распространенная) ли такая архитектура в начинающих автоматизаторов.

И так:
Структура проекта в Pycharm:
Директория
Пакет1
файл з вспомагательными методами и основными:
Напр:

  def login_action(self):
     self.driver.get("http://")
     self.driver.find_element_by_name("email").send_keys("admin@admin.admin")
     self.driver.find_element_by_name("password").send_keys("admin@admin.admin")
     self.driver.find_element_by_class_name("btn").click()

 def login_page(self):
     self.driver.get("http://")

 def logout(self):
     self.driver.quit()

  #REPLY NOTIFICATION 
   def reply_notification(self):
    self.driver.find_element_by_link_text("Notifications").click()
    self.driver.implicitly_wait(2)
    self.driver.find_element_by_link_text("Inbox").click()
    #link of not
    self.driver.find_element_by_class_name("mailbox-subject").click()
    self.driver.find_element_by_class_name("show-reply-form").click()

  #REPLY NOTIFICATION 2 
   def reply_notification(self):
    self.driver.find_element_by_link_text("Notifications").click()
    self.driver.implicitly_wait(2)
    self.driver.find_element_by_link_text("Inbox").click()

Пакет2
файлы в каждом по неколько тестов(на модуль)
Например:

 from preconditon.application import Application

tests_classes=[
    Application
]

def test_forgot_password_login_but(app):
    app.login_page()
    app.forgot_password_login_but()
    app.logout()

и в корне директории файл conftest

import pytest
from preconditon.application import Application

@pytest.fixture()
def app(request):
    fixture = Application()
    return fixture

Думаю расказывать не нужно что я каждый раз делаю, когда добавляю новый тест.
Теперь вопрос, так нормально для начала или что то нужно уже сейчас сменить (просто времени не много и проект поджимает, + паралельно появится второй и я хочу на выходных вот сказать наперед все сделать)

Спасибо на перед за советы


(Yury) #2

Странно, что из всего многообразия рекомендаций вы выбрали применение фикстур. Правильная архитектура тестов гуглится по ключевым словам: Page Object Pattern