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

  Переглядів 30,577

Лёша Маршал

Лёша Маршал

2 роки тому

Фрэймворк для автоматизации тестирования. Если вы не знаете с чего начать, то начните с этого видео. Здесь я показываю основу стандратного фрэймворка, который в дальнейшем можно расширять и наслоевать необходимые вам дополнительные слои.
Применяем несолько паттернов программирования, включая Page Object
#автоматизациятестирования #фрэймворк #java #PageObject #ЛешаМаршал
⭐️ Хотите узнать от меня больше? Ознакомьтесь с этими ссылками:
1. Patreon - / leshamarshall
2. Telegram - t.me/leshmarshal
3. Boosty - boosty.to/leshamarshal
4. VK - leshamarshal

КОМЕНТАРІ: 76
@leshamarshal
@leshamarshal 2 роки тому
Есть ли темы по автоматизации, на которые вы хотите видеоурок ?? Пишите сюда, постараюсь реализовать
@rrahll
@rrahll 2 роки тому
Как минимум, CI/CD: запуск по расписанию, запуск после деплоя на продакшен и т.д. Docker. Думаю, полезно будет многим.
@sergeym.991
@sergeym.991 2 роки тому
Настройка CI/CD(git, настройка пайплайнов и тд) + Allure + RestAssured. Было бы круто)
@TheTarasovets
@TheTarasovets 2 роки тому
Jenkins(Piplines), Docker, Rest Assured
@ivanstrelka3448
@ivanstrelka3448 2 роки тому
Тестирование REST API через SPRING, и фреймворк с HTTP клиентом retrofit
@user-dj9uj3lw1e
@user-dj9uj3lw1e 2 роки тому
спасибо за урок! было бы круто, если бы смог немного расширить фреймворк и рассказать о пакете Steps, а также об обёртках для DropDown и CheckBox
@user-qw9uo4wo5p
@user-qw9uo4wo5p Рік тому
Вау! Все очень понятно! Переписал все то, что есть на видео
@zelogarno4478
@zelogarno4478 2 роки тому
Благодарю за отличный видос!!!
@rrahll
@rrahll 2 роки тому
Молодец! Обучай и наставляй новичков =) Успехов!
@delure8153
@delure8153 2 роки тому
Спасибо! Очень полезно!!
@kopala33
@kopala33 Рік тому
Отлично объясняете Спасибо.
@crazybaber6433
@crazybaber6433 11 місяців тому
Очень полезный материал!
@cibofff
@cibofff 2 роки тому
Интересно. Спасибо.
@aleksandr1243
@aleksandr1243 2 роки тому
Полезно, спасибо!
@Igor-uz3vn
@Igor-uz3vn 2 роки тому
Лёша спасибо за туториал! Хотелось бы увидеть в этом кейсе реализацию запуска тестов в определенном браузере юзая параметр в testng не правя switch, типа ну и конечно было бы круто это всё на новом Grid заранить)))
@evernone2749
@evernone2749 2 роки тому
Лучший канал на Ютубе по тестингу и автоматизации!!!! Лучший!!!! Сдклай пожалуйста уроки по advanced селениум + java тестингу (может большой реальный проект с большим количеством тестов, может как запускать их с докером и кубернетесом), плюс было бы очень интересно и полезно посмотреть как тестировать API на java!! Очень жду этот урок
@Game_and_Cinema_Review
@Game_and_Cinema_Review 2 роки тому
Кстати, хорошая идея на вариации проверок. Тем более когда Лёша к Ксендзову на "Поток собеседования" залетел, то хотел про проверки послушать.
@DeathFreak3
@DeathFreak3 2 роки тому
Можешь глянуть у меня на канале пару видео по работе с VK API, на их основе можно и тесты написать. Хотя кому-то покажется проще сделать всё через Rest Assured..
@crazyquality3351
@crazyquality3351 2 роки тому
Спасибо, очень полезно. По appium js было бы здорово
@Game_and_Cinema_Review
@Game_and_Cinema_Review 2 роки тому
Ура, Леша, спасибо за Пейдж Объекты!! А запрос на урок по автоматизации: TDD, то есть как селениумом вытаскивать значения из таблицы Excel-я. Много раз слышал о существовании этого.
@DeathFreak3
@DeathFreak3 2 роки тому
Почитай за Data Provider. Через него в тест передаются тестовые данные. А сами данные уже можно обрабатывать любой библиотекой или средствами языка.
@Lufton
@Lufton 2 роки тому
56:58 Всё правильно ты написал. Ожидалось 21 т.к. указал в методе, а по факту 20.
@Mr.J248
@Mr.J248 2 роки тому
Спасибо . Информация очень полезная для автоматизаторов. Заметил что нет хорошего курса по rest assured на русском. В основном индусы снимают
@leshamarshal
@leshamarshal 2 роки тому
Да. Есть в планах )
@delure8153
@delure8153 2 роки тому
@@leshamarshal вау! Ждём с нетерпением! 🔥
@talipoglu1836
@talipoglu1836 День тому
very useful bro, thanks a lot
@aleksanterikaansalo
@aleksanterikaansalo 2 роки тому
Я мельком глянул - в целом понятно если интересует именно фреймворк (я на C# учусь, не на Java), только вопрос - а первые шесть минут это как понимать? Мы в деревнях про такое не слыхивали.
@deniss8815
@deniss8815 2 роки тому
Спасибо, отличное видео. Добавь ссылку на репозиторий пожалуйста
@amazingseva1950
@amazingseva1950 2 роки тому
Можно рассказать подробнее про подключение allure для создания репортов?
@hdl917
@hdl917 Рік тому
Добрый день. Ссылки не будет на исходники?
@MoscowMyLife
@MoscowMyLife Рік тому
Здравствуйте. Есть ссылка на исходники?
@craciunmihail7445
@craciunmihail7445 2 роки тому
Покажите метод как подгружать хромдрайвео автоматически , не скачивая его на ПК и не указывая путь , так как когда выходит обновление допустим на хром , приходится заного качать хромдрайвер
@bagzhansadvakassov1093
@bagzhansadvakassov1093 Рік тому
Замечу что в TestNG есть такой глюк если оставить в названии теста или пакета "test" то может и не прогнаться. Далее предложил бы отказаться от локального драйвера в пользу WebDriverManager. Потом была проблема с запуском двух instance'ов браузера. Решилось путем добавления Singleton. Да и неплохо было бы выложить все в github.
@slavapronyakov5852
@slavapronyakov5852 9 місяців тому
👍
@Game_and_Cinema_Review
@Game_and_Cinema_Review 2 роки тому
2:58 AspectJ существует. А AspectJ Weaver - нет. У меня из-за него тесты полетели. Поищу способ попроще по установке Allure. Потому что если есть способ complicated и simple, то в случае поломки легко найти причину при простой реализации. UPD: С индусами разобрался, что всё, под тегом насчет AspectJ не должно быть внутри , даже несмотря на то, что так написано в документации самого аллюра. Ставьте как обычно внутри и AspectJ с Аллюром заработают.
@timurgertz9672
@timurgertz9672 2 роки тому
🙏
@user-jv7uj2vu3d
@user-jv7uj2vu3d 2 роки тому
У меня тоже не видит allure, как исправить?
@TheImperfect1234
@TheImperfect1234 Рік тому
Добрый день! Только начинаю знакомиться с автоматизацией, но Ваши уроки это просто открытие, большое спасибо за такой качественный контент! Однако, столкнулся с проблемой "Error occurred during initialization of VM agent library failed to init: instrument" кто-нибудь знает как это фикситься? Пытался гуглить, но так и не получилось победить
@cibofff
@cibofff 2 роки тому
Подскажите, будет разбор от Вас Selenium 4?
@leshamarshal
@leshamarshal 2 роки тому
Может после реализа
@user-jv7uj2vu3d
@user-jv7uj2vu3d 2 роки тому
Подскажите, allure не подгружается.
@Ardishka
@Ardishka Рік тому
нужно заплатить за allure прежде чем использовать эти dependency?
@valeriisilvanovych9007
@valeriisilvanovych9007 2 роки тому
Урок хороший, но есть вопрос. Знаю что считается плохим тоном писать Assert в методах пэйджей. Их нужно писать в тестах, кто что думает по этому поводу ?
@DeathFreak3
@DeathFreak3 2 роки тому
Поддерживаю. Хотя если брать BDD подход, то там наверное лучше в методах (Action title).
@demonicon_666
@demonicon_666 Рік тому
че то я не понял как вы используете testng ассерт не в тестовых методах. у меня ругается и даже принудительно не импортируется
@vladislavrostovtsev8972
@vladislavrostovtsev8972 2 роки тому
Можно ли использовать json вместо xml для конфиг файла?
@leshamarshal
@leshamarshal 2 роки тому
На сколько я помню в testng только xml
@leshamarshal
@leshamarshal 2 роки тому
А , ну yaml ещё как вариант
@user-dk6do2tf9v
@user-dk6do2tf9v Рік тому
Повторил все за Лешей, почему-то билд не запускался. Начал копать, разбираться. Полностью пересобрал pom.xml (Чуть крыша не поехала), поменял версию Java (Мало ли), в конце концов переписал на свой лад все классы (Кроме констант) - и все равно мимо. Билд не запускается по причине "Иди в ж*опу". Потратил я на 3 вечера. И только в час ночи, на четвертый вечер я чисто случайно зашел в класс с константами и понял, что вместо url указан пустой String. Пара пара пам!😆
@Ruslan-ps9rz
@Ruslan-ps9rz 2 роки тому
Можно плиз сделать такое же видео только с обновленными версиями плагинов и депенденсис потому что уже тяжело разобраться. ругается)))
@sferakok
@sferakok Рік тому
А можно файл pol.xml Готовый приложить. Чтобы все не переписывать)
@tweeth9940
@tweeth9940 Рік тому
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
@user-sl9qm6tf4i
@user-sl9qm6tf4i 2 роки тому
А ничего страшного что ни в одном из классов нет метода main?
@leshamarshal
@leshamarshal 2 роки тому
Это нормально )))
@LGXL_2010
@LGXL_2010 6 місяців тому
Шривт очень маленький!
@rainbowlife9901
@rainbowlife9901 Рік тому
Требуется фрилансер - Задача работника: отвечать на сообщения в VK, просто пересылая готовый текст) - Зп/день: 200-3000₽ - Иметь банковскую карту(СБЕР) - Всё зависит только от вашего желания работать! Всё точно без обмана, предоставляются доказательства. Пишите в лс
@k_ilya
@k_ilya Рік тому
Ругался 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 Рік тому
Большое спасибо за видео! Но, пожалуйста, подскажите кто-нибудь. Делаю все ровно так, как показано в видео, но ловлю в итоге тонну ошибок, например: 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 В чем может быть дело?
РАЗБОР вопросов с СОБЕСЕДОВАНИЙ / Автоматизация ТЕСТИРОВАНИЯ на JAVA
37:05
TeachMeSkills Школа программирования
Переглядів 21 тис.
Автотесты с нуля Selenide Java
55:54
Oleh Pendrak
Переглядів 27 тис.
Анна Трінчер - Бар за баром (Official Music Video)
02:38
Анна Трінчер
Переглядів 1,7 млн
Я провел 1000 собесов QA и вот что я понял
17:37
Лёша Маршал
Переглядів 36 тис.
Дженерики в Java. Проще чем кажется.
21:36
Игорь Мешалкин
Переглядів 11 тис.
QA || PageObject. Поэтапная инструкция.
7:44
Hillel IT School
Переглядів 30 тис.