産品特色
編輯推薦
適讀人群 :具有編程基礎,希望係統地瞭解UI自動化測試的開發或測試人員 《Selenium自動化測試之道——基於Python和Java語言》既介紹瞭測試工具Selenium的使用,又帶領讀者理清實施自動化測試的思路,後者尤其重要。正所謂,測試技術或工具隻是“指月之手”,我們追求的是“月亮”,是如何放心地迭代、快速地交付高品質的産品。
《Selenium自動化測試之道》內容設置與當今企業,尤其是互聯網公司所需的UI自動化測試技術環環相扣,歸納總結瞭可能遇到的難點以及解決問題的思路。
《Selenium自動化測試之道》介紹的行為驅動開發(BDD)與持續集成工具Jenkins,都需要團結整個研發團隊,甚至是相關的業務部門,纔能將這些理念發揮得更好,因此對於促進研發過程改進也具有一定的參考價值。
內容簡介
《Selenium自動化測試之道——基於Python和Java語言》以Selenium的使用為主綫,展現瞭UI自動化測試的各種實踐過程,引導讀者思考如何基於Selenium做好UI自動化測試。示例代碼采用Python和Java,全書共8章,第1章分析討論瞭自動化測試的意義,旨在使讀者對自動化測試有一個較明確的認識;第2、3章詳細介紹瞭SeleniumIDE的命令、SeleniumWebDriverAPI、不同Driver對象以及工作原理,旨在使讀者對Selenium有深入的瞭解;第4章重點通過代碼演示介紹瞭不同類型的測試框架;第5、6章是拓寬思路,演示瞭如何使用SeleniumWebDriver結閤JavaScript代碼來操作HTML5頁麵的WebStorage、Canvas對象,以及如何使用Appium處理原生App和WebApp的頁麵對象;第7章著重演示瞭主流BDD框架Cucumber-JVM、Lettuce、Behave的應用,偏實戰場景,探討瞭BDD實施過程中需要考慮的種種問題;第8章介紹瞭測試人員在Jenkins使用過程中的必備知識。本書還提供瞭所有示例的源碼與素材文件供讀者練習使用,讀者可從網上下載本書資源文件。
《Selenium自動化測試之道》適用於具有編程基礎,希望係統地瞭解UI自動化測試的開發或測試人員,以及對自動化測試感興趣的計算機專業學生等。
作者簡介
Ping++測試團隊主要麵嚮支付相關産品及行業解決方案,特彆是針對RESTful API和Web係統的各類測試場景。作為創業團隊的一部分,Ping++測試團隊的工程師既認可手動測試的價值,又積極推行測試自動化,既聚焦産品,也關注流程協作,同時把提升産品質量作為己任。
目錄
目錄
第1章自動化測試的價值觀1
1.1自動化測試與産品質量的關係1
1.2自動化並不等同於白盒測試2
1.3采用自動化還是手工測試4
1.4如何進行自動化測試5
1.5學習自動化測試的建議7
1.6小結8
第2章Selenium初體驗9
2.1從一個測試腳本說起9
2.2Selenium傢族10
2.3SeleniumIDE12
2.3.1安裝SeleniumIDE12
2.3.2SeleniumIDE的使用13
2.3.3場景演練20
2.4SeleniumWebDriver37
2.4.1工作原理37
2.4.2元素定位38
2.4.3場景演練41
2.4.4Wait45
2.4.5常用的斷言46
2.5SeleniumGrid47
2.5.1工作原理47
2.5.2環境搭建48
2.6小結52
2.7練習52
第3章SeleniumWebDriver53
3.1創建不同的Driver對象53
3.1.1主流瀏覽器53
3.1.2Headless瀏覽器56
3.2常用API概覽59
3.2.1瀏覽器操作60
3.2.2ActionChains61
3.2.3Alert61
3.2.4By62
3.2.5DesiredCapabilities62
3.2.6Keys63
3.2.7Wait64
3.2.8execute_script64
3.2.9switch_to66
3.3場景演練66
3.3.1彈齣框67
3.3.2懸浮菜單71
3.3.3錶格75
3.3.4iframe79
3.3.5上傳與下載81
3.4可能遇到的異常83
3.5小結88
3.6練習88
第4章自動化框架89
4.1綫性框架89
4.2模塊化框架91
4.3數據驅動框架94
4.4關鍵字驅動框架102
第5章HTML5測試107
5.1WebStorage108
5.1.1LocalStorage108
5.1.2SessionStorage111
5.2ApplicationCache111
5.2.1獲得ApplicationCache
當前的狀態112
5.2.2設置網絡連接狀態在綫/
離綫113
5.3Canvas114
5.4Video116
5.5小結118
5.6練習118
第6章移動App測試:Appium119
6.1認識Appium120
6.1.1Appium是什麼120
6.1.2Appium與iOS應用120
6.1.3Appium與Android應用121
6.2開始使用Appium122
6.2.1準備工作122
6.2.2Appium的安裝與啓動123
6.3原生App測試實踐128
6.3.1運行ios_simple.py128
6.3.2運行android_simple.py133
6.3.3尋找練手App136
6.4WebApp測試實踐139
6.4.1使用Chrome開發者工具
查看WebApp元素141
6.4.2AndroidWebApp的聯機
調試142
6.4.3iOSWebApp的聯機
調試144
6.5小結146
6.6練習146
第7章BDD:行為驅動開發147
7.1認識BDD148
7.1.1BDD的由來148
7.1.2與TDD比較150
7.1.3選擇閤適的BDD工具151
7.1.4BDD實施157
7.2BDD工具的使用160
7.2.1使用Cucumber-JVM161
7.2.2使用Lettuce168
7.2.3使用Behave175
7.3小結182
7.4練習182
第8章Jenkins的使用183
8.1認識Jenkins183
8.2Jenkins安裝與啓動185
8.3任務定製化188
8.3.1同步源碼190
8.3.2定時任務190
8.3.3報告191
8.4用戶與權限194
8.5小結195
8.6練習195
參考資料196
前言/序言
前言
寫一本關於Selenium自動化測試的工具書,一開始我是拒絕的。直到現在,我仍然認為工具書不足以道盡測試的奧妙。學習Selenium最好的途徑是啃官方文檔和源碼,從最開始的SeleniumRC到WebDriver,再到移動測試Appium,Selenium一直在快速、持續地發展和變化著。等讀者看到這本書的時候,很可能某些問題已經有瞭更好的解決方案,或者書中的代碼已經不能直接運行。
而最終,我還是動筆瞭。因為我還有另一個觀點:“自動化測試”不是某一傢公司或者團隊組織需要考慮的問題,它應該是測試同行們的必經之路,是日常測試工作的手段之一。而初學者在一開始難免會有畏難情緒,又不知如何構建知識體係。於是,將所思所得分享齣來,或許可以幫助初學者盡快地度過那段“破冰期”。
本書的組織方式
市麵上Selenium的資料很多,談論測試自動化的也很多。但脫離瞭工具和技術,去談方法論,難免讓人覺得空洞;而沒有方法論的東西,隻談工具和技術,難免是“一葉障目,不見泰山”。本書嘗試在梳理技術知識的同時,討論測試自動化的方法論。
第1章主要探討測試價值觀,闡述編者對自動化測試的基本觀點和認識。
第2章是Selenium入門內容,介紹瞭Selenium的發展,涉及SeleniumIDE、SeleniumWebDriver和SeleniumGrid。
第3章重點介紹瞭SeleniumWebDriver的使用。不是簡單羅列SeleniumWebDriverAPI,還包括不同WebDriver對象、不同頁麵元素的處理思路。
第4章介紹瞭自動化測試框架的設計,包括綫性、模塊化、數據驅動和關鍵字框架4種類型。
第5章介紹瞭HTML5元素的處理。Selenium還未對某些HTML5元素的操作進行封裝,因而需要利用JavaScript來解決問題。讀者將在這一章開拓視角,瞭解更多的Selenium應用場景。
第6章介紹瞭移動App的測試框架——Appium。基於前麵幾章對Selenium原理與操作的瞭解,讀者會在這一章瞭解iOS與AndroidApp自動化測試腳本的寫法。
第7章介紹瞭行為驅動開發(BDD)模式。通過這一章,希望讀者能體會到做好自動化測試不僅在於工具的掌握和框架的使用,還需要考慮測試用例的管理、手動測試用例如何與自動化腳本關聯,甚至與業務部門的溝通等問題,其中幾個BDD框架的示例為讀者提供瞭解決問題的思路。
第8章介紹瞭持續集成工具Jenkins的使用,希望通過這一章能為讀者帶來測試流程方麵的思考。Jenkins可以讓測試腳本的執行、報告的展示變得簡單高效。
本書的內容均是由Ping++的一綫測試人員編寫的。第2章由王紅興、周淼淼編寫,第4章由徐剋亮編寫,其餘章節由吳子騰編寫。
本書的特色
本書的特色主要體現在以下3個方麵:
第一,在理論觀點上,本書在開篇就闡明瞭編者對於“質量與自動化測試的關係”,“自動化測試與白盒測試的關係”等話題的理解。其實Selenium等各種自動化測試工具上手並不難,但相信讀者在閱讀過程中並不僅僅隻是想瞭解一種工具,而是想獲得如何實施自動化測試的思路。正所謂,測試技術或工具隻是“指月之手”,我們追求的是“月亮”,是如何放心地迭代,快速地交付高品質的産品。
第二,在學習視角上,本書從Selenium工作原理、測試腳本的組織方式——開始講解,再由Web自動化腳本的編寫延伸到HTML5元素、App測試對象的識彆等。章節的內容設置與當今企業,尤其是互聯網公司所需的UI自動化測試技術環環相扣,歸納總結瞭可能遇到的難點以及解決問題的思路。
第三,在技術實施上,突齣瞭需要嚮團隊傳播質量意識與測試自動化實踐相結閤。本書介紹的行為驅動開發(BDD)與持續集成工具Jenkins都是需要團結整個研發團隊,甚至是相關的業務部門,纔能將這些理念發揮至最佳。當然,即便這些概念在組織推進過程中存在睏難,測試人員也可以通過瞭解這些工具和技術,對研發過程改進這一話題進行更加深入的思考。
考慮到本書的目標和定位,對於沒有掌握任何一門編程語言的讀者而言,或許會造成閱讀門檻。另外,本書涉及多類界麵對象的識彆和操作、多種測試腳本的寫法、多個測試框架的使用。然而在實際工作中,界麵操作的自動化僅僅是分層測試策略中的一部分,並不能代錶全部的自動化工作。但為瞭便於從整體上把握和安排內容,編者還是以Web測試自動化作為本書的主要架構。這樣,相比單一地通過某個係統或産品來整體介紹自動化測試方麵的研究,書中各章節的內容顯得在體係性上有所欠缺。
目標讀者
本書主要麵嚮的讀者是具備編程基礎,缺乏自動化測試經驗,希望快速、係統地瞭解Selenium,從而進一步做好UI測試自動化的工程師。本書不僅是為測試人員而寫的,它還適用於對軟件測試有興趣的在讀大學生以及希望瞭解測試技術的開發人員。
全書綜閤瞭Selenium實踐過程中的方方麵麵,涉及腳本編寫、框架選型、開發模式等各個領域的討論。雖然示例代碼分為Java與Python兩種語言,但並不會影響閱讀,書中對示例代碼進行瞭詳盡的文字解讀。Python代碼適用於2.7.10版本。代碼下載鏈接:https://github.com/applewu/selenium-exercises.git。
如何閱讀本書
本書的前3章是全書內容的基礎,需要首先閱讀。在掌握瞭前3章之後,讀者可以按照任意順序閱讀後續章節。既可以順序瀏覽,概觀Selenium自動化測試實踐,也可以選擇性地閱讀自己感興趣的章節。
我們學習任何測試工具的最終目的不在於掌握工具,而在於如何利用工具更好地為自動化測試服務。自動化測試也隻是産品質量工作中的一部分。因此,不要沉迷於“術”,而忘卻瞭“道”。在閱讀過程中,讀者一方麵需要積極實踐,掌握測試腳本的編寫方法,另一方麵需要積極思考,如何在自己所在的工作中閤理應用起來。練習與反思,纔能將本書的效果發揮至極緻。
勘誤和支持
由於水平有限,書中難免會齣現一些錯誤或者不準確的地方,懇請讀者批評指正。在閱讀過程中遇到任何問題或錯誤,歡迎發送郵件至郵箱test4greenbar@163.com,期待能夠得到讀者的真摯反饋。
讀者還可以直接在Github的selenium-exercises項目中提交代碼有關的問題,也可以通過微博(@籽藤_上海)聯係編者。
緻謝
首先要感謝清華大學齣版社提供瞭這樣一個創作平颱。其次,感謝那些提供瞭寶貴建議的朋友們。雖然最終編寫這本書的是Ping++的測試團隊,但還有很多同事和好友為本書提供瞭寶貴的意見。感謝李雨洪、方雷、孫兵兵、葉波光、翁旭鋒、李響、左文婭、趙海林、付敏芝、史子飛提齣的問題和反饋,感謝我素未謀麵卻誌同道閤的好友劉琛梅以及我的老師薑曉東在百忙之中為本書寫瞭推薦序。
最後,我要感謝我的傢人。感謝我的父母,尤其是我的母親,培養瞭我的閱讀和學習習慣。感謝我的公公婆婆,他們的辛勤付齣讓我在寫書的過程中沒有後顧之憂,不用擔心兒子的生活起居。我還要感謝我的兒子塏興,你的笑容是我的能量。感謝你們伴我前行。
Ping++測試團隊吳子騰
上海張江高科
2017年9月10日
Selenium自動化測試之道 下載 mobi epub pdf txt 電子書