Евгений, спасибо! Такое небольшое, но очень полезное видео! Заставило меня немного подправить свои тесты:) Успехов!
@user-yc8fh8ri6w
27 күн бұрын
Спасибо дяденька, максимальный респект
@vladberezovskiy7031
6 ай бұрын
Спасибо очень классный формат, быстро и понятно! Надеюсь что скоро выйдет видео, в котором ты до конца усовершенствуешь этот проект по апи!
@luckytima2315
6 ай бұрын
Спасибо, наши мольбы услышаны)
@SeniorTester
6 ай бұрын
Просто очень хорошо и громко молились )))
@redazaki297
6 ай бұрын
спасибо! ты лучший!
@SeniorTester
6 ай бұрын
😂
@vladshambaryan8852
3 ай бұрын
Спасибо Женя. Я пошёл смотреть твоё видео про классы.
@ТуТа-л8и
6 ай бұрын
Волшебно!
@SeniorTester
6 ай бұрын
🤟
@klimtro
2 ай бұрын
спасибо, Евгений. вцелом удобно! пэйджи применять при тестировании апи же нельзя, поэтому обертка в классы выглядит хорошим решением
@fimasmf4444
6 ай бұрын
По видео вопросов нет. Четко, понятно. Шик! Если будет возможность и желание, добавить видео по тестированию API с использованием mock. По коду, позволю такое замечание: все сходят с ума по части PageObject и ООП, штуки хорошие, нужные, знать обязательно надо. Другое дело, понимать как и где это нужно применять. В начале делал похоже, как в видео. В итоге в тестах оставалось пару строк. Красота. Потом столкнулся с тем, что другим приходилось обширно шариться по всему проекту, что бы дебажить и понимать в какой функции, есть косяк. Не удобно. В итоге пришел к тому что, есть отдельный файл с функциями, которые как по шагам собираются в тесте. В качестве ООП, работают аргументы, которые позволяют полиморфировать функцию если надо. В итоге вообще ушел от классов. Только фикстуры и параметры. Повторюсь - это, лично мой опыт. Тут нет правильного решения, есть только удобное. Для конкретного человека или проекта. За видос все равно респект.
@SeniorTester
6 ай бұрын
Да, отличная поправка на то, что для каждого проекта нужно использовать то, что подходит. По сути, здесь я показываю классический подход, знание которого необходимо. Подход с функциями построить проще. Но странно, что вы столкнулись с проблемами в поддержке такого. ООП как раз и создан для упрощения процесса поддержки. Каждая вещь в одном месте. В любом случае, за коммент и мнение спасибо
@fimasmf4444
6 ай бұрын
@@SeniorTester Я возможно не точно выразился. Попробую иначе. При падении теста, когда все упрятано в класс, нужно идти в него, потом в функцию, потом проверять все ли норм будет с асертами и т.д. потом обратно возвращаться в тест. А когда отдельная функция, без привязки к классу, но которая работает в любых тестах - получилось быстрее и главное понятнее для других. Из минусов, чуть больше повторяющегося кода и чуть больше текста данных в тесте. Опять же, не всегда необходимы объекты.
@zubescu
6 ай бұрын
спасибо. очень доходчиво объясняешь.
@SeniorTester
6 ай бұрын
Спасибо, стараюсь
@user-els1z6htp7
Ай бұрын
Расскажи, пожалуйста, про тестовые данные и варианты реализации)
@johndeere4726
4 ай бұрын
очень полезное видео! помогло разобраться
@frankiew6576
6 ай бұрын
Тема актуальна, спасибо за идею, но хотелось бы видеть не просто код, а и то как он работает
@SeniorTester
6 ай бұрын
Как оно работает я показывал в предыдущем видео. Решил не затягивать. Разницы в запуске нет
@markuschris5813
2 ай бұрын
Евгений, здравствуйте! Можете ли вы выложить ссылку на проект, который реализован в видео?
@MrSprit797
5 ай бұрын
Здравствуйте, спасибо за видео, вот бы ссылку на репу, что-бы сразу взять за костяк на своих проектах. И да ждём видео куда прятать тестовые данные.
@VzhikIn
4 ай бұрын
Привет 👋🏼 сделай видос «N способов, как хранить payloads” 😉
@stanislav_laptenok
5 ай бұрын
Привет, очень классное видео, как ты и говорил, пишу тебе с просьбой что бы ты рассказал, где хранить dict для payload , и как вытягивать данные для assert , я думаю очень многим это будет очень полезно, заранее спасибо, надеюсь у тебя есть силы для данного видео.
@SeniorTester
5 ай бұрын
С тестовыми данными запрос понял. А что значит "вытягивать данные для assert"?
@stanislav_laptenok
5 ай бұрын
@@SeniorTester окей, попытаюсь объяснить, вот например отправил я файл в чат , и мне нужно сделать проверку по названию файла , что с Бэка мне приходит точно такое же название файла как я и отправлял , первую часть я возьму с респонсе для для проверки , это что мне пришло , а вот я допустил создал отельный файлик с тестовыми данными и для сравнения у меня не получается от туда взять название файла , так как передаётся полный путь к файлу , а не название файла , так вот хотелось бы посмотреть как ты это реализуешь, может я вообще не правильно делаю , надеюсь моя мысль после этого стала , немного понятна)
@user-cr2rt9uq4o
5 ай бұрын
Спасибо. А как быть с тем, что у нас проверки проходят не в тесте, а в отдельном файле? И когда тест падает мы получаем в терминале ошибку assertion error без указания expected_result и actual_result. А если ассерт перенести в сам тест, то выглядит читабельней.
@user-el7mt4oi8x
2 ай бұрын
Хороший вопрос, потому что я его тоже себе задавал и решил сделать следующее: создал класс BaseAssertationMessage, который инициализируется 3 сущностями: text_message, exp_res, act_result. Собственно потом этот класс можно прокидывать после ассертов как сообщение (__repr__\__str__\__call__). Для ассертов, связанных с респонсами релиазовал отнаследованный от базового класс, куда дополнительно нужно класть респонс, а из него в ассерт сообщение выводить параметры запроса и сам респонс в виде json или текста. Теперь в чем преимущество инкапсулировать проверки в методы класса: так ассерт сообщения (с вышеупомянутой реализацией) выглядят чистыми, понятными и легко поддерживаемыми. Однако, если ассерты впиливать в сами тесты, pytest реализовывает свою логику ожидаемого и фактических результатов, что не всегда читаемо, плюс их реализации приоритетна и кастомные сообщения могут быть обрезаны, даже в алюррепортах ) В общем, инкапсуляция проверок - это хорошо. А ассерты внутри самих тестов, скорее, больше подходят для легеньких юнит-тестиков )
@mironpentasteal39
3 ай бұрын
видосики полезные и классные, спасибо! а такой вопрос: а почему ассерты выносятся в класс, разве они не должны быть непосредственно в самих тестах, притом только в единственном экземпляре? а то тут идет проверка и статус кода, и еще чего-то, помимо этого. и если есть какая-то тонкая грань между "можно совмещать несколько ассертов одновременно" и "это уже разные тесты должны быть", то где она?
@user-el7mt4oi8x
2 ай бұрын
Привет, я попробовал ответить на твой вопрос в комментах выше, как это мне видится )
@user-ij1md9zr2t
Ай бұрын
Хорошоее видео, молодец. А если в каждом тесте идет проверка на status 200. Как эту проверку сделать общей для всех тестов, чтобы не прописывать в каждом?
@SeniorTester
Ай бұрын
Если заморочиться, то можно, но зачем? Ведь это шаг теста, пусть он будет в тесте. Иначе, тест будет выглядеть неполноценным
@evi1ive
4 ай бұрын
Лайк + подписка
@SeniorTester
4 ай бұрын
Всё правильно
@user-xb1tq7ik7y
6 ай бұрын
Сделай проект по тестированию бд постгрес (проверки качества данных и всякое такое)
@SeniorTester
6 ай бұрын
У меня в голове где-то есть понимание как это в принципе будет выглядеть, но на практике я таким не занимался. Базой данных обычно пользуюсь только или для получения данных, которые нужны для тестов или для изменения каких-то состояний, которые проще изменить через базу. Так что, не думаю, что такое от меня будет полезно.
@user-uo9iy4yd5o
6 ай бұрын
а как же baseApi класс а прикрепление шагов в allure?
@SeniorTester
6 ай бұрын
И вынесение данных И base_url И моки И параллельный запуск И параметризация И взаимодействие с БД И интеграция с ТМС И запуск из CI/CD Мелочей и деталей хватает. Всё постепенно будет появляться, в одно видео это не уместить.
Пікірлер: 39