您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Watir
Ruby+Watir測試自動化的新選擇
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/12/7 11:28:08 ] 推薦標簽:

 在半年前,我想很多人,包括我自己,都不知道watir是個什么東東。在國內(nèi)幾乎沒有介紹的文章,嘗鮮者聊聊。但半年后,隨著用Ruby+Watir開發(fā)了一個具有較大規(guī)模的自動化測試框架,再回頭看來,我個人認為,用RAW是做web自動化測試的第一選擇。事實上,現(xiàn)在網(wǎng)上關(guān)于Watir的介紹和經(jīng)驗也多了起來。

   在用Watir之前,對于自動化測試工具,我只有一些使用Rational Robot的經(jīng)驗。Robot對于我來說大的問題是,從一個C/C++/java程序員看來,它的scrīpt語言實在太不敢恭維了。包括語法'丑陋',提供的外部庫功能匱乏(net, file, remote control, database ....),還有編輯器也非常簡陋?偟膩碚f,我在寫robot scrīpt的時候,我都在懷念在eclipse里使用java無所不能的感覺。

   Robot并不全是壞的印象。它cool的地方是Record&Replay。但是,如果是對某個不斷進化的產(chǎn)品進行測試,而且這個產(chǎn)品還不是那么簡單。那么直接RecordReplay是遠遠不夠的。套用一句不知道是哪個專家說的“自動化測試程序也是程序”,也需要設(shè)計,也需要架構(gòu),也需要設(shè)計模式。

   其他商業(yè)的自動化測試工具我還簡單體驗過Silktest,也是我所在公司曾經(jīng)采用的。但它的scrīpt語言更不討人喜歡,而且據(jù)使用它的同事說穩(wěn)定性存在問題。更好的工具比如Mercury的QTP,我沒有使用過。

   現(xiàn)在看來Ruby+Watir確實是一個正確的選擇,但半年前這并不是顯而易見的。公司原來的測試工具是silktest,并在上面開發(fā)了一定量的testcases。不過由于人力不夠和lisense的問題,這個測試套件已經(jīng)有很長一段時間停步不前了,并沒有隨著產(chǎn)品的更新而更新。silktest形如雞肋,Robot,QTP...價格又高不可攀,而對于一個做產(chǎn)品的公司來說,自動化測試似乎是不可避免的,所以公司招聘了一個自動化測試Consultant,希望她能帶來價廉物美的利器。而這個consultant此前在用Ruby+Watir做項目。

   Consultant帶來了Ruby+Watir,并計劃做一個SmokeTest suite,集成進Nightly build。她希望能在QA組里找一個助手,因為我以前做了一些自動互測試的工具并在team里使用,所以我也參加了進來。當然這個時候,我對Watir一無所知,而Ruby,雖然曾經(jīng)進入了我的視野,但在一年前,我選擇了Python作為我的第一腳本語言。

   2個人的Team建立了。計劃是consultant著手搭建框架,我先學習Ruby和Watir。隨后的一個月,我不得不放下放下ruby,而參加更緊迫的產(chǎn)品releas測試。當然我還是抽空翻看了ProgramingRuby 2Ed一書,寫了一些程序來熱身一下,雖然是蜻蜓點水,但也被ruby的優(yōu)美和強大折服。當consultant再次來到中國,我對她準備如何實現(xiàn)這個框架還是一無所知。我也不知道我得職責到底是什么。

   當我提出我得問題后,consultant給我看了她已經(jīng)完成的一些東西,我看了感覺比較失望。因為從她的代碼看,她并不想提供一個框架,只是針對smoketest提供一些例程。對這些例程配合不同的輸入數(shù)據(jù),構(gòu)成smoketest的全部。而我此時已經(jīng)雄心勃勃,希望看到的是一個精心設(shè)計的面向?qū)ο罂蚣,對QA所面對的產(chǎn)品的功能有一個比較完備的抽象層,-它不僅僅是為了Smoketest

   這個框架要實現(xiàn)的目標是,在它基礎(chǔ)上應(yīng)該能夠把大部分(>80%)的Manual test比較輕松的翻譯為自動化腳步。對每一個step都能直接而且方便的翻譯為一句ruby 語句。也是說需要達到一種效果:讀自動化腳本像在讀用人類語言描述的testcase。自動化腳本完全是在描述測試邏輯,這真是一個夠“理想化”的目標!


   我提出了我的想法,發(fā)給她一份我對整個框架設(shè)計的構(gòu)思。她顯然并不愿意大動干戈。我于是試圖說服我們這邊的QA Manager趁此機會做一個全功能的測試框架,并獲得了成功。consultant只能作出讓步,但要求不能miss smoketest的目標。當然我同意了。

   接下來的一個月consultant休假,她給我了一份list,羅列了要達到的目標,然后閃人了。我則全心投入了實現(xiàn)這個框架的工作。


   經(jīng)過幾個月的開發(fā),重要的是在給同事們使用后并得到了好多反饋。后我覺得是初步達到了目標。隨后,我會謝謝在這個過程中遇到的問題,解決的方法和得到的經(jīng)驗。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd