Selenium2自動化測試實戰序言


記得很久之前接觸自動化的時候看了一本關於某早期自動化測試工具的書,書名已經記不得了,內容卻一直印象深刻。因為那本書根本就是把官方文檔有選擇性的翻譯一遍,對於實際應用來說其作用幾乎是零。因此從那時候起我就一直認為,對工具的介紹應該不僅僅停留在理論和了解的程度,如果沒有實戰,那么我們之於工具無非就是葉公好龍,一直遠觀,無法賞玩。

很欣慰的是蟲師這本Selenium2自動化測試實戰--基於Python語言並沒有停留在誇誇其談的表面,我仔細的研究了書中的代碼和示例,顯然很大一部分都是他在日常工作中勤奮總結而得出來的一手范例,對於技術書籍來說這是難能可貴的。

對於一本介紹自動化測試的書來說,我們其實不缺理論。國外的很多同行都不停的在傳經布道,他們的結論其實很簡單,自動化測試是好東西,對於提升軟件質量來說,自動化測試帶給我們生產力的解放收益遠遠要大於成本。結論我們都知道,工具我們也清楚,無非就是單元測試xunit,rspec之類,bdd測試用cucumber等等,ui層面的aut用selenium。這些工具我們都會用,而且也許用的還不錯,不過為什么我們的自動化測試除了耗時費力之外根本就看不出有什么效果?

答案其實很簡單,我們自以為用對了,但實際上也許我們才剛上路,甚至跟最佳實踐背道而馳。這就像是拿ipad當砧板,用宰牛刀殺雞一樣,路子不對,只能越練越野,直到走火入魔。

這本書中其實提到了很多不錯的實踐,路子正宗,從者自然不會誤入歧途,這也是我推薦他的另外一個理由。

在看本書前幾章的時候,我一直不斷的想起當年初出茅廬入行時候所遇到的初學者困局。我很想學一個東西,一門技術,但是到底應該從哪里開始?

萬事開頭難,沒有師傅領進門,在不停的挫敗和各種不同信息的正反面轟炸下,我們很容易舉白旗放棄。

試想一下這樣的場景吧:假如你是一個初學者,你從某種渠道得知你selenium是代表未來測試趨勢的測試工具,是提升生產力的重要手段,是提升自己收入水平的一個不錯的投資,你下定決心大干一場,准備好好的學習一下這個東西。然后你開始興沖沖的去網絡上搜索資料,然后你開始困惑,因為selenium有2個版本,1和2,並且selenium1到現在都沒有完全廢棄,是學1還是學2,1很經典,2很前沿,你開始由於;然后你繼續深挖,你發現如果學selenium2你會遇到1個叫做webdriver的東西,那是啥?然而如果要學selenium1的話你將一直不停的看到一個叫做selelniumRC的字眼,這又是什么?現在的你也許已經有一些動搖了吧,不過噩夢才剛剛開始。你也許會遇到一些靠譜的哥們,他們會先建議你學習一門語言,因為要用selenium基本上就意味着你應該學會編程。但是selenium支持太多編程語言,ruby/python/java/javascript/objective-c/php,到底應該從哪一門語言入手,你開始陷入經典的語言之爭的泥沼,你悲哀的發現自己花了很多時間去潛心研究,但最終只是模模糊糊知道了selenium在遠方,面前是一堆分叉路口,每種語言看起來都不錯,每個分叉路口都可以到達終點,但你就是不知道該怎樣邁出第一步。這便是選擇的成本,選擇是有風險的,選的對事半功倍,選的不對只能半途而廢。

對於很多初學者來說,上面的困局應該都是存在的。花了很對精力和時間,但最終卻發現一切都是徒勞,做了很多功課,但真正該做的事情卻未曾開始。

好在這本書能夠很好的解決這個困局。你不需要選擇,這本書描述的就是selenium2,代表了主流代表了未來,用的語言是python,全世界都在用,代表了簡單高效,代表了經典和優雅。很有意思的是python自身的哲學里也認為最好只用一種方法來做一件事(你可以打開python解釋器,然后import this試試),免去選擇的苦惱。你應該把精力放在更有意義的事情上,比如多寫幾個自動化測試用例,而不是糾結於各種選擇徘徊不前。

然后便是初學者困局里更加常見的一個問題,如何去搭建環境。我遇到過不少人倒在這里,而且前赴后繼,無限循環。如果你有這本書的話那這些問題應該不是核心問題,跟着蟲師描述的步驟一步步來吧,循序漸進而又節奏輕快。

搭建好了環境,寫好冒煙腳本之后敢問路在何方又是初學者常見的問題。因為selenium沒有官方中文文檔,啃英文實在不是一件愉快的事情。也許你好不容易看懂了解釋,卻發現官方的示例離自己身處的環境相差太多,官方的例子一直是google搜索,發gmail,而你卻悲哀的發現在根本就沒有gmail這個網站。這本書不僅僅非常詳盡的介紹了selenium的api,而且給出了非常多可以運行的本土化的示例,這對初學者和其他程度使用者來說都是福音,有些例子很棒,你試過就知道。

其實試完webdriver的各種api,你應該已經算入門了。入門了之后便是更多的困惑,比如如何去寫測試用例,如何做基於數據的用例設計,如何分布式執行用例,如何多線程執行用例等,這些本書都有答案。

最后便是bdd和ci,說實話如果一本介紹自動化測試的書沒有這兩項內容的話都是不完整的。如果自動化是彩虹,那么ci便是風雨,不經歷風雨怎會見彩虹。沒有ci,自動化其實找不到太多的應用場景,沒有自動化,ci更是無從說起了。盡管本書的重點不在ci,但本書的終點在ci,就像是指出了宿命的依歸,獨具匠心。

還記得上次跟蟲師見面時候的情景,應該已經有2年多了。時過境遷,曾經我們上班的地點就在隔壁,如今發現時間逝去,很多東西都已改變。不過難能可貴的是蟲師對測試技術的追求一直不曾更改,一直筆耕不輟,這本書其實也算是水到渠成的結果了。勿忘初心,堅持自己,最后希望這本書能多幫助一些人,我想這應該也是蟲師的初衷吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM