-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Web前端測試與集成——Jasmine/Selenium/Protractor/Jenk

( 簡體 字)
作者:金鑫、武帥類別:1. -> 程式設計 -> 網路爬蟲
譯者:
出版社:清華大學出版社Web前端測試與集成——Jasmine/Selenium/Protractor/Jenk 3dWoo書號: 47359
詢問書籍請說出此書號!

有庫存
NT售價: 345

出版日:9/1/2017
頁數:380
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302472759
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

筆者多年來一直在微軟公司從事與Web開發相關的技術工作,幫助客戶維護和處理各
種Web應用的突發事件,期間走訪了大量客戶,為他們提供解決方案或指導意見。我們深
深感受到近些年來Web技術的快速發展對Web開發人員、測試人員帶來的諸多挑戰:


Web開發是一個開放的、不斷演進的、高速迭代的領域。即便是過去一直被詬病
為封閉的微軟公司也開始擁抱開源世界,提供.NET Core、TypeScript等多項開源和
跨平臺技術。這對于過去長期在單一廠商平臺上進行項目開發的技術人員而言,
就更需要積極主動地學習新技術,接受新挑戰,以適應變化,滿足業務需求。

基于JavaScript的前端應用規模越來越大,功能越來越復雜,前端測試已經成為
保證產品質量的關鍵因素。同時,由于Web開發存在測試周期短、更新頻繁的特
點,傳統測試人員需要具備一定的開發能力才能充分利用自動化測試工具來提高
測試效率。

隨著敏捷軟件開發方法和DevOps的流行,測試和開發環節之間的界限逐漸變得模
糊。傳統開發人員需要了解一定的測試方法并具有相應的思維方式,才能設計出
良好的測試用例。由于測試和開發環節的融合,無論是開發人員還是測試人員都
需要不斷提高自身的能力和價值。


本書是筆者在開發測試領域中的實踐與經驗的總結,希望讀者通過對本書的學習,能
夠掌握Web前端測試的各種技巧,提升自己的能力,迎接新技術的挑戰。

本書內容

全書共分四個部分,前兩部分為金鑫編寫,后兩部分為武帥編寫。


第一部分為基礎篇(第1∼2章),總覽了前端開發測試中的挑戰與進行測試轉型
的方法,以及基于Node.js搭建測試開發基礎環境的步驟。

第二部分為單元測試篇(第3∼7章),基于單元測試理論深入剖析了Jasmine測試
框架的結構與各種使用范式,內容覆蓋了所有主流單元測試的技巧。然后,結合




gulp、Karma等構建、執行工具對單元測試進行自動化處理。最后以實戰的形式演
示了AngularJS單元測試最佳實踐以及Istanbul代碼覆蓋率的應用等內容。


第三部分為自動化測試篇(第8∼14章),由淺入深地介紹了Selenium 各個組件的
功能特點和WebDriver 在自動化測試中的使用技巧。進而基于Protractor 深入介紹了
在Node.js環境下,通過JavaScript代碼結合WebDriver 進行自動化測試,并全面覆蓋
Chrome、Firefox、IE和Edge等主流瀏覽器的最佳實踐,內容包括頁面對象模型、
性能測試、數據驅動測試和分布式測試等。

第四部分為集成篇(第15∼16 章)

闡述了基于持續集成技術來實現更快、更可
靠的軟件交付方法,比較了當前主流CI 系統的特點,展示了通過Jenkins 與TFS 、
VSTS和GitHub集成來實現Web 應用持續測試的方法。
本書適合對象

本書適合所有Web 開發人員、測試人員和項目經理做學習、參考之用。本書涉及的示
例代碼,讀者可從網址https://github.com/FrontEndTesting/webtesting-book-demo 處下載,供
對照學習。

致謝

首先,感謝家人對我們利用業余時間編寫本書的理解,在漫長的編寫過程中始終給予
關愛和支持。其次,感謝張量、毛蔚、徐春林和顧潔等微軟公司同事的大力鼓勵與支持,
本書的成書與他們密不可分。

由于筆者學識有限,時間倉促,書中難免出現錯誤或疏漏,懇請廣大讀者不吝指正。
如果您有什么寶貴意見,請發送郵件至jin_xin2000@outlook.com,我們將不勝感激。
內容簡介:

全書共分為四部分。第一部分為基礎篇,總覽了前端開發測試中的挑戰與測試轉型,介紹了測試基礎環境的搭建;第二部分為單元測試篇,深入介紹了如何基于Jasmine單元測試框架和gulp、Karma等構建、執行工具對前端JavaScript代碼進行單元測試,以及AngularJS單元測試的最佳實踐和代碼覆蓋率等;第三部分為自動化測試篇,基于Protractor介紹了在Node.js環境下通過Selenium WebDriver全面覆蓋各個主流瀏覽器,進行自動化測試的最佳實踐,包括頁面對象模型、性能測試和分布式測試等;第四部分為集成篇,闡述了基于持續集成以實現更快、更可靠的軟件交付,展示了如何通過Jenkins與TFS、VSTS和GitHub的集成,實現Web應用的持續測試。
目錄:

