今天的越寫悅快樂系列文章爲大家帶來Selenium自動化測試入門的文章,希望大家喜歡。我們做過Web開發的小夥伴都知道Web應用大多數是基於BS架構的應用程序,也就是通過第三方瀏覽器訪問我們的服務或者產品,通過我們的服務或產品帶給用戶價值,提升用戶的使用體驗,構建更加健壯安全穩定的產品或服務,今天的分享我爲大家帶來如何使用Selenium開啓我們的自動化測試之路,爲我們的Web應用保駕護航。
開發環境
- Window 10.0.17763
- Java 8.0.191
- Chrome 73.0.3683
- IDEA 2018.3
Maven Version
Build Version
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
下載和配置ChromeDriver
我們可以從淘寶鏡像倉庫下載您所安裝的Chrome瀏覽器的對應版本,然後把下載的安裝包複製到Chrome的安裝目錄,下圖給出複製後的目錄結構示例。
構建步驟
添加依賴
編寫測試類
我們使用JUnit
來編寫一個簡單的測試類,來驗證Selenium
加載ChromeDriver
是否成功,直接附上我的示例代碼吧。
package com.zhuye.hbmqs;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class AppTest {
private WebDriver driver;
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
driver = new ChromeDriver();
// 最大化瀏覽器
driver.manage().window().maximize();
}
@Test
public void testSearchComponents() {
// 打開百度
driver.get("https://www.baidu.com/");
// 定位搜索框並輸入搜索項
driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("Vue Components");
// 點擊搜索結果鏈接
driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
try {
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@After
public void tearDown() {
driver.quit();
}
}
要點解析
- 通過ChromeDriver來操作頁面元素
- 通過findElement查找元素
- 通過By.xpath來定位元素
運行測試
執行方法testSearchComponents
後即可看到Selenium操作Chrome瀏覽器並輸入搜索關鍵字,暫時3秒後最後關閉瀏覽器。
參考
個人總結
最後總結一下,今天學習到的知識點,也就是如何通過Java API配合ChromeDriver來啓動Chrome瀏覽器並執行一個測試方法,也就是我們可以通過TestSuite完成多個功能的聯動測試,也可以從最簡單的單元測試入手,逐漸深入進行UI測試、接口測試、性能測試、集成測試等。充分利用Java API提供的相關功能操作你的瀏覽器,我相信這只是開始,我們會隨着學習的深入,接觸到更多操作頁面元素的方法,也讓你的測試水平更上一層樓,提升我們的軟件產品質量,爲客戶創造更大的價值。