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更新實踐
- 如何統一接口測試的功能、自動化和性能測試用例