JUnit 5和Selenium基礎(一)
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更新實踐
- 如何統一介面測試的功能、自動化和效能測試用例
非技術文章精選
- 為什麼選擇軟體測試作為職業道路?
- 寫給所有人的程式設計思維
- 成為自動化測試的7種技能
- 如何在DevOps引入自動化測試
- Web端自動化測試失敗原因彙總
- 如何在DevOps引入自動化測試
- 測試人員常用藉口
- API測試基礎
- API自動化測試指南
- 未來的QA測試工程師