基礎篇
第1章前端開發測試總覽...2
1.1Web技術的發展和挑戰...2
1.2傳統開發流程的局限性...4
1.3傳統手工測試的局限性...6
1.4開發模式的轉型...7
1.4.1敏捷軟件開發...7
1.4.2全流程測試...9
1.4.3讓測試自動化...11
1.4.4持續集成...11
1.4.5DevOps...12
1.5本書目標...13
第2章搭建測試基礎環境...15
2.1JavaScript的運行環境Node.js...15
2.1.1什么是Node.js...15
2.1.2Node.js的版本發展...17
2.1.3安裝Node.js...18
2.2軟件包管理系統NodePackageManager(npm)...21
2.2.1安裝和更新npm...21
2.2.2package.json...22
2.2.3安裝軟件包...23
2.2.4列出已安裝的軟件包...27
2.3代碼編輯器(VisualStudioCode)...28
目錄


2.3.1安裝VisualStudioCode...28
2.3.2初識VisualStudioCode...29
單元測試篇
第3章單元測試概論...34
3.1單元測試的特性...34
3.2單元測試的重要性...35
3.3測試金字塔...37
3.4測試先行(Test-First)...8
3.4.1測試驅動開發(Test-DrivenDevelopment)...39
3.4.2行為驅動開發(Behavior-DrivenDevelopment)...40
3.5Web前端測試框架...42
第4章深入Jasmine單元測試...44
4.1初識Jasmine...44
4.1.1獲取Jasmine...44
4.1.2前端單元測試架構...46
4.1.3Jasmine測試框架類庫...46
4.2組織測試用例...48
4.2.1describe...48
4.2.2it...49
4.2.3安裝和拆卸...50
4.2.4禁用測試套件和掛起測試用例...54
4.3創建單元測試...55
4.3.1準備測試場景...55
4.3.2編寫測試用例...56
4.3.3執行測試......58
4.4Jasmine的斷言...59
4.4.1內置匹配器...59
4.4.2自定義匹配器(CustomMatcher)........................67

4.4.3自定義相等檢驗器(CustomEqualityTester)
..................68
4.4.4非對稱相等檢驗器(AsymmetricEqualityTester)...............70
4.4.5輔助匹配函數...71
4.5測試替身(TestDouble)...74
4.5.1測試替身的類型...74
4.5.2使用JasmineSpies......77
4.6測試異步代碼...84
4.6.1Jasmine的異步支持...87
4.6.2模擬JavaScriptTimeout相關函數...........................89
4.7Jasmine插件...90
4.7.1jasmine-ajax...90
4.7.2jasmine-jquery...94
4.8基于瀏覽器調試......100
第5章單元測試執行工具Karma..............................102
5.1初識Karma...102
5.2安裝Karma和相關插件...104
5.2.1安裝Karma...104
5.2.2安裝插件...105
5.3Karma的配置...106
5.3.1生成配置文件...106
5.3.2配置文件的說明......107
5.4基于Karma的調試...115
5.5前端自動化任務構建工具..............................116
5.5.1gulp和Grunt...116
5.5.2gulp的API...118
5.5.3運行gulp任務...122
5.6Karma和gulp集成...123
第6章AngularJS應用的單元測試...........................125
6.1測試AngularJS應用的挑戰..............................125

6.2初識ngMock...127
6.2.1準備測試環境...127
6.2.2理解模塊(Module)...128
6.2.3理解注入機制(Inject)
...131
6.3AngularJS單元測試最佳實踐...........................138
6.3.1測試Controller...138
6.3.2單元測試中的Scope...142
6.3.3測試HTTP交互...144
6.3.4測試Directive...154
6.3.5測試$timeout和$interval...166
6.3.6測試Promise...171
6.3.7測試$log......174
6.3.8測試$exceptionHandler...175
第7章代碼覆蓋率...177
7.1代碼覆蓋率的衡量標準...177
7.1.1函數覆蓋率(FunctionCoverage)........................177
7.1.2語句覆蓋率(StatementCoverage)
........................178
7.1.3分支覆蓋率(BranchCoverage)........................179
7.1.4條件覆蓋率(ConditionCoverage)........................179
7.2代碼覆蓋率的意義...179
7.3JavaScript代碼覆蓋率工具Istanbul........................180
7.3.1安裝Istanbul...181
7.3.2覆蓋率測試...181
7.3.3覆蓋率閾值...183
7.3.4忽略代碼...183
7.3.5Istanbul工作原理......184
7.4使用Karma生成覆蓋率報告...........................185

