❝新版的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」是一種記錄和回放工具。現在它将具有以下更豐富和進階的功能:
- 新的插件系統。任何浏覽器都可以輕松插入新的Selenium IDE。您将能夠擁有自己的定位器政策和Selenium IDE插件。新的CLI運作器。它将完全基于NodeJS,而不是基于HTML的舊運作器,并将具有以下功能:
- WebDriver播放。新的Selenium 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
- 測試用例重用:運作指令使您可以在另一個測試用例(或測試套件)中重用特定的測試用例。
-
指令的分組:「Selenium4 IDE」支援Selenese
指令(或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」後面的高階功能,如:并行測試、分布式相容性測試等等略顯有心無力,可能更新會比較慢。