API Автотесты с нуля Rest Assured

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ส.ค. 2024
  • Курсы по автоматизации тестирования с нуля - threadqa.ru/courses.html
    Написание автотестов и инфраструктуры с нуля на заказ - threadqa.ru/ В этом видео я рассказал про библиотеку Rest Assured и Pojo классы для тестирования Api. Автотесты написаны с нуля
    Boosty - boosty.to/threadqa
    Написание автотестов и инфраструктуры с нуля на заказ - threadqa.ru/
    Вторая часть видео, где разобрана работа с Rest Assured без создания Pojo классов и проверки напрямую в запросе - • API Автотесты с нуля R...
    Наш чат в телеграмме где можете общаться и задавать вопросы по автотестам - t.me/threadqa
    Поддержать автора - www.tinkoff.ru/cf/Lo21kq4VNG
    Ссылка на проект - github.com/penolegrus/TH-cam...
    00:00 - Начало
    01:26 - Добавление Rest Assured в проект
    03:15 - Обзор тест кейса №1 (Get запрос)
    06:13 - Обзор Json ответа и сайта помощника
    07:25 - Создание Pojo класса
    11:19 - Создание тестового класса
    12:46 - Обзор метода GET у библиотеки Rest Assured
    19:55 - Выполнение проверки для теста через Stream API
    26:58 - Обзор Specifications для Rest Assured
    34:21 - Обзор тест кейса №2 (Post запрос)
    36:06 - Pojo классы для Post запроса
    37:57 - Создание тестового метода
    43:56 - Обзор тест кейса №3 (Post запрос)
    51:09 - Обзор тест кейса №4 (Get запрос с сортировкой данных)
    55:54 - Обзор тест кейса №5 (Delete запрос)
    58:07 - Обзор тест кейса №6 (Put запрос)
    01:04:35 - Получение текущего времени в формате JSON
    01:07:35 - Заключение
    Моя группа в вк - threadqa
    Отправить свой тест кейс: epickonfetka@gmail.com
    Как написать Api автотесты с нуля
    Rest Assured Java тестовый класс
    Pojo паттерн

