1. 程式人生 > >JUnit 5和Selenium基礎(一)

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(WebDriverGrid)的使用。它是一個單獨的依賴項,需要新增到以下項的依賴項列表中build.gradle

dependencies {
  testCompile('io.github.bonigarcia:selenium-jupiter:3.3.0')
}

Selenium Jupiter庫提供了與SeleniumAppium的整合。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測試工程師