Artile-Automatic Web Testing, With IEUnit

 

已經上線運作的網站系統,使用者又提出會動搖國本的核心功能修改需求,此時你會?

1) 警告使用者修改後可能導致家破人亡,然後立即裝忙忘記使用者曾說過什麼?
2) 硬著頭皮改完,苦著一張臉花十八小時把所有相關功能重新測過一次
3) 修改程式後即刻上線,將使用者編制為”虛擬測試團隊”,等著蒐集”虛擬測試員”回報的Bug

測試工作很煩人卻很重要,尤其理論上系統只要經過修改,就應該再做一次完整的系統測試,避免修掉一個Bug又冒出兩個Bug的鳥事。但將所有的網站功能操作做完一輪可能得耗上數小時,誰能有此等耐性在每次修改後都演一次鐵杵磨成繡花針的悲情戲? (如果真有人樂此不疲,建議該去醫院精神科掛個號,檢查一下是否罹患了強迫性精神官能症?)

比較好的做法是將這些測試程序自動化,把枯燥的工作丟給不會喊累不會嫌煩的機器人,避免自己陷入手工測試的無間地獄,把時間拿來做更有意義的事。

看過好多人都有驚人的耐性不厭其煩地一測在測,沒有耐心的我自嘆弗如之餘,只能去找來自動測試的工具—IEUnit(目前還有Selenium等其他選擇,但我IEUnit已經上手,各功能也都齊備,就沒想要換),一開始要投入很多時間熟悉工具,撰寫Test Script,但之後就可以翹著二郎腿用一根手指頭搞定系統測試,算是先苦後甘。

關於IEUnit的介紹,以下是我早先發表在RUN!PC雜誌的文章,給大家參考。

文章下載

Published 26 October 2007 11:11 AM 由 Jeffrey
Filed under: , ,


意見

# A*lan~ said on 20 November, 2007 04:15 PM

小弟拜讀大大的Blog很久,也潛水很久~呵

第一次浮出水面,和大大請教

小弟試了IeUnit後,確實好用也產生出測試結果的XML,可是就是一直找不如何將xml結合NUnit2Report產生的測試報表,所以可以請大大解答嗎?多謝!

還有一件事就是和大大偷師,小弟也改用ASPNIX的空間,真的很穩定,謝謝!

請問您右邆Live traffic feed是怎麼抓到國家的呢~有參考嗎?謝謝,一次問了二個問題~希望不會造成您的困擾!

# Jeffrey said on 20 November, 2007 05:10 PM

To A*lan, 幸會了。

1) NUnit2Report的細節已經被劃入中年人的壞軌區,不復記憶~"~a。試過NAnt了嗎? nunit2report.sourceforge.net/NUnit2Report.Usage.NAnt.html

2) Live traffic feed是一個免費服務FeedJIT,詳細介紹可以參考異塵行者的Blog playpcesor.blogspot.com/.../feedjitblog.html 裡面有超多新奇又有趣的新東西介紹,值得訂閱。

# clarkluo said on 22 January, 2008 02:51 AM

您好:

 使用IeUnit時,遇到彈跳視窗-->請按確定時,就當住,就必須手動按才會繼續自動執行下去。

 請問這點該如何解決呢?謝謝!

# Jeffrey said on 22 January, 2008 03:09 AM

to clarkluo, 你可以參考我的文章,看要不要採行IeUnit\Samples\ApiTest\SupressPopupWindow.jst裡用的偷天換日法解決。

# clarkluo said on 18 February, 2008 02:22 AM

偷天換日法??

我試過IeUnit\Samples\ApiTest\SupressPopupWindow.jst 的語法,結果自動登入帳號時,仍會顯示請按確定的視窗,目前仍試不出來,不知該如何解決呢?謝謝!

# Jeffrey said on 18 February, 2008 04:13 AM

to clarkluo, IE的登入視窗(輸入帳號密碼)跟alert()的Popup是不一樣的東西,小心不要混淆了。

SuppressPopupWindows.jst可以解決alert()的問題; 至於自動登入的部分,則要看文章第8頁提到的openWindowAsUser解決(在中文環境下需要修改Win32Dom.js解決比對文字的問題, 見第9頁)

# nic said on 21 February, 2008 10:38 AM

Hi guy,

Can I ask you a question??

如果我在一個網頁上有個必要填寫的Table沒有填寫,然后點擊save出現提示'需要填寫**',假設這個字段填寫,則會轉到另外一個網頁,應該怎樣去編寫script來顯示未能成功.

Best Regards,

It is my email:nic.pei@audacee.com

# Jeffrey said on 21 February, 2008 10:24 PM

to nic,

不是很確定你的問題,我猜你想問的是,如何用IEUnit去測試網頁有正確顯示"需要填寫***"的提示有發生效果。

我想到的方法是,假設欄位未填提示是用alert("需要填寫***");顯示的,那麼我們可以改寫window.alert = function(msg) { document.body.setAttribute("AlertMsg", msg); },如此,呼叫alert("AAA")時,並不會真的跳出確認對話框,IEUnit Script則可以由document.body的Attribute去讀取原本要alert的Message檢查是否符合預期,大概的構想就是這樣。

# nic said on 22 February, 2008 06:11 PM

多謝大大的幫助!我明白了!

我研究了一天都沒有能夠產生出測試結果的XML文件,小弟技術比較有限,請你給小弟一個幫助!怎樣把很多testcase的執行結果產生到XML文件或者其它的形式來觀看結果呢

# Jeffrey said on 23 February, 2008 07:54 AM

to nic, IeTextRunner.wsf有個參數-xml <result-xml-file-path>可以將結果輸出成XML檔案,不知你嘗試過了嗎? 應該可以滿足你的需求。REF:

ieunit.sourceforge.net/TestFramework.html

# Nic said on 26 February, 2008 09:45 AM

感謝你的幫助,我試過這個了,確實書出來XML格式的檔案,這幾天有點時間我就研IeUnit.不過我還是覺得找不到很好的能夠學習好這個工具的方法!因為我的基礎比較差,我發現sample文件夾下的APITest非常有幫助,我已經下載了你寫的那篇文章仔細學習了,學到很多,希望你有其它的關于IeUnit的資料可以Share,小弟感激不盡,因為網絡上這方面的東西真的很少!!

# 小煎 said on 07 January, 2009 07:07 PM

Dear Jeffery:

這篇文章超棒的啊 (included 你的那篇 DKTD-IEUnit.pdf 的文章)

雖然我很晚才發現

但是我受益良多唷

謝謝

:D

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 

請輸入以上的數字:

【請注意】意見送出後可能需要幾分鐘才會出現在網頁上,請耐心等候。

搜尋

Go

<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
最新回應


BlogLook Score and Rank

Syndication