首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

使用 Selenium 自動化測試 Ruby on Rails 與 Ajax 應用

     編輯:Java 相關知識

驗收測試(功能測試)驗證應用程式是否滿足利害關係人的需求。傳統手工測試耗時且易出錯,Selenium 讓測試在真實瀏覽器中自動化執行,支援跨平台、跨瀏覽器,並能模擬真實用戶操作,是持續整合流程中不可或缺的工具。

Selenium 核心優勢

  • 測試直接在瀏覽器運行,支援 IE、Firefox、Safari,覆蓋 Windows、Linux、Mac
  • 從終端用戶視角驗證應用行為
  • 輕鬆發現瀏覽器相容性問題

核心組件 BrowserBot 以 JavaScript 實現,接收測試腳本命令並駕駛瀏覽器。測試腳本可用 HTML 表格格式(Test Runner 模式)或程式語言(Driven 模式:Java、Ruby、Python)編寫。

兩種運行模式

Test Runner 模式

腳本為 HTML 表格,部署於應用伺服器同源,受沙箱限制。結構簡單:

<table>
  <tr><td>open</td><td>/login</td><td></td></tr>
  <tr><td>type</td><td>username</td><td>admin</td></tr>
  <tr><td>clickAndWait</td><td>//input[@value='登入']</td><td></td></tr>
  <tr><td>verifyTextPresent</td><td>歡迎</td><td></td></tr>
</table>

測試套件(TestSuite.html)以連結串聯多個測試用例,按序執行。

Driven 模式

腳本以程式語言編寫,運行於瀏覽器外部進程,透過 Selenese 協議與 BrowserBot 通訊。功能更強大,可整合 xUnit 框架,但部署較複雜(需啟動伺服器、部署應用、啟動瀏覽器等)。Ruby 驅動範例:

puts selenium.open('/logout.html')
puts selenium.verify_location('/index.html')

實戰:股票報價查看器(Ruby on Rails + Ajax)

示例應用包含四個用例:登入、查看股票列表、查看股票詳情(Ajax)、登出。測試腳本放置於 public/selenium/tests。

關鍵點:處理 Ajax 非同步請求

Ajax 請求非同步完成,測試必須等待頁面更新。使用 pause 指令等待固定時間(如 500ms),或更進階的 waitForValue、waitForCondition。若無等待,斷言會在內容尚未渲染時執行導致失敗。

<tr><td>click</td><td>link=Acme Oil</td><td></td></tr>
<tr><td>pause</td><td>500</td><td></td></tr>
<tr><td>verifyTextPresent</td><td>Acme Oil 詳細資訊</td><td></td></tr>

500ms 亦可作為非功能性需求驗證:若 Ajax 響應超過此閾值即視為效能不佳。

跨瀏覽器執行與除錯

在瀏覽器開啟 https://localhost:3000/selenium/TestRunner.html,點擊 All 執行完整套件。失敗步驟以紅色標示。支援單步除錯,慢速回放每一步驟便於觀察。

持續整合整合

測試套件可整合至 Apache Continuum、Luntbuild 等 CI 工具,每次提交自動觸發測試,失敗即時郵件通知團隊,實現「更早、更頻繁、更容易」發現缺陷。

總結

Selenium 以瀏覽器為執行環境,支援多語言、多平台、Ajax 測試,配合 CI 可構建高可靠、可維護的軟體。釋放人力投入更高價值活動,是現代敏捷團隊的標配工具。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved