ПОСТРОЕНИЕ ПРОЦЕССА АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ ДЛЯ REST API С 0 ДО CI/CD ЗА 1.5 ЧАСА НА PYTHON

Поділитися
Вставка
  • Опубліковано 4 січ 2025

КОМЕНТАРІ • 37

  • @artem_lukevich
    @artem_lukevich 9 місяців тому +11

    Лучшее что я видел про автоматизацию API :)

  • @AndrewBondar-pj4ze
    @AndrewBondar-pj4ze 9 місяців тому +3

    самый лучшей E2E курс автоматизации, спасибо большое

  • @АйбекХолбаев
    @АйбекХолбаев 3 місяці тому +3

    Лучшее видео что я видел про api тестирование. Обычные видео про api тестирование включают пару запросов в requests а тут все есть. Спасибо за видео.

  • @bear3xl48
    @bear3xl48 9 місяців тому

    Спасибо. Как всегда, все на высоком уровне.

  • @strokan-o8m
    @strokan-o8m 9 місяців тому +1

    Очень понятно рассказано, интересно в каком месте можно параметризировать при таком подходе?

    • @qa-proka4
      @qa-proka4  9 місяців тому +1

      Безумно просто все в плане параметризации, но увы, и так рассказал за такое время невозможное)

    • @strokan-o8m
      @strokan-o8m 9 місяців тому

      @@qa-proka4понимаю в любом случае спасибо большое!!!)А где можно узнать о ближайшем наборе в группу обучения? И будет ли она вообще?

    • @romankrieg817
      @romankrieg817 Місяць тому

      @@qa-proka4 Привет! Здесь применяется Jenkins? Вообще он нужен автотестировщику? Просто хочу научиться его использовать.

  • @kirillfedchenko
    @kirillfedchenko 9 місяців тому

    Привет) уровень качества у твоих видео зашкаливает, спс за годный контент!
    подскажи какую мышь используешь? клава слышно что маковская, а вот мышь по звуку как логитеч звучит(но это не точно))

    • @qa-proka4
      @qa-proka4  9 місяців тому

      Спасибо) Logi MX Master 3S

  • @shurikenoff
    @shurikenoff 6 місяців тому

    Ещё вопросик, при использовании lambda в endpoints PEP8 ругается:
    PEP 8: E731 do not assign a lambda expression, use a def
    Везде не рекомендуются такие конструкции, а в некоторых местах и вообще его называют антипаттерном, хотя они и действительно упрощают жизнь

  • @zubescu
    @zubescu 9 місяців тому

    оч полезное видео, супер. а что за приложуха для работы с буфером обмена, внизу экрана вылазит?

  • @БогданЧорний-э6ш
    @БогданЧорний-э6ш 9 місяців тому

    А если нет возможности записаться на курс, можно видео с уроков отдельно приобрести?)

    • @qa-proka4
      @qa-proka4  9 місяців тому

      Привет, к сожалению нет, так как весь курс я веду онлайн) Да и набор на текущий поток уже закрыт(

  • @Andrey-c2d
    @Andrey-c2d 9 місяців тому +1

    Подойдет такое построение проекта, если я пишу на JS + Playwright ?

    • @qa-proka4
      @qa-proka4  9 місяців тому

      В целом это же ООП, why not)

    • @thecomrad1677
      @thecomrad1677 8 місяців тому

      Гейство, но пойдет

  • @angry_fox
    @angry_fox 4 місяці тому

    Подскажите, в чем может быть проблема. При выполнении команды python3 -m venv venv - на win10 получаю ошибку "Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases."
    Пайтон установлен.

    • @qa-proka4
      @qa-proka4  4 місяці тому +1

      пишите просто python без тройки

    • @angry_fox
      @angry_fox 4 місяці тому

      @@qa-proka4 спасибо, помогло)

  • @waf9642
    @waf9642 9 місяців тому

    А что за расширение, что пейчарм тебе подсвечивает серым какой код ты хочешь написать?

    • @qa-proka4
      @qa-proka4  9 місяців тому

      В платном пайчарме AI Assistant

    • @IvanTsanga
      @IvanTsanga 6 місяців тому

      поставь себе gigacode - бесплатный аналог ai

  • @khafizovilnaz
    @khafizovilnaz 8 місяців тому

    подскажи пожалуйста что за тема стоит в pycharm?

    • @qa-proka4
      @qa-proka4  8 місяців тому

      Monokai Filter Machine

  • @doctorfalco1881
    @doctorfalco1881 6 місяців тому

    у всех такую ошибку выдает? 'code': 404, 'message': 'Could not find backlog task with "taskId": . Please set taskId of your current backlog task to "X-Task-Id" header'

    • @IvanTsanga
      @IvanTsanga 6 місяців тому

      я убрал x-task-id если,но все равно 401)

    • @bear3xl48
      @bear3xl48 5 місяців тому

      Нужно добавить строку "X-Task-Id": "API-3" в "headers.basic"

  • @shurikenoff
    @shurikenoff 6 місяців тому +4

    Имеется ряд вопросов:
    1) Тут получение токена - частный случай, т.к. это статическая переменная
    В большинстве случаев получение токена это метод, который возвращает его в ответе
    Как в этом случае быть? Делать фикстуру получения токена в которой будет сам метод получения токена, а затем прокидывать его в каждом тесте?
    Если так, то и вынос хедеров так же под вопросом, их нужно будет оставлять в api методе, чтобы можно было туда фикстуру приткнуть в тесте
    Или же не делать фикстуру, а staticmethod, который будет возвращаться токен, а в headers сделать глобальную переменную, в которую запихивать полученный токен и прокидывать в каждый хедер?
    2) Зачем делать базовые проверки (статус код и контент тайп) в api_users? А если нужно проверять негативные сценарии? Не логичнее вынести данные проверки в сам тест?
    3) По Payloads тоже непонятно, почему там один файл? У нас например имеется сервис Users и там много ручек, для каждой ручки будут свои пейлоады и соответственно свой файлик и класс с ними
    Мы в апишке под каждое тело будем свой api метод писать? Не логичнее его так же в тесте передавать?
    4) Зачем юзать model(**repsonse.json)? Он не работает с массивом, если тот приходит в ответе. Почему бы не юзать model.model_validate(response.json)?
    В общем api_users получился вообще не абстрактным каким-то... Поправь меня пожалуйста, если я не прав...

    • @gtfom8825
      @gtfom8825 5 місяців тому +2

      Похоже, что вопросы оказались слишком тяжёлыми для автора видео 😂

    • @in7hesky
      @in7hesky 9 днів тому

      Тогда отвечу я, раз автор не стал.
      1. Хедеры конечно лучше оставить в отдельном классе, как здесь, токен можно предварительно взять фикстурой autouse=true и scope="Session", затем передать классу результат, пусть только хедеры в класе будут методами, формирующими ответ, оформленными как проперти. Можно так сделать.
      2. Действительно не нужно зачастую это, а если нужно, то я юзаю кастомный декоратор, сверяющий респонс с переданной декоратору моделью. То же самое, кстати, и с аллюром. Ни аллюр, ни валидация не являются частью логики реквеста, поэтому их лучше выносить в декораторы.
      3. Мне нравится пейлоды оформлять в фикстуры, фикстуры класть в conftest-файлы в папки с соответствующими тестами. Метод действительно стоило писать с параметром payload, а не прикручивать все в логике метода.
      4. Тут ты, судя по всему, прав, но видимо автор оборачивает в класс только потому, что ему хочется видеть подсказки после точек.

  • @blackberry7873
    @blackberry7873 8 місяців тому

    когда пытаюсь запустить, выходит такая ошибка ERROR: file or directory not found: STAGE=prod, что можно сделать?

    • @qa-proka4
      @qa-proka4  8 місяців тому

      Какая команда запуска? Напишите пожалуйста о проблеме в тг: @aqa_python

  • @Alexey__Vlasov
    @Alexey__Vlasov 9 місяців тому +1

    Искал медь, а нашел золото, супер годно🔥🔥🔥

  • @PavelSavchuk-j5w
    @PavelSavchuk-j5w 6 місяців тому

    pip install pytest pydantic requests Faker python-dotenv allure-pytest