Size: a a a

testing_in_python

2021 August 05

А

Алексей in testing_in_python
Сюда соотв добавить логику скришотов и чего надо
источник

СС

Сказочный Сникерс... in testing_in_python
драйвер только не особо удобно так доставать, если он через фикстуру передается
источник

А

Алексей in testing_in_python
у меня он обычно в синглтоне, типа стейтмашина там. В питоне все равно все процессами паралелится, так что синглтон вполне безопасное решение
источник

А

Алексей in testing_in_python
сделал пример с фикстурой вебрайвера
@pytest.fixture(scope="session")
def web_driver() -> WebDriverWrapper:
   return <ваш вебдрайвер бла бла бла>

def pytest_runtest_call(item):
   item._obj = check_wrapper(item._obj, item.funcargs.get("web_driver"))

def check_wrapper(func, web_driver_fixture: Optional[WebDriverWrapper]):
   def func_wrapper(*args, **kwargs):
       if not web_driver_fixture:
           # если нет вебдрайвера - сделать что то
       try:
           func(*args, **kwargs)  # No return values
       except AssertionError as ae:
           logger.error(f"Assertion failed: {str(ae)}")
           web_driver_fixture.failure_activities()  # Логика скриншотов и тп здесь
           raise
       except Exception as e:
           logger.exception(str(e))
           logger.error(f"Local variables: {sys.exc_info()[2].tb_next.tb_frame.f_locals}")
           web_driver_fixture.failure_activities()  # Логика скриншотов и тп здесь
           raise

   update_wrapper(func_wrapper, func)
   return func_wrapper
источник

СС

Сказочный Сникерс... in testing_in_python
а если вебдрайвер не передается в тест явно через аргумент?) в общем можно, но сложно. я к тому и написал что доставать вебрайвер из итема - не удобно. имхо
источник

А

Алексей in testing_in_python
если явно не передается - передать во враппер то, что надо :) особой разницы не вижу, зато можно легко дифференцировать падения теста и инфры прямо по эксепшенам :)
источник

СС

Сказочный Сникерс... in testing_in_python
это если у тебя все падения теста порождают AssertionError)
источник

СС

Сказочный Сникерс... in testing_in_python
но 99% что как бы ты не старался так не будет
источник

А

Алексей in testing_in_python
ну у меня так щас и сделано. Тестовая логика кидает ассершн эрроры, тесты соотв красит красным. Все инфрасруктурные вещи, и когда челики в коде тестов накосячили - кидают другие эксепшены, тесты соотв желтые и идут сначала на проверку QA. Инфраструктурные дополнительно помечаются, и идут на девопсов и тп. На досуге думаю немного аллюр поколупать, чтобы их красило каким то другим цветом в нем
источник

СС

Сказочный Сникерс... in testing_in_python
ну условно с тем же вебдрайвером считай над каждым файндом, вейтом и любым действием придется сразу городить ассерт враппер
источник

А

Алексей in testing_in_python
когда я в последний раз тестил гуй, у меня был оный враппер, который все это обслуживал (угу, типа селенида и подобного). Он и метал ассерты когда надо, и не ассерты когда какая то ересь замечена была
источник

А

Алексей in testing_in_python
реально удобно, когда тестов много и людей много - полюому кто то что то наломает, и чтобы быстро понимать где реально фэйл, а где точно лучше сначала автору посмотреть
источник

СС

Сказочный Сникерс... in testing_in_python
понятно. в общем @joyniter есть два стула)
источник

А

Алексей in testing_in_python
угу, все зависит от проекта, оба способа вполне нормальные
источник

А

Алексей in testing_in_python
у себя я в синглтон его заворачивал, ибо была логика для отчетов:
- враппер сохранял журнал экшенов, к каждому приатачен спецлог и скриншот (видос если надо)
- на фэйл дергалась спец функция, трансформируюшая чейн этих экшенов в репорт, и аттачила его к тесту. Там получались готовые шаги с картинками (с зумом по ховеру лол)
- на пасс очередь чистилась

Соотв разрабы получая такое в джире куда реже бегали ко мне с традиционным "я нипанимаю что там", и сразу фиксили в своей ветке.
источник

КИ

Кирилл Иванов... in testing_in_python
подскажите куда смотреть, чтобы тесты на pytest-е параллельно запустить??? гуглить пробовал, пока не помогает
источник

NR

Nikolay Romeiko in testing_in_python
xdist plugin
источник

КИ

Кирилл Иванов... in testing_in_python
огромное спасибо
источник
2021 August 06

SV

Serhii Vostrikov in testing_in_python
Привет, подскажите куда копать, есть проблема с поиском чайлд элементов у уже найденного элемента. Проблема заключается в том, что селениум их ищет просто невероятно долго(секунд по 15 наверное), но находит. Элемент родитель ищется без проблем, а его дети уже с проблемами. Вейты уже все поискоренял, всё равно долго ищет
источник

А

Андрей in testing_in_python
мооожет реализацию или рефенс покажешь?..
источник