Backend и API - Создание проекта (фреймворка) по автоматизации тестирования на Python

  Рет қаралды 4,318

Senior Tester | Евгений Окулик

Senior Tester | Евгений Окулик

Күн бұрын

Пікірлер: 40
@АркадийНалимов-р1э
@АркадийНалимов-р1э Ай бұрын
Спасибо дяденька, максимальный респект
@Evgeny_89
@Evgeny_89 16 күн бұрын
Евгений, спасибо! Такое небольшое, но очень полезное видео! Заставило меня немного подправить свои тесты:) Успехов!
@luckytima2315
@luckytima2315 7 ай бұрын
Спасибо, наши мольбы услышаны)
@SeniorTester
@SeniorTester 7 ай бұрын
Просто очень хорошо и громко молились )))
@ТуТа-л8и
@ТуТа-л8и 7 ай бұрын
Волшебно!
@SeniorTester
@SeniorTester 7 ай бұрын
🤟
@vladberezovskiy7031
@vladberezovskiy7031 7 ай бұрын
Спасибо очень классный формат, быстро и понятно! Надеюсь что скоро выйдет видео, в котором ты до конца усовершенствуешь этот проект по апи!
@redazaki297
@redazaki297 7 ай бұрын
спасибо! ты лучший!
@SeniorTester
@SeniorTester 7 ай бұрын
😂
@vladshambaryan8852
@vladshambaryan8852 4 ай бұрын
Спасибо Женя. Я пошёл смотреть твоё видео про классы.
@klimtro
@klimtro 2 ай бұрын
спасибо, Евгений. вцелом удобно! пэйджи применять при тестировании апи же нельзя, поэтому обертка в классы выглядит хорошим решением
@zubescu
@zubescu 7 ай бұрын
спасибо. очень доходчиво объясняешь.
@SeniorTester
@SeniorTester 7 ай бұрын
Спасибо, стараюсь
@johndeere4726
@johndeere4726 4 ай бұрын
очень полезное видео! помогло разобраться
@fimasmf4444
@fimasmf4444 6 ай бұрын
По видео вопросов нет. Четко, понятно. Шик! Если будет возможность и желание, добавить видео по тестированию API с использованием mock. По коду, позволю такое замечание: все сходят с ума по части PageObject и ООП, штуки хорошие, нужные, знать обязательно надо. Другое дело, понимать как и где это нужно применять. В начале делал похоже, как в видео. В итоге в тестах оставалось пару строк. Красота. Потом столкнулся с тем, что другим приходилось обширно шариться по всему проекту, что бы дебажить и понимать в какой функции, есть косяк. Не удобно. В итоге пришел к тому что, есть отдельный файл с функциями, которые как по шагам собираются в тесте. В качестве ООП, работают аргументы, которые позволяют полиморфировать функцию если надо. В итоге вообще ушел от классов. Только фикстуры и параметры. Повторюсь - это, лично мой опыт. Тут нет правильного решения, есть только удобное. Для конкретного человека или проекта. За видос все равно респект.
@SeniorTester
@SeniorTester 6 ай бұрын
Да, отличная поправка на то, что для каждого проекта нужно использовать то, что подходит. По сути, здесь я показываю классический подход, знание которого необходимо. Подход с функциями построить проще. Но странно, что вы столкнулись с проблемами в поддержке такого. ООП как раз и создан для упрощения процесса поддержки. Каждая вещь в одном месте. В любом случае, за коммент и мнение спасибо
@fimasmf4444
@fimasmf4444 6 ай бұрын
@@SeniorTester Я возможно не точно выразился. Попробую иначе. При падении теста, когда все упрятано в класс, нужно идти в него, потом в функцию, потом проверять все ли норм будет с асертами и т.д. потом обратно возвращаться в тест. А когда отдельная функция, без привязки к классу, но которая работает в любых тестах - получилось быстрее и главное понятнее для других. Из минусов, чуть больше повторяющегося кода и чуть больше текста данных в тесте. Опять же, не всегда необходимы объекты.
@АртемКурто-м5ч
@АртемКурто-м5ч 6 ай бұрын
Спасибо. А как быть с тем, что у нас проверки проходят не в тесте, а в отдельном файле? И когда тест падает мы получаем в терминале ошибку assertion error без указания expected_result и actual_result. А если ассерт перенести в сам тест, то выглядит читабельней.
@ПростоКоляка
@ПростоКоляка 3 ай бұрын
Хороший вопрос, потому что я его тоже себе задавал и решил сделать следующее: создал класс BaseAssertationMessage, который инициализируется 3 сущностями: text_message, exp_res, act_result. Собственно потом этот класс можно прокидывать после ассертов как сообщение (__repr__\__str__\__call__). Для ассертов, связанных с респонсами релиазовал отнаследованный от базового класс, куда дополнительно нужно класть респонс, а из него в ассерт сообщение выводить параметры запроса и сам респонс в виде json или текста. Теперь в чем преимущество инкапсулировать проверки в методы класса: так ассерт сообщения (с вышеупомянутой реализацией) выглядят чистыми, понятными и легко поддерживаемыми. Однако, если ассерты впиливать в сами тесты, pytest реализовывает свою логику ожидаемого и фактических результатов, что не всегда читаемо, плюс их реализации приоритетна и кастомные сообщения могут быть обрезаны, даже в алюррепортах ) В общем, инкапсуляция проверок - это хорошо. А ассерты внутри самих тестов, скорее, больше подходят для легеньких юнит-тестиков )
@user-els1z6htp7
@user-els1z6htp7 2 ай бұрын
Расскажи, пожалуйста, про тестовые данные и варианты реализации)
@MichioSempai
@MichioSempai 4 күн бұрын
Вопрос. Если на проекте есть openapi, имеет ли смысл использовать его для генерации клиентов и его использовать в тестах? Из недостатков я вижу следующее, в сгенерирлванном клиенте есть много проверок на саблюденте контракта, что не позволит нам нам писать негативные автотеств где это контракт и не соблюдаются
@frankiew6576
@frankiew6576 7 ай бұрын
Тема актуальна, спасибо за идею, но хотелось бы видеть не просто код, а и то как он работает
@SeniorTester
@SeniorTester 7 ай бұрын
Как оно работает я показывал в предыдущем видео. Решил не затягивать. Разницы в запуске нет
@MrSprit797
@MrSprit797 6 ай бұрын
Здравствуйте, спасибо за видео, вот бы ссылку на репу, что-бы сразу взять за костяк на своих проектах. И да ждём видео куда прятать тестовые данные.
@VzhikIn
@VzhikIn 4 ай бұрын
Привет 👋🏼 сделай видос «N способов, как хранить payloads” 😉
@markuschris5813
@markuschris5813 2 ай бұрын
Евгений, здравствуйте! Можете ли вы выложить ссылку на проект, который реализован в видео?
@stanislav_laptenok
@stanislav_laptenok 5 ай бұрын
Привет, очень классное видео, как ты и говорил, пишу тебе с просьбой что бы ты рассказал, где хранить dict для payload , и как вытягивать данные для assert , я думаю очень многим это будет очень полезно, заранее спасибо, надеюсь у тебя есть силы для данного видео.
@SeniorTester
@SeniorTester 5 ай бұрын
С тестовыми данными запрос понял. А что значит "вытягивать данные для assert"?
@stanislav_laptenok
@stanislav_laptenok 5 ай бұрын
@@SeniorTester окей, попытаюсь объяснить, вот например отправил я файл в чат , и мне нужно сделать проверку по названию файла , что с Бэка мне приходит точно такое же название файла как я и отправлял , первую часть я возьму с респонсе для для проверки , это что мне пришло , а вот я допустил создал отельный файлик с тестовыми данными и для сравнения у меня не получается от туда взять название файла , так как передаётся полный путь к файлу , а не название файла , так вот хотелось бы посмотреть как ты это реализуешь, может я вообще не правильно делаю , надеюсь моя мысль после этого стала , немного понятна)
@mironpentasteal39
@mironpentasteal39 3 ай бұрын
видосики полезные и классные, спасибо! а такой вопрос: а почему ассерты выносятся в класс, разве они не должны быть непосредственно в самих тестах, притом только в единственном экземпляре? а то тут идет проверка и статус кода, и еще чего-то, помимо этого. и если есть какая-то тонкая грань между "можно совмещать несколько ассертов одновременно" и "это уже разные тесты должны быть", то где она?
@ПростоКоляка
@ПростоКоляка 3 ай бұрын
Привет, я попробовал ответить на твой вопрос в комментах выше, как это мне видится )
@КириллСолнцев-й5д
@КириллСолнцев-й5д 2 ай бұрын
Хорошоее видео, молодец. А если в каждом тесте идет проверка на status 200. Как эту проверку сделать общей для всех тестов, чтобы не прописывать в каждом?
@SeniorTester
@SeniorTester 2 ай бұрын
Если заморочиться, то можно, но зачем? Ведь это шаг теста, пусть он будет в тесте. Иначе, тест будет выглядеть неполноценным
@evi1ive
@evi1ive 5 ай бұрын
Лайк + подписка
@SeniorTester
@SeniorTester 5 ай бұрын
Всё правильно
@Максим-г1ч1в
@Максим-г1ч1в 7 ай бұрын
Сделай проект по тестированию бд постгрес (проверки качества данных и всякое такое)
@SeniorTester
@SeniorTester 7 ай бұрын
У меня в голове где-то есть понимание как это в принципе будет выглядеть, но на практике я таким не занимался. Базой данных обычно пользуюсь только или для получения данных, которые нужны для тестов или для изменения каких-то состояний, которые проще изменить через базу. Так что, не думаю, что такое от меня будет полезно.
@ПавелЩелоков-ш7е
@ПавелЩелоков-ш7е 7 ай бұрын
а как же baseApi класс а прикрепление шагов в allure?
@SeniorTester
@SeniorTester 7 ай бұрын
И вынесение данных И base_url И моки И параллельный запуск И параметризация И взаимодействие с БД И интеграция с ТМС И запуск из CI/CD Мелочей и деталей хватает. Всё постепенно будет появляться, в одно видео это не уместить.
@akseley335
@akseley335 7 ай бұрын
Здравствуйте, а что описывается в baseApi классе?
Allure report внутри проекта. Какие особенности?
14:30
Senior Tester | Евгений Окулик
Рет қаралды 1,2 М.
API и backend - что в них можно потестировать?
29:42
Senior Tester | Евгений Окулик
Рет қаралды 2,5 М.
АЗАРТНИК 4 |СЕЗОН 2 Серия
31:45
Inter Production
Рет қаралды 1,1 МЛН
Как мы играем в игры 😂
00:20
МЯТНАЯ ФАНТА
Рет қаралды 3 МЛН
💩Поу и Поулина ☠️МОЧАТ 😖Хмурых Тварей?!
00:34
Ной Анимация
Рет қаралды 1,8 МЛН
escape in roblox in real life
00:13
Kan Andrey
Рет қаралды 80 МЛН
PyTest • REST API Integration Testing with Python
37:24
pixegami
Рет қаралды 85 М.
Backend и API - автоматизация тестирования на Python
32:12
Senior Tester | Евгений Окулик
Рет қаралды 8 М.
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 22 М.
8 вещей, о которых я хотел бы знать в начале карьеры
13:23
Senior Tester | Евгений Окулик
Рет қаралды 1,7 М.
Программисты-самоучки... Слушайте внимательно.
22:45
Евгений Афанасьев
Рет қаралды 67 М.
АЗАРТНИК 4 |СЕЗОН 2 Серия
31:45
Inter Production
Рет қаралды 1,1 МЛН