關於部落格
我不想限定我的 blog 方向,但是在這裡的都是我最認真的紀錄。
  • 63981

    累積人氣

  • 2

    今日人氣

    0

    追蹤人氣

網頁自動化測試

寫 Watir 的 Test Case 很容易,只要懂得 Ruby 語言大概就沒什麼問題了,底下是個簡單的範例:
require 'watir'
# 開啟 IE 視窗
ie=Watir::IE.new
# 連結到 Google 首頁
ie.goto('http://www.google.com')
# 在搜尋欄位中自動填入關鍵字
ie.text_field(:name, 'q').set('syshen')
# 按下搜尋按鈕
ie.button(:name, 'btnG').click
# 驗證結果
if (ie.contains_text('syshen'))
        puts('成功')
else
        puts('失敗')
end
ie.close
這個範例是從 watir 網站抄來的,它會開啟一個 IE 視窗,連到 Google 首頁,並下一個關鍵字搜尋,最後再驗證搜尋的結果。 在 Watir 中,你可以透過 text_field、button、checkbox、radio、select_list 等等函式去控制各種 HTML component,我測試過比較複雜的 Case 都是可以 Work 的,但是前提是這些 Component 最好都要定義 name 或 id 等,讓 Watir 可以抓出來,如果沒有定義,就需要去算該 Component 的 index 值,會比較麻煩,也容易受到網頁更動的關係影響測試結果。 此外,你也可以搭配 Ruby 本身的 Unit Test Framework 來寫 Test Case ,讓所有測試全部自動化,每天只要看 report 就好,多麼美好! Watir 強的地方還包括,他可以跟 Javascript 程式互動,他可以處理由 Javascript 所彈出的 alert 或者 confirm 視窗,也可以對特定 component 送出 event ,例如底下 HTML 是我的被測程式:
<html> <body> <div style="width:500px;height:500px;background-color:#00ff00" onmouseover="alert('test');" id="test" ></div> </body> </html>
這當你將滑鼠游標移動到該 DIV 區塊時,便會觸發 onmouseover 事件,所以為了模擬這校過,我們可以寫這樣的 Test Case:
ie.div(:id, 'test').fire_event('onmouseover')
這樣就達到相同的效果了。 Watir 功能相當強大,如果你覺得他跑太慢,可以用 set_fast_speed 來加速到二檔,不過我還是覺得很慢,此外,watir 開發者也有提到說,他們目前正在開發其他平台的版本,像是 Linux 以及 Mac 等,也正在開發 Firefox 以及 Safari 瀏覽器的支援,聽起來很棒,真希望他們早日完成。
相簿設定
標籤設定
相簿狀態