ความคิดเห็น • 177

  • @threadqa
    @threadqa  ปีที่แล้ว +40

    Ребят в связи с тем, что у многих возникают ошибки компиляции, нужно дополнительно установить библиотеку Jackson DataBind и создавать пустые конструкторы в Pojo классах. У меня такой ошибки нет, потому что в проекте установлен Selenide, а в нем уже встроен этот функционал
    Ошибка: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of UserData (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
    Ошибка: Cannot deserialize object because no JSON deserializer found in classpath.

    • @aleksandrivanov156
      @aleksandrivanov156 ปีที่แล้ว +3

      Сначала решил проблему (подтянул все твои библиотеки, и отключал по одной что-бы оставить только нужные), а потом почитал коммент)
      Не люблю я простые решения))

    • @Lazy4588
      @Lazy4588 ปีที่แล้ว +2

      решается добавлением jackson-databind и принудительным проставлением @JsonCreator @JsonProperty анотаций

    • @alexgordeeff
      @alexgordeeff ปีที่แล้ว

      @@aleksandrivanov156 ты не одинок)

    • @MoscowMyLife
      @MoscowMyLife ปีที่แล้ว +2

      Сделал, как рекомендуете, всё равно была ошибка (дошёл до 40 минуты +/- видео). Полез в документацию Jackson - там почитал. Потом пролистал вниз и читал все комменты и нашёл совет добавить Геттеры и Сеттеры. В итоге добавил библиотеку lombok к проекту + аннотации перед POJO-Классами @Getter @Setter и заработали тесты) Возможно я пропустил / не расслышал такую инфу в видео, что нужно добавлять и их тоже (Геттеры/Сеттеры).

    • @picknick7710
      @picknick7710 ปีที่แล้ว +2

      2 замечания. Первое - в начале видео когда добавляете rest-ashured в pom отображения того самого значка обновления не видно потому что на его месте месте ваше прекрасное лицо. Второе - не имейте привычки оставлять в видео то как вы едите/пьете это во первых не эстетично выглядит во вторых лично мне не приятно и не интересно что вы там пьете или едите.
      P.S. не упрОщённый вариант а упрощЁнный

  • @julia_19
    @julia_19 2 ปีที่แล้ว +55

    Кайф! Спасибо за полезнейший контент 🙌 Наконец-то RA, API тесты, да ещё и на русском, да простят меня индусы 😁

  • @romanbardachev9124
    @romanbardachev9124 2 ปีที่แล้ว +15

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

  • @alexstart6240
    @alexstart6240 6 หลายเดือนก่อน +2

    ТС - мега-круто! Все разжевано от и до! Большое спасибо за сам материал, и отдельное спасибо - за его такую подачу!

  • @yarov_me
    @yarov_me ปีที่แล้ว +3

    Очень классный урок. С нуля очень доходчиво объяснил, всё встало на свои места. Особенно понравились примеры реальных ситуаций тестирования функционала. Много смысла унёс от твоей работы со стримами. Но хотелось бы ещё руку набить.

  • @user-nx3gk2er2m
    @user-nx3gk2er2m 2 ปีที่แล้ว +4

    Огромное спасибо. Идея с курсом - отличная. Все объясняется в очень доходчивой форме, никаких вопросов не возникает.

  • @maxkatrenko8865
    @maxkatrenko8865 ปีที่แล้ว +3

    Было бы интересно посмотреть как написать полноценный фреймворк для апи тестирования. Как правильно все по пакетам разложить, как создать какой-то универсальный реквест метод, чтобы не писать каждый раз given() и тд. Большое спасибо, очень помог!

  • @user-fd3ei5fd1v
    @user-fd3ei5fd1v 6 หลายเดือนก่อน +3

    как можно поставить тысячи лайков разом?) Спасибо большое! Очень полезный материал, рада, что увидела.

  • @oleg._.
    @oleg._. 2 ปีที่แล้ว +3

    Огромное спасибо, за полезный контент. Долго искал материал по RA, но не думал, что попадется такой, после которого не останется вопросов.

  • @RandomFromInternet419
    @RandomFromInternet419 2 ปีที่แล้ว +1

    Комменты можно прямо с каналов индусов копипастить :)
    Спасибо! Прекрасно разъяснено! И работает сразу. Очень полезный тутор.

  • @YashchiK
    @YashchiK ปีที่แล้ว +5

    молодец. Тебе надо курсы платные преподавать. Очень здорово объясняешь
    ребята, если у кого то после добавления users.forEach(x->Assert.assertTrue(x.getAvatar().contains(x.getId().toString()))); и попытки запустить, выводит ошибку от jackson "java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `api.UserData` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)"
    Это значит, что нужно добавить пустой конструктор в класс UserData.
    После конструктора с параметрами public UserData(Integer id, String email, String first_name, String last_name, String avatar) добавьте public UserData(){} и всё заработает. Почему в видео работает без дефолтного конструктора - не понятно

    • @user-ej5uw3qf7j
      @user-ej5uw3qf7j ปีที่แล้ว

      тоже не понял почему в видосе без пустого работает

  • @user-bq8xk4mn5g
    @user-bq8xk4mn5g 2 ปีที่แล้ว +8

    Классно объясняешь! Очень приятно смотреть твои видео.

  • @user-ks6hu5di9x
    @user-ks6hu5di9x 2 ปีที่แล้ว +4

    Мимишность подачи зашкаливает)

  • @Anna-pe5vq
    @Anna-pe5vq 2 ปีที่แล้ว +4

    Спасибо за видео , очень доступно описано и показано!

  • @Hocorend
    @Hocorend ปีที่แล้ว +1

    Спасибо, завтра собес на мидла, а я в основном в кукумбере+ геркин тесты писал, на готовых шагах, изредко их изменяя. Твои уроки ёмкие и весьма помогли разобраться с написанием шагов под бэк. Фронт я собственно уже умею, поэтому усвоился урок легко, всё вполне аналогично

  • @user-lg8ts5rj9h
    @user-lg8ts5rj9h 10 หลายเดือนก่อน +3

    Для тех, у кого ругается последний тест: нужно создать вторую переменную regex1 и применить ее к currentTime, так как у меня например в currentTIme 11 символов пришлось убирать

  • @luckytima2315
    @luckytima2315 2 ปีที่แล้ว +5

    Супер целый час, кайфффф!! Главное продолжай , уверен что соберешь аудиторию ! ps. продолжаю ждать видосик по pom хотя бы 20 минутный ))

    • @threadqa
      @threadqa  2 ปีที่แล้ว +3

      спасибо)
      попозже засниму про него)

  • @asmr_codster
    @asmr_codster 2 ปีที่แล้ว +1

    Классно ведёшь урок, респект!

  • @user-eg2eg7xi3g
    @user-eg2eg7xi3g ปีที่แล้ว

    Спасибо за видос, очень качественно и без воды.

  • @crypto-frilanser
    @crypto-frilanser 6 หลายเดือนก่อน +1

    Хороший трюк со стаканом))) но надо было после приветствия, типа здрасти бла бла - глоток - а теперь начнем))

  • @lem0101
    @lem0101 11 หลายเดือนก่อน +1

    спасибо, сделайте еще видео с наиболее используемыми тестами API

  • @user-ol9iu4iy6i
    @user-ol9iu4iy6i 2 ปีที่แล้ว +1

    Огонь, и тут комментарий в поддержку, самый полезный контент по автоматизации на ютубе.

  • @lachinmehrali8130
    @lachinmehrali8130 ปีที่แล้ว

    Да прибудет с тобой сила!
    Спасибо большое!

  • @Roman-ey1bn
    @Roman-ey1bn 2 ปีที่แล้ว +2

    Очень классно! Все подробно и по делу! Желаю успехов каналу!

    • @threadqa
      @threadqa  2 ปีที่แล้ว +1

      Спасибо)

  • @user-qw9uo4wo5p
    @user-qw9uo4wo5p 2 ปีที่แล้ว +2

    Огромное благодарю! Очень полезно! Через два месяца буду Junior QA Automation, сейчас middle+ на большом проекте, но уйду в автоматизацию и посижу два месяца на джаве.

  • @Artur-is8oj
    @Artur-is8oj 2 ปีที่แล้ว +2

    Спасибо за качественный контент! В Рунете очень мало информации по Rest Assured

  • @swastest
    @swastest 2 ปีที่แล้ว +1

    Ты крутой! Не забрасывай канал! Отлично объясняешь!

  • @sergdeberzherak6264
    @sergdeberzherak6264 2 ปีที่แล้ว +1

    Спасибо за видос, ждем продолжения)

  • @alexgordeeff
    @alexgordeeff ปีที่แล้ว

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

  • @velrad1780
    @velrad1780 2 ปีที่แล้ว +1

    Отличный курс молодого бойца по Rest Assured 👍👍

  • @garrinchadossantos6381
    @garrinchadossantos6381 2 ปีที่แล้ว +9

    Спасибо за это видео, и в целом за то что делишься своими знаниями!)
    Вопрос - будет ли какое нибудь видео с автотестами апи, где ты уделяешь тому как проходить авторизацию, то есть использование токентов и разных методов в автотестах.
    Спасибо ;)

  • @sserjioss
    @sserjioss ปีที่แล้ว +4

    Спасибо тебе за твои видео, они реально очень информативны и понятны. Если есть возможность, сделай видос про Cyprees и использование в нем GraphQL. Спасибо тебе, не останавливайся!!!

  • @rokki777
    @rokki777 2 ปีที่แล้ว +1

    Спасибо дружище! подача на отлично. Респект!

  • @gorshchak
    @gorshchak 2 ปีที่แล้ว +2

    Спасибо за урок!

  • @user-mm4gs1yn1h
    @user-mm4gs1yn1h 2 ปีที่แล้ว +1

    Спасибо, тебя приятно слушать, продолжай.

  • @ivanstrelka3448
    @ivanstrelka3448 2 ปีที่แล้ว +3

    Огонь ждём ещё

  • @channel_tag
    @channel_tag ปีที่แล้ว +9

    1:05:30 количество символов после точки может получиться и больше 5, и меньше 5.
    Поэтому я предлагаю такую регулярку: String regex = "\\..*$";
    Это выражение найдет точку и вместе с ней выберет все символы до конца строки. А т.к точка в данном формате времени/даты одна, то не должно быть плавающих багов.

    • @channel_tag
      @channel_tag ปีที่แล้ว +1

      Вот, например, сколько символов может быть после точки:
      2022-10-18T11:19:41 *_.892960400Z_*
      2022-10-18T11:21:26. *_995Z_*

    • @picknick7710
      @picknick7710 ปีที่แล้ว

      Спасибо, очень помог твой комментарий !

    • @enered3944
      @enered3944 ปีที่แล้ว

      Спасибо, благодаря твоему комментарию у меня получилось выровнять формат времени, но у меня почему-то все равно тест падает из за несовпадения актуального и фактического результата и всегда отличие 2 минуты

    • @user-kl7sb9ng6v
      @user-kl7sb9ng6v ปีที่แล้ว +1

      (.{3}\..*)$ что бы наверняка.

    • @d.n.semenov
      @d.n.semenov 3 หลายเดือนก่อน

      @@user-kl7sb9ng6v Спасибо!

  • @daryak7738
    @daryak7738 2 ปีที่แล้ว +1

    Суперпонятно все рассказал!) Спасибо!

  • @Banksy529
    @Banksy529 2 ปีที่แล้ว +1

    Спасибо за видеоурок. Очень доходчиво и понятно. Подписаться)

  • @nastyavyaz
    @nastyavyaz 2 ปีที่แล้ว

    Спасибо за работу, полезное видео!

  • @svetlanamazhaykina6918
    @svetlanamazhaykina6918 2 ปีที่แล้ว +1

    Спасибо за Ваш труд! Коммент в поддержку канала

  • @IvanPetrov-td6dk
    @IvanPetrov-td6dk ปีที่แล้ว +1

    Спасибо, отличная обучалка.

  • @spin1613
    @spin1613 2 ปีที่แล้ว

    Однозначно Лайк + Подписка! Продолжай в том же духе! Не хватило только авторизации. Но за весь труд 10/10!

  • @drnbndd
    @drnbndd ปีที่แล้ว

    суперспасибо! то, что искала

  • @victorsk9238
    @victorsk9238 2 ปีที่แล้ว

    Спасибо большое за контент!

  • @user-dc1sm9fe2l
    @user-dc1sm9fe2l 2 ปีที่แล้ว

    Привет, спасибо за воркшоп, очень полезно. Хотел бы попросить снять следующе видео в котором ты бы рассказал как правильно строить архитектуру тестов (какие директории создавать), где и как хранить Bearer token. Ещё было бы круто если это все крутилось на gradle.

  • @user-ny6sz5yy6s
    @user-ny6sz5yy6s 2 ปีที่แล้ว +2

    Спасибо за видео!!!

  • @user-sd6st7wf9u
    @user-sd6st7wf9u 2 ปีที่แล้ว +2

    Спасибо за отличный контент

  • @user-mu6lt7kz7b
    @user-mu6lt7kz7b ปีที่แล้ว

    молодец парень!
    очень доступно

  • @First_black_List
    @First_black_List ปีที่แล้ว

    Добрый день. Запишите свой курс по чему угодно))) выложите на любом платном ресурсе. Я куплю!!!) Вам бы преподавать. Видео потрясающие

  • @user-ud8fu4bb9h
    @user-ud8fu4bb9h 2 ปีที่แล้ว +2

    Отличный Пивозавр !

  • @user-vu7dx4we8u
    @user-vu7dx4we8u ปีที่แล้ว

    шикарный видос

  • @elefteria8251
    @elefteria8251 ปีที่แล้ว

    Bolishoe spasibo!

  • @vitaly7196
    @vitaly7196 ปีที่แล้ว

    Олег, спасибо за контент, я понимаю почему так много внимания уделяется java, но фокус уводится от библиотеки playwright.Если будут силы было бы круто увидеть контент по этой теме.

  • @daignatov
    @daignatov 2 ปีที่แล้ว +7

    Привет! Подскажи пожалуйста алгоритм действий, когда в ресте дополнительно нужно прокидывать куки (токен авторизации, например)

  • @Ruslan-ps9rz
    @Ruslan-ps9rz 2 ปีที่แล้ว

    Видео понравилось спасибо. По самой джаве ничего не планируешь показать?))

  • @alisa1558
    @alisa1558 3 หลายเดือนก่อน

    Всё хорошо, но названия полей класса лучше всё же делать по code convention, а то, что не матчится с JSON полями, так это легко исправляется аннотациями.

  • @RafisSabitov
    @RafisSabitov 8 หลายเดือนก่อน

    Супер. Скиньте ссылку на 2 видео и если есть курс по Java, то тоже. Спс

  • @Roman-ey1bn
    @Roman-ey1bn 2 ปีที่แล้ว +7

    18:52 в консоль выводит, но лист пустой. ошибка на .getList. Если у кого так, нужно в классе сделать пустой конструктор

  • @Hikik0_m0ri
    @Hikik0_m0ri 2 ปีที่แล้ว +4

    Автор, ты везде создаешь конструкторы используя библиотеку Jacson для работы с json. (ИМХО GSON лучше). Но джексон не умеет нормально с ними (конструкторами) работать без аннотаций JsonProperty и JsonAutoDetect.
    У новичков будет много проблем и падающие тесты. И для решения надо пометить все аннотациями или сделать дополнительно пустой конструктор.
    Чисто мимолетом глянул ролик, может потом об этом говорилось. Если так, то сорян :)
    Ну и идеи на будущие видосы, не приучай новичков все параметры хранить в классе с тестами. Есть те же енамчики..хотя бы туда скидывать ошибки, почты и тп. И вызывать их через USER.EMAIL.
    Когда вся дата в одном месте за ней проще уследить. А не бегать в каждом тесте менять на новую почту после апдейта разрабами.

    • @Roch3z
      @Roch3z 5 หลายเดือนก่อน

      Ты лучший, GSON вылечил

    • @Hikik0_m0ri
      @Hikik0_m0ri 5 หลายเดือนก่อน +1

      @@Roch3z))рад, что помог мой коммент))

    • @indarsnab
      @indarsnab 2 หลายเดือนก่อน

      Лучший!

  • @tihonenko87
    @tihonenko87 11 หลายเดือนก่อน

    21:15 контейнс тут не подходит, если айди 1 а аватар с индексом 11, то проверка будет пройдена, но это не корректно, там через регулярку бы
    25:25 Второй пример можно через консумер сделать, в консумере извлечь что нужно и сделать ассерты

  • @oriyadesu
    @oriyadesu 2 ปีที่แล้ว +4

    спасибо за видео, очень понятно рассказываешь
    а будет видео еще с тест кейсами для rest assured?

    • @threadqa
      @threadqa  2 ปีที่แล้ว +2

      видео будет, разберу как без pojo классов работать с ответом сервера

    • @fromthegreatunknown
      @fromthegreatunknown 2 ปีที่แล้ว

      кажется мы с тобой в одном чате Ланит)) столько уже посмотрел уроков на эту тему, этот один из лучших

    • @oriyadesu
      @oriyadesu 2 ปีที่แล้ว

      @@fromthegreatunknown блин внатуре)))

  • @user-ux6sk5fd3h
    @user-ux6sk5fd3h 2 ปีที่แล้ว +1

    И добавлю, что курсов по Java очень много, есть и очень качественные. Разве что углубленное что-то, с нуля не думаю что актуально. Или что-то вроде решение каких-либо практических заданий.

  • @lazebnyikonstantin257
    @lazebnyikonstantin257 2 ปีที่แล้ว

    Спасибо, интересненько). У меня не парсился json пока не прописал gson в pom.xml. Не подскажешь почему я не могу запустить тест через дебагер? Постоянно Exception in thread "main"

  • @evgenytarasov3671
    @evgenytarasov3671 5 หลายเดือนก่อน

    Олег, привет! Большое спасибо за качественный контетн! Если не трудно, можешь подсказать, как быть, если изначально для POST запроса у нас есть огромный json объект? Как быть в таком случае? Какой способ лучше использовать для создания запроса?

  • @ivanstrelka3448
    @ivanstrelka3448 2 ปีที่แล้ว +3

    Нужно ли использовать специальные библиотеки для JSON типа GSON или Jackson? RA видимо и так успешно сериализует и десериализует объекты.

    • @threadqa
      @threadqa  2 ปีที่แล้ว +3

      привет, нужно Jackson устанавливать отдельно, но если есть Selenide в проекте, то дополнительно ничего не нужно

    • @ivanstrelka3448
      @ivanstrelka3448 2 ปีที่แล้ว +1

      @@threadqa понял, спасибо

  • @alexandrsergeevich1967
    @alexandrsergeevich1967 9 หลายเดือนก่อน

    время с сервера можно проверять в диапазоне "время отправки"< time < "время получения". и тогда не будет флаки теста

  • @romabulava899
    @romabulava899 3 หลายเดือนก่อน

    на каждый метод классы думаю не надо плодить, на сущности создавать и к ним билд приделать

  • @user-yr6ni4of1x
    @user-yr6ni4of1x ปีที่แล้ว +1

    Если кто то залез в комментарии ,чтоб посмотреть почему тест выдает ошибку и уже сломал голову не может понять в чем дело( как это было у меня)
    Попробуйте мой способ: создавайте в каждом классе дополнительно по пустому конструктору и все переменные класса я сделал публичными.
    Все работает на ура)

    • @threadqa
      @threadqa  ปีที่แล้ว

      В зекрепе сделал ответ на этот вопрос))

  • @user-du8rr3et3n
    @user-du8rr3et3n 2 ปีที่แล้ว +2

    Подскажи, пожалуйста, почему не используешь проверки самого rest assured, а используешь Assert. К примеру asserEquals можно заменить на equalTo, assetNotNull - на .body("$", notNullValue() и т.д.

    • @threadqa
      @threadqa  2 ปีที่แล้ว +4

      привет! у меня на канале есть вторая часть видео про Rest Assured, там я показал как делать проверки прямо в Rest Assured)

  • @user-of8se7qg6c
    @user-of8se7qg6c ปีที่แล้ว

    Добрый день, автор! Могли бы вы предоставить все зависимости из вашего проекта?

  • @Yukius
    @Yukius 7 หลายเดือนก่อน +1

    почему то когда добавляешь пустые конструкторы, у меня ошибки уходят

  • @oleholeh667
    @oleholeh667 ปีที่แล้ว

    Сделал по примеру как в видео в итоге при запуске с руки тест отрабатывает. А если через mvn clean test то почему то приходит пустой джисон.

  • @IvanPetrov-td6dk
    @IvanPetrov-td6dk ปีที่แล้ว

    Такой вопрос - когда мы пишем jsonPath в методе jsonPath().getList библиотеки Rest Assured, то путь к блоку data будет просто "data": jsonPath().getList ("data", UserData.class), а в методе read библиотеки jayway.jsonpath путь (jsonPath) к блоку data будет read("$.data"). Получается, jsonPath пишется не универсально, как, например, xpath, а для каждой библиотеки по-своему?

  • @enered3944
    @enered3944 ปีที่แล้ว +1

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

  • @evgeniymoroz8242
    @evgeniymoroz8242 2 ปีที่แล้ว +2

    Привет. Как ты учился использовать Rest Assured? В официальной документации метод jsonPath используется всего в двух местах и несколько иначе, чем ты показываешь в видео. У тебя всё выглядит логичнее, чем в доке.

    • @threadqa
      @threadqa  2 ปีที่แล้ว +3

      привет, я без документации делал
      просто интуитивно по названию метода)

    • @evgeniymoroz8242
      @evgeniymoroz8242 2 ปีที่แล้ว +2

      @@threadqa а как понимаешь, что за чем должно идти? Как научиться пользоваться фреймворком без документации? И как ты понял, что удобнее сделать файл спецификации и pojo-классы?

  • @adrahmanbeckmyrzaev3001
    @adrahmanbeckmyrzaev3001 2 ปีที่แล้ว

    Подскажите, почему на 18-й минуте не видно в консоле debagger?

  • @IvanPetrov-td6dk
    @IvanPetrov-td6dk ปีที่แล้ว

    16:36 тело обязательно извлекать? Я пробовал без body() - всё работает. body() же в разных местах цепочки можно вызывать. В body() до вызова extract() указывается условие для проверки, которое мы хотим проверить в ответе, правильно? А для чего вызывается body() после extract(), если и без него всё работает? Если в этом месте у body() указать условие, то оно подчёркивается красным, в этом месте у body стоит expected 0 arguments.

  • @alice_mor
    @alice_mor 9 หลายเดือนก่อน

    У меня вообще всё не так (как обычно), жаль скрин не приложить.
    Парка java не зеленая, нет возможности создать Packege, вместо создания класса - создание java class diagram, файл формата java тоже нет возможности создавать, только просто файл и вручную задавать формат. Про то как всё происходит в RegresTest я вообще молчу(
    Не понимаю почему так(
    Но рассказываете очень понятно, спасибо.

  • @mlpplgip
    @mlpplgip 6 หลายเดือนก่อน

    Подскажите какие dependencies у вас кроме rest-assured

  • @sergeygusev7472
    @sergeygusev7472 9 หลายเดือนก่อน

    Какую библиотеку изучать для автоматизации api на c#?

  • @user-ss9oi9cn9o
    @user-ss9oi9cn9o หลายเดือนก่อน

    Всем привет, все получается, но не понимаю как в SINGLE USER (/api/users/2) достать значения чисто из "data". Получается, если создавать класс root, data and support и уже потом извлекать значения из "data". А можно как-то обойтись ТОЛЬКО созданием класса с переменными для "data" без root и support? В самом первом примере автор так сделал, только там был список "data", а у меня только один
    UPD: забавно, что через минуту догадался)
    SingleUser response = UserMethods.getUser().then().extract().jsonPath().getObject("data", SingleUser.class);
    в итоге для такого json нужен getObject("путь", класс для определения переменных);

  • @Banksy529
    @Banksy529 2 ปีที่แล้ว +2

    Сделал все, как ты показал в видео, но почему то на примере с 18 минуты выдало ошибку
    "java.lang.IllegalStateException: Cannot deserialize object because no JSON deserializer found in classpath. Please put Jackson (Databind), Gson, Jackson, or Yasson in the classpath."
    Не подскажешь с чем может быть она связанна? Не понравился ему класс UserData я как понял, но не понял почему

    • @threadqa
      @threadqa  2 ปีที่แล้ว +2

      Привет, нужно добавит библиотеку jackson databind к проекту

    • @Banksy529
      @Banksy529 2 ปีที่แล้ว

      @@threadqa спасибо большое

    • @vladb8675
      @vladb8675 2 ปีที่แล้ว

      @@threadqa Олег, а как идея сама понимает, что нужно использовать эту зависимость? Ведь никаких импортов пакетов в тестовом классе мы не делаем (и в pojo-классе тоже!), и не создаём условный Gson gson = new Gson(); ?

    • @user-jg3lt8nz9k
      @user-jg3lt8nz9k 2 ปีที่แล้ว

      @@threadqa добавила библиотеку, теперь такая ошибка
      java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `api.UserData` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

    • @user-jg3lt8nz9k
      @user-jg3lt8nz9k 2 ปีที่แล้ว

      все, поняла, добавила пустой конструктор и все заработало, спасибо

  • @alexbro5702
    @alexbro5702 2 ปีที่แล้ว +2

    Вопрос, зачем, для тестирования апи (если это не юнит тесты) использовать что-либо кроме постмана?

    • @threadqa
      @threadqa  2 ปีที่แล้ว +2

      Привет, кодом можно гораздо больше сделать чем через постман)

  • @user-zr2vp4zq3e
    @user-zr2vp4zq3e ปีที่แล้ว

    НЕ могу понять, почему выводит ошибку:
    io.restassured.path.json.exception.JsonPathException: Failed to parse the JSON document
    Хотя всё делаю точь-в-точь

  • @user-hl2mf5yk6h
    @user-hl2mf5yk6h ปีที่แล้ว

    После запуска теста
    Выбивает ошибку Failed to parse the JSON document
    Что может быть?

  • @gioeffectpro
    @gioeffectpro ปีที่แล้ว

    Ребята когда вам прилетает какая-то коллекция , всегда проверяйте , что она не пустая))) а то получите false positive test

  • @YashchiK
    @YashchiK ปีที่แล้ว

    вопрос. А если мне нужен будет не только содержащийся массив "data", а еще и те данные, которые помимо него есть.
    Что мне при этом нужно строку с extract написать?

    • @threadqa
      @threadqa  ปีที่แล้ว

      Привет, тогда можно просто extract.as(ClassName.class);

    • @YashchiK
      @YashchiK ปีที่แล้ว

      @@threadqa а ClassName должен при этом быть с тремя вложенными классами, как POJO выдает? Типа
      public class ClassName{
      class Datum{}
      class Root{}
      class Support{}
      }

    • @threadqa
      @threadqa  ปีที่แล้ว

      @@YashchiK да, ты извлекаешь полный ответ сервера в большой поджо класс, которые в себе должен содержать вложенные классы

  • @user-fu2qs6eo8c
    @user-fu2qs6eo8c 2 ปีที่แล้ว

    учусь автоматизировать, еще мало понимаю, делаю все в точности как в ролике, как указано в 18 минуте видео запускаю ReqresTest но в консоли вылазит ошибка E:\Auto learning\Auto 1\src\test\java\API\ReqresTest.java:12:5
    java: illegal start of expression и что дальше делать не знаю(

    • @threadqa
      @threadqa  2 ปีที่แล้ว +1

      привет, скорее всего что то не указал
      посмотри у меня проект на гитхабе в описании под видео

    • @user-fu2qs6eo8c
      @user-fu2qs6eo8c 2 ปีที่แล้ว

      @@threadqa Да спасибо, на тот момент я только начал обучение и просто забыл ; поставить). Теперь стоит задача сделать синхронный тест с 2 запросами, где для 2-го запроса будет использоваться тело ответа из первого запроса. Буду благодарен если подскажешь в каком видео можно это подсмотреть (с меня лайки и комменты)

  • @luckytima2315
    @luckytima2315 6 หลายเดือนก่อน

    вот что раздражает в видео по АТ, то что они быстро усторевают, дольше сидишь копаешься, в том что, что-то вырезали или надо какие-то зависимости тянуть что бы все работало ...

    • @threadqa
      @threadqa  6 หลายเดือนก่อน

      Популярная ошибка есть в зекрепе в комментариях

  • @IvanPetrov-td6dk
    @IvanPetrov-td6dk ปีที่แล้ว

    47:08 Почему для класса unSuccessReg в цепочке given() отсутствует when()?

    • @threadqa
      @threadqa  ปีที่แล้ว +1

      методы when() и and() это необязательный синтаксический сахар и используется просто, чтобы отделить визуальную логику строения запроса)

    • @IvanPetrov-td6dk
      @IvanPetrov-td6dk ปีที่แล้ว

      @@threadqa А) Получается, в создании экземпляра класса успешной регистрации тоже можно было их не использовать?

    • @mlpplgip
      @mlpplgip 6 หลายเดือนก่อน

      Что делать если в given () просит вписать параметры, не получается как у вас написать

  • @ElenaChebysheva
    @ElenaChebysheva 9 หลายเดือนก่อน

    Сделай плиз разбор для GraphQL

  • @drakoraxab7363
    @drakoraxab7363 ปีที่แล้ว

    Спасибо за видео, очень помогло. По Вашему мануалу все получилось, но у меня по моему тесту есть вот такая проблема..
    мне в body надо передать такое
    "headers":{"accept":"application/json","WAREHOUSE-TEST":"1"},
    и вот куда бы я его не писал, и в поджо класс запроса и в сабо body теста и в спеку везде отдает одну и ту же ошибку
    error": {
    "message": "Validation error.",
    "additional": {
    "fieldName": "WAREHOUSE-TEST",
    "message": "Header parameter is not passed.",
    "bindings": [
    Помогите плиз что я не так делаю( Если я запрос передаю весь стрингой тогда проходит все без ошибок и ответ правильный. Заранее спасибо.

    • @threadqa
      @threadqa  ปีที่แล้ว

      Привет, тебе это в заголовки надо помещать в блок headers

    • @drakoraxab7363
      @drakoraxab7363 ปีที่แล้ว

      @@threadqa Привет, забыл отписать, там как раз в заголовке и не подходило надо было именно в бади передать. Но в итоге проблема была в том что я не правильно импорт подтянул для @JsonProperty и поэтому не видело имени которое я присваивал. Сделал все с нуля и все заработало.
      Спасибо большое за Ваши уроки.

  • @user-ik8qh7ov1o
    @user-ik8qh7ov1o ปีที่แล้ว

    спасибо за видео.Но валится эта ошибка Cannot deserialize object because no JSON deserializer found in classpath. Please put Jackson (Databind), Gson, Jackson, or Yasson in the classpath

    • @threadqa
      @threadqa  ปีที่แล้ว +1

      Установи библиотеку Jackson Databind

    • @user-ik8qh7ov1o
      @user-ik8qh7ov1o ปีที่แล้ว

      @@threadqa спасибо !

  • @DakarofArmenia
    @DakarofArmenia 2 ปีที่แล้ว

    23:00 Я написал другой окончания имаила все равно работало

  • @nadinspb
    @nadinspb ปีที่แล้ว

    зачем примитивы менять на Object? (int vs Integer)

  • @GPT3.5
    @GPT3.5 ปีที่แล้ว

    А вдруг кто ответит) Подскажите кто как решил проблему запуска api тестов параллельно на rest assured ?

    • @threadqa
      @threadqa  ปีที่แล้ว +2

      привет, а зачем паралельно апи тесты, они ведь и так быстро идут)
      плюсом еще можешь блокировку поймать за слишком частое обращение к серверу

    • @tomadeira824
      @tomadeira824 ปีที่แล้ว

      @@threadqa а как быть в случаях, когда количество апи тестов переваливает за 10к?

  • @live_form
    @live_form 2 ปีที่แล้ว

    (Y)

  • @smarthedgehog3185
    @smarthedgehog3185 ปีที่แล้ว

    стримом мап в инт лист
    потом ещё раз стримом сорт?
    Эмммм.... можно было сразу после map(...).sorted().collect(...)
    Для того стримы и есть чтобы так работать с коллекциями.

  • @shpil8085
    @shpil8085 2 ปีที่แล้ว +2

    Олег, большое тебе и IT-шное спасибо за видео с примерами по автоматизации тестирования! \о/ У меня не одного вижу все тесты сыпались с ошибками хоть я и выполнял всё точь-в-точь как по видео. Мне какого-то хрена помогла библиотека "lombok" (в pom.xml ->
    org.projectlombok
    lombok
    1.18.24
    ). Далее в классах где писались конструктора и геттеры нужно обязательно добавить 3 аннотации (@Data
    , @AllArgsConstructo, @NoArgsConstructor) выглядело так:
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class SuccessReg {
    private Integer id;
    private String token;
    }
    Эта библиотека сама создает конструктора, геттеры, сеттеры и т.п. Они будут, но они явно не прописаны. И все тесты перестали ругаться на, то что нихрена не сериализуется.

    • @threadqa
      @threadqa  2 ปีที่แล้ว +1

      Привет, спасибо)
      Про ломбок знаю библиотеку, она очень удобная