Gradle、JUnit 5和Jupiter Selenium
Selenium是一組支持瀏覽器自動化的工具,主要用於Web應用程序測試。Selenium的組件之一是Selenium WebDriver,它提供客戶端庫,JSON有線協議(與瀏覽器驅動程序進行通信的協議)和瀏覽器驅動程序。Selenium WebDriver的主要優點之一是,它幾乎支持所有主要編程語言,並且可以在所有主流操作系統上運行。
在本文中,將使用Gradle與Java,JUnit 5和Selenium Jupiter一起完成流行的TodoMVC應用程序的測試自動化項目的設置。您將了解Selenium的PageFactory實現頁面對象模式。您還將了解並行測試執行,測試執行順序,參數化測試等等。
測試准備
首先,Java JDK是必需的,並且必須將其安裝在系統中。我建議安裝OpenJDK而不是Oracle JDK。您還需要Gradle來啟動一個新項目和您喜歡的Java IDE –建議使用IntelliJ IDEA Community或Professional,當然也少不了git。
開始之前,確保已安裝以下工具並可供您使用:
- Java JDK:建議使用最新的Java JDK版本
 - Gradle:僅在設置項目時需要,建議使用Gradle 5.6+
 - Java IDE:IntelliJ IDEA
 - Chrome瀏覽器:用於運行Selenium測試
 - 終端:用於執行shell命令,至少對Unix命令具有基本支持
 - Git:跟蹤源代碼歷史記錄
 
從頭開始
要創建一個基於Gradle的空項目,請打開終端並輸入:
mkdir demo
cd demo
gradle init --type basic --dsl groovy
 
         
         
        生成的項目是一個空的DIY項目:沒有插件,也沒有依賴項。它帶有settings.gradle可以刪除的冗余:
rm settings.gradle
Java和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中聲明的項目依賴項()。將項目的測試實現依賴項設置為JUnit 5(testImplementation),並調整任務(test),以確保在使用Gradle執行測試時使用JUnit 5。
可以通過在終端中執行Gradle構建來驗證配置:
./gradlew build
構建成功:
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
 
        ./gradlew命令運行Gradle Wrapper而不是全局Gradle發行版。該項目是由Gradle Wrapper生成的,因此根本不需要執行全局Gradle分發即可執行任務和使用該項目。
JUnit Jupiter
為了簡化項目中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有很多依賴性。要查看所有項目依賴項(包括傳遞性依賴項),請執行以下命令:
./gradlew dependencies。 
目錄和項目文件
該項目創建時沒有Java源文件。要創建初始目錄和第一個測試,可以執行以下命令:
mkdir -p src/test/java/demo/selenium/todomvc
touch src/test/java/demo/selenium/todomvc/SeleniumTest.java
 
        該SeleniumTest.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)
class SeleniumTest {
 
    @Test
    void projectIsConfigured(ChromeDriver driver) {}
}
 
        運行測試
執行Gradle構建應確認測試通過:
./gradlew build
 
demo.selenium.todomvc.SeleniumTest > projectIsConfigured() PASSED
 
BUILD SUCCESSFUL in 1s
3 actionable tasks: 2 executed, 1 up-to-date
 
        - 鄭重聲明:文章首發於公眾號“FunTester”,禁止第三方(騰訊雲除外)轉載、發表。
 
技術類文章精選
- java一行代碼打印心形
 - Linux性能監控軟件netdata中文漢化版
 - 性能測試框架第二版
 - 如何在Linux命令行界面愉快進行性能測試
 - 圖解HTTP腦圖
 - 將swagger文檔自動變成測試代碼
 - 基於java的直線型接口測試框架初探
 - Selenium 4.0 Alpha更新日志
 - Selenium 4.0 Alpha更新實踐
 - 如何統一接口測試的功能、自動化和性能測試用例
 
