Size: a a a

testing_in_python

2021 July 21

NR

Nikolay Romeiko in testing_in_python
Дубль два, вопрос по веб сокетам) вдруг кто-то занимался тестированием websockets на практике...
как в таком случае лучше выстраивать логику тестов? я пока делаю все синхронно и просто в цикле читаю следующие 5-10-20 сообщений, что бы проверить нужное мне сообщение-респонс, так как очередность сообщений от сервера может меняется при одинаковых шагах-запросах
насколько это плохая-хорошая практика?
что-то вроде
for _ in range(10):
   msg = ws.recv()
   if msg['type'] == 'exp':
        assert msg['some_data'] == exp_data
источник

IS

Idi Suda in testing_in_python
источник

СС

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

но как ни крути если это надо только определенным тестам, а не всем - должно быть какое то условие чтобы таковыми стали только они. например чтобы эти тесты лежали в папке/файле test_all_browsers и уже по этому признаку дать возможность им запускаться иначе. или флажок какой, или название этих тестов. в общем что угодно.
источник

А

Андрей in testing_in_python
Вопрос умным людям - кто-то на практике в тестировании занимался чем-то подобным? https://www.youtube.com/watch?v=rrtlWgwm1F8&t=1623s
YouTube
Python Code Speed up
Что мы можем сделать, чтобы ускорить и оптимизировать кодинг на Python?

Спикер: Алексей Волошин, Senior Software Engineer Team Lead в RaccoonGang, Преподаватель курса Python в Харькове: https://kharkiv.ithillel.ua/courses/python-kharkiv
Курс Python онлайн: https://online.ithillel.ua/courses/python

00:00 — Вступление
7:15 — Из трех выбери два
8:38 —Профилириование
12:05 — Как профилировать на примере кода
36:34 — Что можно улучшить в коде?
36:42 — Как избегать циклы
38:17 — Использование list comprehension
41:04 — О том, как сильно Python ненавидит точки
44:16 — Использование локальных переменных
52:40 — Искать по хеш таблицам проще
53:46 — if vs try
58:21 — Использование встроенных методов и модулей
1:00:24 — _slots_
1:02:05 — Нужно избавляться от Output
1:02:49 — Почему нельзя складывать строки
1:04:24 — Об использовании генераторов, subprocesses, Cython
1:07:08 — Just in time compilation
1:08:45 — Numba
1:09:32 — Применение Numba и дальнейшее ускорение кода
1:23:22 — Вопросы и ответы

Компьютерная…
источник
2021 July 22

IS

Idi Suda in testing_in_python
Чел, тебе не надо профайлить твой код
источник

IS

Idi Suda in testing_in_python
У тебя при написании кода вопросы возникают, если вдруг профайлить будешь, просто охуеешь от инфы и не будешь понимать че делатть
источник

А

Андрей in testing_in_python
мне точно не надо, стало интересно были ли такая необходимость на каком-то этапе у кого-то поопытнее )
источник

IS

Idi Suda in testing_in_python
Если тебе хочется узнать как работает память в питоне, я в прошлом году накидал статейку

https://teletype.in/@bvrch/S1xDQwbeL

Другой вопрос что ты профайлить хочешь? Веб драйвер ебаный что ли?
источник

А

Андрей in testing_in_python
брат, за статью спасибо )
источник

IS

Idi Suda in testing_in_python
Могу ещё накидать статейку как под стандартные типы (список, дикт, тупл) выделяется память, если интересно кому.
источник

А

Андрей in testing_in_python
пф.. спрашиваешь, всегда приятно почитать добротный материал )
источник

IS

Idi Suda in testing_in_python
Ok
источник

B

Bola in testing_in_python
Тут что-то было
https://habr.com/ru/post/455722/
источник

А

Алексей in testing_in_python
да, на 3х проектах занимался. Когда тестов (не селен) очень много, а хочется чтобы фулл регресс прогонялся как минимум на каждый МР, а желательно - чтобы и на коммиты в ветки (быстрый филбек разрабам экономит нервы и бабло) - начинается время оптимизаций. Или когда тесты МЛ где надо хрендильон данных обработать и сравнить
источник

IS

Idi Suda in testing_in_python
Фулл регресс на каждом пре не занимал вагон времени? Как вы поддерживали сьют? Выкидывали ли тесты, которые долгое время не находили бага или теряли актуальность?
источник

А

Андрей in testing_in_python
выкидывать тесты, которые не находят баги? я конечно в курсе про пестицидность и прочее.. но разве passed тесты не являются частью картины, что все збс?
источник

V

Vita in testing_in_python
обалдеть)
источник

А

Алексей in testing_in_python
ничего не выкидывал никогда, раз в году и палка стреляет, и старый тест чего то находит :) Исключаются только тесты по убираемому функционалу.
Время - 5 мин, из них последний отрезок в полторы минуты де факто ждало результаты примерно 30 тестов которые идут ~5 мин. Всего тестов на тот момент было примерно 10 тыс. Большая часть генерировалась автоматически из правил и описаний флоу. Единственный нюанс был - тесты генерировали приличный лоад, но поскольку прилага и была хайлоад - заодно меряли перф.
На втором проекте поменьше тестов было, но там они и попроще, без всяких 5минутных ожиданий. Там регресс пару мин был, соотв гнался вместе с юнит тестами
Для МЛ - обработка результатов одним питон процессов (с использованием нампи и тп, которые под капотом умет кой чего паралелить) может занимать часы, если там всякие привычные для тестировщиков прямые переборы комбинаций в лоб, или циклы в циклах.
источник

V

Vita in testing_in_python
ну ты выкинешь, спустя несколько версии может произойти ошибка, которую проверял выкинутый тест
источник

V

Vita in testing_in_python
чем тебе мешают несколько кб кода?
источник