自動化測試篇
第8章走進自動化測試...188
8.1自動化測試的優勢...188
8.2自動化測試實施流程...189
8.3自動化測試轉型的適應性..............................190
8.4測試工具的選擇......192
第9章初識Selenium...194
9.1Selenium發展歷史...194
9.2Selenium工具套裝...196
9.2.1SeleniumRC...196
9.2.2SeleniumWebDriver...197
9.2.3SeleniumGrid...198
9.2.4SeleniumIDE...198
第10章SeleniumWebDriver與元素定位........................205
10.1搭建集成開發環境...205
10.2NUnit測試框架......207
10.3編寫測試用例...209
10.4使用工廠模式創建驅動對象...........................212
10.5定位頁面元素...214
10.5.1基于id定位...214
10.5.2基于Name定位...215
10.5.3基于ClassName定位...216
10.5.4基于TagName定位...217
10.5.5基于LinkText定位...217
10.5.6基于PartialLinkText定位...218
10.5.7基于CssSelector定位...219
10.5.8基于XPath定位......220

第11章基于WebDriver的Protractor測試框架..................227
11.1WebDriver的JavaScript綁定...........................227
11.1.1WebDriverJs與Protractor...228
11.1.2Protractor特點概述...229
11.1.3Protractor的兼容性...230
11.2搭建Protractor測試環境...230
11.2.1安裝Protractor編輯器擴展..............................230
11.2.2準備AngularJS被測網站...231
11.2.3全局安裝Protractor與瀏覽器驅動........................234
11.2.4本地安裝Protractor與瀏覽器驅動........................235
11.2.5編寫測試代碼...235
11.2.6編寫配置文件...236
11.2.7運行測試用例...236
11.2.8調試......237
11.3選擇JavaScript測試框架..............................240
11.3.1配置JavaScript測試框架...240
11.3.2JavaScript測試框架的適配器...241
11.4定位頁面元素...244
11.4.1基于binding定位......245
11.4.2基于model定位......246
11.4.3基于options定位......246
11.4.4基于buttonText定位...247
11.4.5基于repeater定位...247
11.4.6基于js定位...248
11.4.7鏈式調用定位操作...249
11.4.8使用$和$$...250
11.4.9自定義定位策略......251
11.5異步流程控制...252
11.5.1使用Promise...253
11.5.2定制的ControlFlow...256

11.5.3JavaScript測試框架的異步適配器........................259
11.6頁面交互...260
11.6.1操作瀏覽器...260
11.6.2操作元素...263
11.7Protractor的等待機制...265
11.7.1waitForAngular...265
11.7.2使用sleep...266
11.7.3隱式等待...266
11.7.4顯式等待...267
11.8測試非AngularJS程序...269
第12章使用SeleniumServer...273
12.1SeleniumServer環境配置..............................273
12.1.1安裝JavaJDK...274
12.1.2下載SeleniumServerStandalone........................275
12.1.3下載瀏覽器驅動......276
12.1.4配置Protractor...276
12.1.5啟動SeleniumServer...277
12.2JSONWireProtocol與W3CWebDriver標準..................279
12.3Selenium3.0...282
12.4配置瀏覽器...282
12.4.1Chrome......285
12.4.2Firefox......285
12.4.3Edge......288
12.4.4IE.........289
12.4.5多瀏覽器測試...291
第13章自動化測試最佳實踐...294
13.1頁面對象模型...294
13.1.1關注點分離...295
13.1.2實現Protractor頁面對象...296

13.1.3頁面對象最佳實踐...306
13.2數據驅動測試...307
13.3測試報告...311
13.3.1控制臺報告...312
13.3.2JUnit報告...313
13.3.3HTML報告...315
13.4性能測試...316
13.5圖像匹配...319
13.6任務自動化...322
13.6.1與gulp集成...322
13.6.2npm腳本...325
第14章分布式自動化測試...327
14.1分布式測試概述...327
14.2基于SeleniumGrid的分布式測試........................328
14.2.1啟動中央節點...329
14.2.2注冊工作節點...329
14.2.3執行測試...331
14.3基于云計算的分布式測試...........................333
14.4配置共享...336
集成篇
第15章持續集成概論...340
15.1開發流程自動化...340
15.1.1什么是持續集成......341
15.1.2持續集成的價值......341
15.2持續集成的功能特征...343
15.2.1編譯......343
15.2.2測試......344
15.2.3審計......344

15.2.4部署......345
15.2.5反饋......345
15.3如何實施持續集成...345
15.3.1消除誤解...345
15.3.2前提條件...346
15.3.3CI工具......347
15.3.4實踐準則...348
15.4選擇持續集成工具...350
第16章持續測試......352
16.1測試策略...352
16.2基于Jenkins的持續集成...353
16.3集成TeamFoundationServer...........................356
16.3.1創建項目...356
16.3.2從VisualStudioCode提交變更...........................358
16.3.3配置TFS插件...359
16.3.4創建并配置Jenkins構建項..............................360
16.3.5集成單元測試...364
16.3.6集成自動化測試......368
16.3.7郵件反饋...370
16.4集成VisualStudioTeamServices........................371
16.5集成GitHub...376
16.5.1配置GitHub...377
16.5.2配置Jenkins...379
16.5.3配置構建任務...380
序: