新版的Selenium4 IDE,更強,更全,更好用。
在之前的文章我介紹了,Selenium4.0的更新路線,其中提到了Selenium IDE的發展。
- Selenium 4 Java的最佳測試框架
- Selenium 4.0 Alpha更新日志
- Selenium 4.0 Alpha更新實踐
- JUnit 5和Selenium基礎(一)
- JUnit 5和Selenium基礎(二)
- JUnit 5和Selenium基礎(三)
Chrome的Selenium IDE支持現已可用。可以從以下網址下載它:https://selenium.dev/selenium-ide/
眾所周知,Selenium IDE是一種記錄和回放工具。現在它將具有以下更豐富和高級的功能:
- 新的插件系統。任何瀏覽器都可以輕松插入新的
Selenium4 IDE
。您將能夠擁有自己的定位器策略和Selenium IDE插件。
新的CLI
運行器。它將完全基於NodeJS
,而不是基於HTML
的舊運行器,並將具有以下功能: WebDriver
播放。新的Selenium4 IDE
運行程序將完全基於WebDriver
。- 並行執行。新的CLI運行器還將支持並行測試用例執行,並將提供有用的信息,例如花費的時間,通過和失敗的測試用例。
主角Selenium4 IDE
早期的測試人員通常會避免使用Selenium IDE等記錄和重播工具進行自動化測試,而寧願選擇使用Selenium Webdriver
,WebDriverIO
,Cypress
等腳本框架。畢竟,為什么不使用這些工具,事實證明它們是更有效,對測試的幫助更多!
盡管Selenium IDE提供了易用性,但它仍然存在很多問題,它不支持跨瀏覽器測試,運行並行測試等等。這就是原因,當Selenium IDE的開發於2017年停止更新時,許多測試人員都對Selenium IDE死亡並不感到惋惜。
但是,隨着Selenium4 IDE再次受到關注並且其使用率逐漸增加,這種情況最近有所改變。原因是Selenium4 IDE克服了以前的局限性,現在支持跨瀏覽器測試
、並行測試
、腳本注入
、debug調試
、CI/CD
等等!
Selenium IDE歷史回顧
Selenium IDE於2006年推出,是一種用於開發Selenium測試用例的記錄和重播工具。Selenium IDE
易於上手,因為不需要任何特殊設置和基礎。要開始使用Selenium IDE進行Selenium
測試自動化,只需要為相應的瀏覽器安裝擴展(或附加組件)。Selenium IDE
提供了一個GUI,用於記錄與網站的交互。
盡管Selenium IDE先前僅適用於Firefox,但現在也適用於Chrome。Selenium IDE的最新版本是3.17.0。可以使用下面的鏈接下載Selenium IDE的Chrome和Firefox擴展。
- Selenium IDE的Chrome擴展:https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd?hl=en
- Selenium IDE的Firefox插件:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
安裝擴展后,就可以開始記錄測試。與網站的交互被記錄並歸類為以下幾類:命令、目標對象、值、說明(可選)。
Selenium4 IDE的主要功能
Selenium4 IDE是一個易於使用的工具,可提供即時反饋,並可以使用Selenium IDE的SIDE文件
(或命令行)運行器在任何瀏覽器+操作系統組合上運行測試。
以下是一些關鍵功能:
- 執行測試(和測試套件):Selenium4 IDE可以執行特定的測試或包含一組測試的完整測試套件。
- 跨瀏覽器測試:它可以用於自動瀏覽器測試,因為可以使用
SIDE文件
運行器執行跨瀏覽器測試。 - 調試:設置斷點並暫停異常,可以很容易地從
IDE
本身調試測試。 - 豐富的命令集:
Selenium4 IDE
支持許多命令,這些命令可用於處理斷言、插入腳本、創建循環等。 - 邏輯控制:Selenium4 IDE具有廣泛的命令集,可啟用控制流結構。
if
、if..else
、while
等命令有助於從IDE
執行條件判斷的測試。 - 測試用例重用:運行命令使您可以在另一個測試用例(或測試套件)中重用特定的測試用例。
Selenese
命令的分組:Selenium4 IDE支持Selenese
命令(或Selenium
命令集)的分組,可以運行測試,一系列Selenese
命令構成一個測試腳本。- 輕松修改和比較測試用例–使用Selenium4 IDE創建的測試腳本存儲為
JSON
文件。這樣可以輕松比較,修改和檢查測試。
下面顯示了我們的Selenium4 IDE教程錄制了一個使用必應搜索FunTester的教程,隨手點擊一個鏈接進去。
{
"id": "ab514091-68ca-4b4c-a232-587a0b82fcaa",
"version": "2.0",
"name": "FunTester",
"url": "https://cn.bing.com",
"tests": [{
"id": "e34fd206-9ab8-4a6c-a543-0f80d1ba3fe9",
"name": "FunTester",
"commands": [{
"id": "92e8a427-e37e-4c6b-88c4-718d4e6c606e",
"comment": "",
"command": "open",
"target": "/",
"targets": [],
"value": ""
}, {
"id": "780adf28-4694-4c22-bfd1-74e09bf80775",
"comment": "",
"command": "setWindowSize",
"target": "1680x1027",
"targets": [],
"value": ""
}, {
"id": "2d8284e8-8475-4d75-9740-b407d6317b95",
"comment": "",
"command": "click",
"target": "id=sb_form_q",
"targets": [
["id=sb_form_q", "id"],
["name=q", "name"],
["css=#sb_form_q", "css:finder"],
["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
["xpath=//input", "xpath:position"]
],
"value": ""
}, {
"id": "ddd0e97d-6474-4a3e-a260-02f3a573f84f",
"comment": "",
"command": "type",
"target": "id=sb_form_q",
"targets": [
["id=sb_form_q", "id"],
["name=q", "name"],
["css=#sb_form_q", "css:finder"],
["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
["xpath=//input", "xpath:position"]
],
"value": "FunTester"
}, {
"id": "959e1353-de22-4997-9b26-3ed02a55d3d6",
"comment": "",
"command": "sendKeys",
"target": "id=sb_form_q",
"targets": [
["id=sb_form_q", "id"],
["name=q", "name"],
["css=#sb_form_q", "css:finder"],
["xpath=//input[@id='sb_form_q']", "xpath:attributes"],
["xpath=//form[@id='sb_form']/div/input", "xpath:idRelative"],
["xpath=//input", "xpath:position"]
],
"value": "${KEY_ENTER}"
}, {
"id": "d964cc49-1d76-41e2-b2aa-e0ad34da2999",
"comment": "",
"command": "click",
"target": "linkText=FunTester - 知乎",
"targets": [
["linkText=FunTester - 知乎", "linkText"],
["css=.b_algo:nth-child(5) > h2 > a", "css:finder"],
["xpath=//a[contains(text(),'FunTester - 知乎')]", "xpath:link"],
["xpath=//ol[@id='b_results']/li[5]/h2/a", "xpath:idRelative"],
["xpath=//a[contains(@href, 'https://www.zhihu.com/people/ba-yin-xian/posts')]", "xpath:href"],
["xpath=//li[5]/h2/a", "xpath:position"],
["xpath=//a[contains(.,'FunTester - 知乎')]", "xpath:innerText"]
],
"value": "",
"opensWindow": true,
"windowHandleName": "win2584",
"windowTimeout": 2000
}]
}],
"suites": [{
"id": "5915a8a1-cce3-42f9-ad68-5022d7fcfc1f",
"name": "Default Suite",
"persistSession": false,
"parallel": false,
"timeout": 300,
"tests": ["e34fd206-9ab8-4a6c-a543-0f80d1ba3fe9"]
}],
"urls": ["https://cn.bing.com/"],
"plugins": []
}
對於需要進行自動瀏覽器測試的測試人員,Selenium4 IDE是一個非常值得探索的選擇。
關於Selenium4 IDE的新特性,如果各位有需求的話,我會逐個更新簡單的入門講解,由於本人現在主要從事服務端的測試工作,對於Selenium4 IDE后面的高階功能,如:並行測試、分布式兼容性測試等等略顯有心無力,可能更新會比較慢。
- 公眾號FunTester首發,更多原創文章:450+原創文章,歡迎關注、交流,禁止第三方擅自轉載。