- Selenium自動化測試之道
- Ping++測試團隊
- 2521字
- 2020-11-28 14:42:24
前言
寫一本關(guān)于Selenium自動化測試的工具書,一開始我是拒絕的。直到現(xiàn)在,我仍然認為工具書不足以道盡測試的奧妙。學(xué)習(xí)Selenium最好的途徑是啃官方文檔和源碼,從最開始的Selenium RC到WebDriver,再到移動測試Appium, Selenium一直在快速、持續(xù)地發(fā)展和變化著。等讀者看到這本書的時候,很可能某些問題已經(jīng)有了更好的解決方案,或者書中的代碼已經(jīng)不能直接運行。
而最終,我還是動筆了。因為我還有另一個觀點:“自動化測試”不是某一家公司或者團隊組織需要考慮的問題,它應(yīng)該是測試同行們的必經(jīng)之路,是日常測試工作的手段之一。而初學(xué)者在一開始難免會有畏難情緒,又不知如何構(gòu)建知識體系。于是,將所思所得分享出來,或許可以幫助初學(xué)者盡快地度過那段“破冰期”。
本書的組織方式
市面上Selenium的資料很多,談?wù)摐y試自動化的也很多。但脫離了工具和技術(shù),去談方法論,難免讓人覺得空洞;而沒有方法論的東西,只談工具和技術(shù),難免是“一葉障目,不見泰山”。本書嘗試在梳理技術(shù)知識的同時,討論測試自動化的方法論。
第1章主要探討測試價值觀,闡述編者對自動化測試的基本觀點和認識。
第2章是Selenium入門內(nèi)容,介紹了Selenium的發(fā)展,涉及Selenium IDE、Selenium WebDriver和Selenium Grid。
第3章重點介紹了Selenium WebDriver的使用。不是簡單羅列Selenium WebDriver API,還包括不同WebDriver對象、不同頁面元素的處理思路。
第4章介紹了自動化測試框架的設(shè)計,包括線性、模塊化、數(shù)據(jù)驅(qū)動和關(guān)鍵字框架4種類型。
第5章介紹了HTML 5元素的處理。Selenium還未對某些HTML 5元素的操作進行封裝,因而需要利用JavaScript來解決問題。讀者將在這一章開拓視角,了解更多的Selenium應(yīng)用場景。
第6章介紹了移動App的測試框架——Appium。基于前面幾章對Selenium原理與操作的了解,讀者會在這一章了解iOS與Android App自動化測試腳本的寫法。
第7章介紹了行為驅(qū)動開發(fā)(BDD)模式。通過這一章,希望讀者能體會到做好自動化測試不僅在于工具的掌握和框架的使用,還需要考慮測試用例的管理、手動測試用例如何與自動化腳本關(guān)聯(lián),甚至與業(yè)務(wù)部門的溝通等問題,其中幾個BDD框架的示例為讀者提供了解決問題的思路。
第8章介紹了持續(xù)集成工具Jenkins的使用,希望通過這一章能為讀者帶來測試流程方面的思考。Jenkins可以讓測試腳本的執(zhí)行、報告的展示變得簡單高效。
本書的內(nèi)容均是由Ping++的一線測試人員編寫的。第2章由王紅興、周淼淼編寫,第4章由徐克亮編寫,其余章節(jié)由吳子騰編寫。
本書的特色
本書的特色主要體現(xiàn)在以下3個方面:
第一,在理論觀點上,本書在開篇就闡明了編者對于“質(zhì)量與自動化測試的關(guān)系”,“自動化測試與白盒測試的關(guān)系”等話題的理解。其實Selenium等各種自動化測試工具上手并不難,但相信讀者在閱讀過程中并不僅僅只是想了解一種工具,而是想獲得如何實施自動化測試的思路。正所謂,測試技術(shù)或工具只是“指月之手”,我們追求的是“月亮”,是如何放心地迭代,快速地交付高品質(zhì)的產(chǎn)品。
第二,在學(xué)習(xí)視角上,本書從Selenium工作原理、測試腳本的組織方式——開始講解,再由Web自動化腳本的編寫延伸到HTML 5元素、App測試對象的識別等。章節(jié)的內(nèi)容設(shè)置與當(dāng)今企業(yè),尤其是互聯(lián)網(wǎng)公司所需的UI自動化測試技術(shù)環(huán)環(huán)相扣,歸納總結(jié)了可能遇到的難點以及解決問題的思路。
第三,在技術(shù)實施上,突出了需要向團隊傳播質(zhì)量意識與測試自動化實踐相結(jié)合。本書介紹的行為驅(qū)動開發(fā)(BDD)與持續(xù)集成工具Jenkins都是需要團結(jié)整個研發(fā)團隊,甚至是相關(guān)的業(yè)務(wù)部門,才能將這些理念發(fā)揮至最佳。當(dāng)然,即便這些概念在組織推進過程中存在困難,測試人員也可以通過了解這些工具和技術(shù),對研發(fā)過程改進這一話題進行更加深入的思考。
考慮到本書的目標(biāo)和定位,對于沒有掌握任何一門編程語言的讀者而言,或許會造成閱讀門檻。另外,本書涉及多類界面對象的識別和操作、多種測試腳本的寫法、多個測試框架的使用。然而在實際工作中,界面操作的自動化僅僅是分層測試策略中的一部分,并不能代表全部的自動化工作。但為了便于從整體上把握和安排內(nèi)容,編者還是以Web測試自動化作為本書的主要架構(gòu)。這樣,相比單一地通過某個系統(tǒng)或產(chǎn)品來整體介紹自動化測試方面的研究,書中各章節(jié)的內(nèi)容顯得在體系性上有所欠缺。
目標(biāo)讀者
本書主要面向的讀者是具備編程基礎(chǔ),缺乏自動化測試經(jīng)驗,希望快速、系統(tǒng)地了解Selenium,從而進一步做好UI測試自動化的工程師。本書不僅是為測試人員而寫的,它還適用于對軟件測試有興趣的在讀大學(xué)生以及希望了解測試技術(shù)的開發(fā)人員。
全書綜合了Selenium實踐過程中的方方面面,涉及腳本編寫、框架選型、開發(fā)模式等各個領(lǐng)域的討論。雖然示例代碼分為Java與Python兩種語言,但并不會影響閱讀,書中對示例代碼進行了詳盡的文字解讀。Python代碼適用于2.7.10版本。代碼下載鏈接:https://github.com/applewu/selenium-exercises.git。
如何閱讀本書
本書的前3章是全書內(nèi)容的基礎(chǔ),需要首先閱讀。在掌握了前3章之后,讀者可以按照任意順序閱讀后續(xù)章節(jié)。既可以順序瀏覽,概觀Selenium自動化測試實踐,也可以選擇性地閱讀自己感興趣的章節(jié)。
我們學(xué)習(xí)任何測試工具的最終目的不在于掌握工具,而在于如何利用工具更好地為自動化測試服務(wù)。自動化測試也只是產(chǎn)品質(zhì)量工作中的一部分。因此,不要沉迷于“術(shù)”,而忘卻了“道”。在閱讀過程中,讀者一方面需要積極實踐,掌握測試腳本的編寫方法,另一方面需要積極思考,如何在自己所在的工作中合理應(yīng)用起來。練習(xí)與反思,才能將本書的效果發(fā)揮至極致。
勘誤和支持
由于水平有限,書中難免會出現(xiàn)一些錯誤或者不準(zhǔn)確的地方,懇請讀者批評指正。在閱讀過程中遇到任何問題或錯誤,歡迎發(fā)送郵件至郵箱test4greenbar@163.com,期待能夠得到讀者的真摯反饋。
讀者還可以直接在Github的selenium-exercises項目中提交代碼有關(guān)的問題,也可以通過微博(@籽藤_上海)聯(lián)系編者。
致謝
首先要感謝清華大學(xué)出版社提供了這樣一個創(chuàng)作平臺。其次,感謝那些提供了寶貴建議的朋友們。雖然最終編寫這本書的是Ping++的測試團隊,但還有很多同事和好友為本書提供了寶貴的意見。感謝李雨洪、方雷、孫兵兵、葉波光、翁旭鋒、李響、左文婭、趙海林、付敏芝、史子飛提出的問題和反饋,感謝我素未謀面卻志同道合的好友劉琛梅以及我的老師姜曉東在百忙之中為本書寫了推薦序。
最后,我要感謝我的家人。感謝我的父母,尤其是我的母親,培養(yǎng)了我的閱讀和學(xué)習(xí)習(xí)慣。感謝我的公公婆婆,他們的辛勤付出讓我在寫書的過程中沒有后顧之憂,不用擔(dān)心兒子的生活起居。我還要感謝我的兒子塏興,你的笑容是我的能量。感謝你們伴我前行。
Ping++測試團隊 吳子騰
上海 張江高科
2017年9月10日
- Kibana Essentials
- Python機器學(xué)習(xí):數(shù)據(jù)分析與評分卡建模(微課版)
- 微信公眾平臺開發(fā):從零基礎(chǔ)到ThinkPHP5高性能框架實踐
- HTML5 and CSS3 Transition,Transformation,and Animation
- 軟件測試實用教程
- Mastering Apache Storm
- Windows Phone 8 Game Development
- Unity 5.X從入門到精通
- 零基礎(chǔ)輕松學(xué)C++:青少年趣味編程(全彩版)
- WildFly Cookbook
- Implementing Domain:Specific Languages with Xtext and Xtend
- Analytics for the Internet of Things(IoT)
- Opa Application Development
- Expert Angular
- Scratch 3少兒交互式游戲編程一本通