JUnit 5和Selenium –使用Gradle,JUnit 5和Jupiter Selenium设置项目
Selenium是一組支持瀏覽器自動化的工具和庫,主要用于Web應用程序測試。 Selenium的組件之一是Selenium WebDriver,它提供客戶端庫,JSON有線協(xié)議(與瀏覽器驅動程序進行通信的協(xié)議)和瀏覽器驅動程序。 Selenium WebDriver的主要優(yōu)點之一是,它受所有主要編程語言的支持,并且可以在所有主要操作系統(tǒng)上運行。
在本教程中,我將使用Gradle與Java,JUnit 5和Selenium Jupiter一起完成流行的TodoMVC應用程序的測試自動化項目的設置。 您將了解Selenium的PageFactory實現(xiàn)頁面對象模式。 您還將了解并行測試執(zhí)行,測試執(zhí)行順序,參數(shù)化測試等等。
關于本教程
您正在閱讀帶有Selenium WebDriver的JUnit 5的第一部分-教程 。
本教程中的所有文章:
- 從頭開始設置項目–使用JUnit 5和Jupiter Selenium進行Gradle
接下來的是:
- 使用Selenium內置的PageFactory實現(xiàn)Page Object Pattern
- 改善項目配置–并行執(zhí)行測試,測試執(zhí)行順序,參數(shù)化測試,AssertJ等
該教程的源代碼可以在Github上找到
先決條件
首先,Java JDK是必需的,并且必須將其安裝在系統(tǒng)中。 由于Java 11中的許??可更改,我將使用Java 12,并且我建議安裝OpenJDK而不是Oracle JDK。您還將需要Gradle來啟動一個新項目和您喜歡的Java IDE –我建議使用IntelliJ IDEA Community或Professional。 您也可以選擇安裝Git版本控制系統(tǒng)。
為了管理(安裝,更新,卸載)我建議使用軟件包管理器的工具。 如果您使用的是Windows,則可以使用Chocolately ,如果您使用的是macOS,則應使用Homebrew 。
綜上所述,在使用本文中的項目時,請確保已安裝以下工具并可供您使用:
- Java JDK –建議使用最新的Java JDK版本
- Gradle – 僅在設置項目時需要,建議使用Gradle 5.6+
- 建議您最喜歡的Java IDE – IntelliJ IDEA社區(qū)或專業(yè)人士
- Chrome瀏覽器–用于運行Selenium測試
- 終端仿真器–用于執(zhí)行shell命令,至少對Unix命令具有基本支持。 在Windows中,它可以是Cmder (帶有Git),在macOS中,我建議使用iTerm2
- Git –如果您想跟蹤源代碼歷史記錄
從頭開始設置項目
要創(chuàng)建一個基于Gradle的空項目,請打開您喜歡的終端并輸入:
mkdir junit5-selenium-todomvc-demo cd junit5-selenium-todomvc-demo gradle init --type basic --dsl groovy生成的項目是一個空的DIY項目-沒有插件,也沒有依賴項。 它帶有可以刪除的冗余settings.gradle :
rm settings.gradleJava和JUnit 5
對于使用JUnit 5的基本Java項目配置,將以下內容添加到build.gradle :
plugins { id 'java' } repositories { mavenCentral() } dependencies { testImplementation( 'org.junit.jupiter:junit-jupiter:5.5.1' ) } test { useJUnitPlatform() testLogging { events "passed" , "skipped" , "failed" } }上面的DSL配置了Gradle的Java插件( plugins ),為我們提供了使用Gradle構建基于Java的項目的功能。 該項目使用Maven存儲庫( repositories )下載在項目中聲明的項目依賴項( dependencies )。 將項目的測試實現(xiàn)依賴項設置為JUnit 5( testImplementation ),并調整任務( test )以確保在使用Gradle執(zhí)行測試時使用JUnit 5。
可以通過在終端中執(zhí)行Gradle構建來驗證配置:
./gradlew build構建成功:
BUILD SUCCESSFUL in 0s 1 actionable task: executed 1./gradlew命令運行Gradle Wrapper而不是全局Gradle發(fā)行版。 該項目是由Gradle Wrapper生成的,因此根本不需要執(zhí)行全局Gradle分發(fā)即可執(zhí)行任務和使用該項目。
注意:如果您正在尋找用于Gradle或Maven的JUnit 5項目模板,請簽出官方的JUnit 5 Samples Github存儲庫: https : //github.com/junit-team/junit5-samples
JUnit木星
為了簡化項目中Selenium WebDriver的配置,我將使用Selenium Jupiter,它是JUnit 5擴展,旨在簡化JUnit 5測試中對Selenium(WebDriver和Grid)的使用。 它是一個單獨的依賴項,需要添加到build.gradle依賴項列表中:
dependencies { testCompile( 'io.github.bonigarcia:selenium-jupiter:3.3.0' ) }Selenium Jupiter庫提供了與Selenium和Appium的集成。 Selenium Jupiter支持本地和遠程瀏覽器,Docker容器中的瀏覽器(需要Docker引擎)以及基于Selenide的瀏覽器配置。 它在內部使用WebDriverManager來管理瀏覽器驅動程序。
注意:不要驚嘆于您的項目中有很多庫。 Selnium Jupiter有很多依賴性。 要查看所有項目依賴項(包括傳遞性依賴項),請執(zhí)行以下命令: ./gradlew dependencies 。
目錄和項目文件
該項目創(chuàng)建時沒有Java源文件。 要創(chuàng)建初始目錄和第一個測試,可以執(zhí)行以下命令:
mkdir -p src/test/java/pl/codeleak/demos/selenium/todomvc touch src/test/java/pl/codeleak/demos/selenium/todomvc/SeleniumTest.javaSeleniumTest.java文件包含非常基本的測試,確認項目已正確配置。 該測試使用Selenium Jupiter提供的JUnit 5擴展,并且只有一個測試,沒有斷言:
package pl.codeleak.demos.selenium.todomvc; import io.github.bonigarcia.seljup.SeleniumExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.openqa.selenium.chrome.ChromeDriver; @ExtendWith (SeleniumExtension. class ) SeleniumTest { class SeleniumTest { @Test void projectIsConfigured(ChromeDriver driver) {} }運行測試
執(zhí)行Gradle構建應確認測試通過:
./gradlew build pl.codeleak.demos.selenium.todomvc.SeleniumTest > projectIsConfigured() PASSED BUILD SUCCESSFUL in 1s 3 actionable tasks: 2 executed, 1 up-to-date您可能已經(jīng)注意到,在執(zhí)行任務期間,Chrome瀏覽器已打開,然后關閉。 這僅確認所有驅動程序配置都是由Selenium Jupiter在后臺進行的(使用WebDriverManager庫)。 您還注意到此測試沒有設置和清除代碼。 相反,我們將 ChromeDriver實例直接注入到需要測試的地方。 Selenium Jupiter就是這樣使用JUnit 5擴展機制注入?yún)?shù)進行測試的。
創(chuàng)建Git存儲庫
項目的初始設置已完成。 在開始實際工作之前,現(xiàn)在可以將項目設置存儲在Git存儲庫中。 如果已安裝Git,請運行以下命令來創(chuàng)建新的存儲庫:
git init編輯.gitignore文件以排除要從存儲庫中跳過的文件和目錄:
.gradle .idea *.iml build out執(zhí)行以下命令以將文件添加并提交到存儲庫:
git add . git commit -m 'Initial project setup'將項目導入到IDE
請注意,到目前為止,所有工作都是在沒有IDE的情況下完成的(不是完全正確–我在IDE的幫助下創(chuàng)建的測試)。 通常,這是項目配置中非常重要的方面:始終使項目IDE獨立。 證明您可以使用單個shell命令執(zhí)行構建。 這將帶來收益–特別是當您要使用持續(xù)集成工具執(zhí)行構建時。
無論如何,使用IntelliJ,該項目將毫無問題地運行。 午餐,打開項目目錄,并將其導入為Gradle項目。
現(xiàn)在您已經(jīng)準備好開始開發(fā)測試并改善項目。 但是請記住,如果要進行任何配置更改,建議您不時使用IDE外部的終端對其進行測試。
下一步
在本教程的下一部分中,您將學習有關Page Object Pattern的一些基礎知識,以及如何使用Selenium的內置PageFactory實現(xiàn)它。
翻譯自: https://www.javacodegeeks.com/2019/09/junit-selenium-setup-project-gradle-jupiter-selenium.html
總結
以上是生活随笔為你收集整理的JUnit 5和Selenium –使用Gradle,JUnit 5和Jupiter Selenium设置项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓小视频软件(安卓小视频)
- 下一篇: linux结构体对齐(linux结构体)