結合EM快速解決複雜的配置問題(r4筆記第91天)
Web 應用程式的驗收測試常常涉及一些手工任務,例如開啟一個瀏覽器,並執行一個測試用例中所描述的操作。但是手工執行的任務容易出現人為的錯誤,也比較費時間。因此,將這些任務自動化,就可以消除人為因素。Selenium 可以幫助我們自動化完成驗收測試,通過構建更嚴格的測試,從而使軟體更為可靠也更易於維護。
Selenium 支援 Web 瀏覽器的自動化,它提供一套測試函式,用於支援 Web 自動化測試。函式非常靈活,能夠完成介面元素定位、視窗跳轉、結果比較等功能。支援多種瀏覽器、多種程式語言(Java、C#、Python、Ruby、PHP 等)、支援多種作業系統(Windows、Linux、IOS、Android 等)、開源免費。它主要由三個工具組成:WebDriver、IDE、Grid。
Selenium架構
在客戶端(client)完成 Selenium 指令碼編寫,將指令碼傳送給 Selenium 伺服器,Selenium 伺服器使用瀏覽器驅動(driver)與瀏覽器(browser)進行互動。
Selenium核心元件
- WebDriver 使用瀏覽器提供的 api 來控制瀏覽器,就像使用者在操作瀏覽器,不具有侵入性。
- IDE 是 Chrome 和 Firefox 擴充套件外掛,可以錄製使用者在瀏覽器中的操作。
- Grid 用於 Selenium 分散式,你可以在多個瀏覽器和作業系統執行測試用例。
環境準備
Python 自帶的 pip 工具安裝
- Python 版本
pip install selenium
複製程式碼
- Java 版本
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.14.0</version>
</dependency>
複製程式碼
- Python 版本
安裝 Selenium 的前提是擁有 Python 開發環境(推薦使用 PyCharm):
Selenium 是 Python 的第三方庫,可採用 PyCharm 自帶方式安裝。
選單欄 File → Settings 進入配置介面:
搜尋 Selenium → Install Package:
Selenium 支援多種瀏覽器,需要下載對應的瀏覽器版本的驅動,將瀏覽器驅動位置設定到環境變數。
各個瀏覽器驅動下載地址:chromedriver下載地址與webview自動化關鍵程式碼 3
在 Python 檔案中編寫程式碼,如果程式能夠調起相應瀏覽器,說明安裝成功。
- Java 版本
當使用 Maven 或 Gradle 等構建工具時,會自動載入依賴項。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.0.0</version>
</dependency>
複製程式碼
實戰演示
#匯入 Selenium 包
from selenium import webdriver
#建立一個 Chromdriver 的例項,Chrome()會從環境變數中尋找瀏覽器驅動
driver = webdriver.Chrome()
# 開啟 IE 瀏覽器
# driver = webdriver.Ie()
# 開啟 Firefox 瀏覽器
# driver = webdriver.Firefox()
複製程式碼
//匯入 Selenium 包
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AiceTest {
public static void main(String[] args) throws InterruptedException {
//建立一個 Chromdriver 的例項
WebDriver driver = new ChromeDriver();
}
}
複製程式碼
這段程式碼執行後會自動化的建立一個 Chrome 程序。
更多技術文章