Как написать фрэймворк для автоматизации тестирования PageObject

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

КОМЕНТАРІ • 78

  • @leshamarshal
    @leshamarshal  3 роки тому +10

    Есть ли темы по автоматизации, на которые вы хотите видеоурок ?? Пишите сюда, постараюсь реализовать

    • @rrahll
      @rrahll 3 роки тому +28

      Как минимум,
      CI/CD: запуск по расписанию, запуск после деплоя на продакшен и т.д.
      Docker.
      Думаю, полезно будет многим.

    • @sergeym.991
      @sergeym.991 3 роки тому +16

      Настройка CI/CD(git, настройка пайплайнов и тд) + Allure + RestAssured. Было бы круто)

    • @TheTarasovets
      @TheTarasovets 3 роки тому +7

      Jenkins(Piplines), Docker, Rest Assured

    • @ivanstrelka3448
      @ivanstrelka3448 3 роки тому +2

      Тестирование REST API через SPRING, и фреймворк с HTTP клиентом retrofit

    • @КристинаЗлобина-х2з
      @КристинаЗлобина-х2з 3 роки тому +2

      спасибо за урок! было бы круто, если бы смог немного расширить фреймворк и рассказать о пакете Steps, а также об обёртках для DropDown и CheckBox

  • @evernone2749
    @evernone2749 3 роки тому +8

    Лучший канал на Ютубе по тестингу и автоматизации!!!! Лучший!!!!
    Сдклай пожалуйста уроки по advanced селениум + java тестингу (может большой реальный проект с большим количеством тестов, может как запускать их с докером и кубернетесом), плюс было бы очень интересно и полезно посмотреть как тестировать API на java!! Очень жду этот урок

    • @RandomFromInternet419
      @RandomFromInternet419 3 роки тому

      Кстати, хорошая идея на вариации проверок. Тем более когда Лёша к Ксендзову на "Поток собеседования" залетел, то хотел про проверки послушать.

    • @DeathFreak3
      @DeathFreak3 3 роки тому

      Можешь глянуть у меня на канале пару видео по работе с VK API, на их основе можно и тесты написать. Хотя кому-то покажется проще сделать всё через Rest Assured..

  • @Логовотестировщика

    Вау!
    Все очень понятно! Переписал все то, что есть на видео

  • @rrahll
    @rrahll 3 роки тому +3

    Молодец! Обучай и наставляй новичков =)
    Успехов!

  • @АлександрАлександр-ш8г3п

    Мне казалось, что в page не должно быть assert. То есть там локаторы и метод получения кол-ва элементов. А в test assert того, что получили на странице с ожидаемым значением.

  • @zelogarno4478
    @zelogarno4478 3 роки тому +2

    Благодарю за отличный видос!!!

  • @crazybaber6433
    @crazybaber6433 Рік тому

    Очень полезный материал!

  • @Mr.J248
    @Mr.J248 3 роки тому +4

    Спасибо . Информация очень полезная для автоматизаторов. Заметил что нет хорошего курса по rest assured на русском. В основном индусы снимают

    • @leshamarshal
      @leshamarshal  3 роки тому +5

      Да. Есть в планах )

    • @delure8153
      @delure8153 3 роки тому

      @@leshamarshal вау! Ждём с нетерпением! 🔥

  • @kopala33
    @kopala33 Рік тому

    Отлично объясняете Спасибо.

  • @RandomFromInternet419
    @RandomFromInternet419 3 роки тому +3

    2:58 AspectJ существует. А AspectJ Weaver - нет. У меня из-за него тесты полетели. Поищу способ попроще по установке Allure. Потому что если есть способ complicated и simple, то в случае поломки легко найти причину при простой реализации.
    UPD: С индусами разобрался, что всё, под тегом насчет AspectJ не должно быть внутри , даже несмотря на то, что так написано в документации самого аллюра.
    Ставьте как обычно внутри и AspectJ с Аллюром заработают.

  • @delure8153
    @delure8153 3 роки тому +1

    Спасибо! Очень полезно!!

  • @crazyquality3351
    @crazyquality3351 3 роки тому +7

    Спасибо, очень полезно. По appium js было бы здорово

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

    very useful bro, thanks a lot

  • @cibofff
    @cibofff 3 роки тому

    Интересно. Спасибо.

  • @aleksanterikaansalo
    @aleksanterikaansalo 3 роки тому +1

    Я мельком глянул - в целом понятно если интересует именно фреймворк (я на C# учусь, не на Java), только вопрос - а первые шесть минут это как понимать? Мы в деревнях про такое не слыхивали.

  • @Lufton
    @Lufton 2 роки тому

    56:58 Всё правильно ты написал. Ожидалось 21 т.к. указал в методе, а по факту 20.

  • @Igor-uz3vn
    @Igor-uz3vn 3 роки тому

    Лёша спасибо за туториал! Хотелось бы увидеть в этом кейсе реализацию запуска тестов в определенном браузере юзая параметр в testng не правя switch, типа ну и конечно было бы круто это всё на новом Grid заранить)))

  • @RandomFromInternet419
    @RandomFromInternet419 3 роки тому +1

    Ура, Леша, спасибо за Пейдж Объекты!!
    А запрос на урок по автоматизации:
    TDD, то есть как селениумом вытаскивать значения из таблицы Excel-я. Много раз слышал о существовании этого.

    • @DeathFreak3
      @DeathFreak3 3 роки тому

      Почитай за Data Provider. Через него в тест передаются тестовые данные. А сами данные уже можно обрабатывать любой библиотекой или средствами языка.

  • @valeriisilvanovych9007
    @valeriisilvanovych9007 3 роки тому +3

    Урок хороший, но есть вопрос. Знаю что считается плохим тоном писать Assert в методах пэйджей. Их нужно писать в тестах, кто что думает по этому поводу ?

    • @DeathFreak3
      @DeathFreak3 3 роки тому

      Поддерживаю. Хотя если брать BDD подход, то там наверное лучше в методах (Action title).

  • @MoscowMyLife
    @MoscowMyLife Рік тому

    Здравствуйте. Есть ссылка на исходники?

  • @amazingseva1950
    @amazingseva1950 3 роки тому

    Можно рассказать подробнее про подключение allure для создания репортов?

  • @demonicon_666
    @demonicon_666 2 роки тому

    че то я не понял как вы используете testng ассерт не в тестовых методах. у меня ругается и даже принудительно не импортируется

  • @hdl917
    @hdl917 2 роки тому

    Добрый день. Ссылки не будет на исходники?

  • @bagzhansadvakassov1093
    @bagzhansadvakassov1093 2 роки тому

    Замечу что в TestNG есть такой глюк если оставить в названии теста или пакета "test" то может и не прогнаться. Далее предложил бы отказаться от локального драйвера в пользу WebDriverManager. Потом была проблема с запуском двух instance'ов браузера. Решилось путем добавления Singleton. Да и неплохо было бы выложить все в github.

  • @ГошаМузыков-ш9т
    @ГошаМузыков-ш9т 2 роки тому

    Подскажите, allure не подгружается.

  • @cibofff
    @cibofff 3 роки тому

    Подскажите, будет разбор от Вас Selenium 4?

    • @leshamarshal
      @leshamarshal  3 роки тому

      Может после реализа

  • @Ardishka
    @Ardishka Рік тому

    нужно заплатить за allure прежде чем использовать эти dependency?

  • @deniss8815
    @deniss8815 3 роки тому

    Спасибо, отличное видео. Добавь ссылку на репозиторий пожалуйста

  • @АлексейВасильев-м7т

    Повторил все за Лешей, почему-то билд не запускался. Начал копать, разбираться. Полностью пересобрал pom.xml (Чуть крыша не поехала), поменял версию Java (Мало ли), в конце концов переписал на свой лад все классы (Кроме констант) - и все равно мимо. Билд не запускается по причине "Иди в ж*опу". Потратил я на 3 вечера. И только в час ночи, на четвертый вечер я чисто случайно зашел в класс с константами и понял, что вместо url указан пустой String. Пара пара пам!😆

  • @vladislavrostovtsev8972
    @vladislavrostovtsev8972 3 роки тому

    Можно ли использовать json вместо xml для конфиг файла?

    • @leshamarshal
      @leshamarshal  3 роки тому

      На сколько я помню в testng только xml

    • @leshamarshal
      @leshamarshal  3 роки тому

      А , ну yaml ещё как вариант

  • @craciunmihail7445
    @craciunmihail7445 3 роки тому

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

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

    не очень понял зачем писать в BasePage какие то CommonActions по сути

  • @TheImperfect1234
    @TheImperfect1234 2 роки тому

    Добрый день! Только начинаю знакомиться с автоматизацией, но Ваши уроки это просто открытие, большое спасибо за такой качественный контент!
    Однако, столкнулся с проблемой "Error occurred during initialization of VM agent library failed to init: instrument" кто-нибудь знает как это фикситься? Пытался гуглить, но так и не получилось победить

  • @Ruslan-ps9rz
    @Ruslan-ps9rz 2 роки тому

    Можно плиз сделать такое же видео только с обновленными версиями плагинов и депенденсис потому что уже тяжело разобраться. ругается)))

  • @sferakok
    @sferakok 2 роки тому

    А можно файл pol.xml Готовый приложить. Чтобы все не переписывать)

    • @tweeth9940
      @tweeth9940 2 роки тому +1

      1.8.10
      2.20
      2.7.0
      1.8
      1.8
      UTF-8
      UTF-8
      testng.xml



      org.seleniumhq.selenium
      selenium-java
      3.141.59


      org.seleniumhq.selenium
      selenium-chrome-driver
      3.141.59


      io.qameta.allure
      allure-testng
      2.7.0


      org.testng
      testng
      6.14.3

  • @ИльяСтрунников-щ1е

    А ничего страшного что ни в одном из классов нет метода main?

  • @slavapronyakov5852
    @slavapronyakov5852 Рік тому

    👍

  • @LGXL_2010
    @LGXL_2010 Рік тому +1

    Шривт очень маленький!

  • @rainbowlife9901
    @rainbowlife9901 2 роки тому

    Требуется фрилансер
    - Задача работника: отвечать на сообщения в VK, просто пересылая готовый текст)
    - Зп/день: 200-3000₽
    - Иметь банковскую карту(СБЕР)
    - Всё зависит только от вашего желания работать!
    Всё точно без обмана, предоставляются доказательства.
    Пишите в лс

  • @k_ilya
    @k_ilya 2 роки тому

    Ругался maven при запуске.
    Пришлось дописывать в Pom.Xml всякое, пришёл к такому решению гуглом и сам не понял как:

    javax.xml.bind
    jaxb-api
    2.3.1


    org.slf4j
    slf4j-api
    1.7.5


    org.slf4j
    slf4j-log4j12
    1.7.5
    Assert удалось вынести в тест, не дело ему в методе страницы лежать.
    int countCards = productsPage.getCountCards();
    Assert.assertEquals(countCards, 6);
    Ну а в целом - огромное спасибо.
    Благодаря этому видео я наконец-то заимел чистый проект для написания тестов на джаве.
    С Python переходить на Java - такое себе удовольствие, а здесь за час объясняется как реализуется PageObject ладом.
    "Ладом" здесь имеет ключевой смысл. Потому что ущербный PageObject можно найти на статье хабра, повторить легче, а толку мало.
    Там и локаторы лежат где попало, базовых страниц и методов нет, короче от PageObject одно название, ещё и делано всё без TestNG, Surefire и Allure.
    Тем не менее я бы сброшу ссылку для тех, кому интересно посмотреть неполную реализацию, или тех, кому хочется заполучить задачу попроще: habr.com/ru/post/502292/

  • @IvanIvanov-li4ex
    @IvanIvanov-li4ex 2 роки тому

    Большое спасибо за видео! Но, пожалуйста, подскажите кто-нибудь. Делаю все ровно так, как показано в видео, но ловлю в итоге тонну ошибок, например:
    The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
    Command was cmd.exe /X /C ""C:\Program Files\Java\jdk-19\bin\java" -javaagent:C:\Maven/org/aspectj/aspectjweaver/1.8.10/aspectjweaver-1.8.10.jar -jar C:\Java_projects\pageObject\target\surefire\surefirebooter14418514840458547041.jar C:\Java_projects\pageObject\target\surefire 2023-01-28T13-51-40_507-jvmRun1 surefire15610657747929115751tmp surefire_07168796771743123838tmp"
    Error occurred in starting fork, check output in log
    Process Exit Code: 1
    И такую:
    Corrupted stdin stream in forked JVM 1. See the dump file C:\Java_projects\pageObject\target\surefire-reports\2023-01-28T13-51-40_507-jvmRun1.dumpstream
    И такие:
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20:test (default-test) on project pageObject: There are test failures.
    [ERROR]
    [ERROR] Please refer to C:\Java_projects\pageObject\target\surefire-reports for the individual test results.
    [ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
    [ERROR] The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
    [ERROR] Command was cmd.exe /X /C ""C:\Program Files\Java\jdk-19\bin\java" -javaagent:C:\Maven/org/aspectj/aspectjweaver/1.8.10/aspectjweaver-1.8.10.jar -jar C:\Java_projects\pageObject\target\surefire\surefirebooter14418514840458547041.jar C:\Java_projects\pageObject\target\surefire 2023-01-28T13-51-40_507-jvmRun1 surefire15610657747929115751tmp surefire_07168796771743123838tmp"
    [ERROR] Error occurred in starting fork, check output in log
    [ERROR] Process Exit Code: 1
    [ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
    [ERROR] Command was cmd.exe /X /C ""C:\Program Files\Java\jdk-19\bin\java" -javaagent:C:\Maven/org/aspectj/aspectjweaver/1.8.10/aspectjweaver-1.8.10.jar -jar C:\Java_projects\pageObject\target\surefire\surefirebooter14418514840458547041.jar C:\Java_projects\pageObject\target\surefire 2023-01-28T13-51-40_507-jvmRun1 surefire15610657747929115751tmp surefire_07168796771743123838tmp"
    [ERROR] Error occurred in starting fork, check output in log
    [ERROR] Process Exit Code: 1
    [ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:679)
    [ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:533)
    [ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:279)
    [ERROR] at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:243)
    [ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1077)
    [ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:907)
    [ERROR] at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:785)
    [ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
    [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
    [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
    [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    [ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    [ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    [ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    [ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
    [ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
    [ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
    [ERROR] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    [ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:578)
    [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
    [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
    [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
    [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
    [ERROR] at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
    [ERROR]
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    В чем может быть дело?

  • @aleksandr1243
    @aleksandr1243 3 роки тому

    Полезно, спасибо!