天天看點

Selenium4 IDE,它終于來了主角Selenium4 IDESelenium IDE曆史回顧

❝新版的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基礎(三)
Selenium4 IDE,它終于來了主角Selenium4 IDESelenium IDE曆史回顧

Chrome的「Selenium IDE」支援現已可用。可以從以下網址下載下傳它:https://selenium.dev/selenium-ide/

Selenium4 IDE,它終于來了主角Selenium4 IDESelenium 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 IDESelenium IDE曆史回顧

歡迎頁

Selenium4 IDE,它終于來了主角Selenium4 IDESelenium 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」後面的高階功能,如:并行測試、分布式相容性測試等等略顯有心無力,可能更新會比較慢。