總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
 
 
 
 
Python Web自動化測試設計與實現(附線上配套資源)
 作  者: 陳曉伍
 出版單位: 清華大學
 出版日期: 2019.04
 進貨日期: 2019/4/29
 ISBN: 9787302519294
 開  本: 16 開    
 定  價: 593
 售  價: 474
  會 員 價: 435
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

資深測試開發專家撰寫,凝聚自己多年開發經驗,系統且深入闡釋利用Python進行Web自動化測試涉及的方法和實踐


內容簡介:

本書是資深測試開發專家的經驗結晶,由淺入深地闡釋了Web自動化測試的相關技術,包括Web UI自動化測試、API自動化測試及測試相關的基礎開發。通過學習本書,讀者可以基本掌握Web測試相關的大部分技術點。本書是測試相關人員必備的技術指導。書中每個技術點都有示例代碼,理論與實踐相結合的方式能夠使讀者快速理解Web自動化測試。 本書循序漸進地講解了Web自動化測試的各項知識點,使任何層級的讀者都能從中受益。緒論部分介紹自動化方面的基礎知識,幫助讀者少走彎路,正確學會自動化測試。第1~3章介紹Selenium、Python以及Web UI自動化的相關基礎知識。第4章和第5章介紹Selenium IDE和Selenium常規物件介面。第6章介紹Web UI自動化特殊場景處理。第7章介紹UnitTest單元測試框架。第8章介紹分層框架設計與實現。第9章介紹測試腳本的部署。第10章和第11章介紹Web API相關基礎知識。第12章介紹通過Python發送HTTP請求。第13章介紹API工具的設計與實現。第14章介紹Web服務的集成工作。第15章介紹HTTP Mock的開發。 本書適合Web測試人員、Web自動化人員、Web開發人員等初中級讀者以及希望使用Python作為程式設計語言的軟體測試工程師參考。


作者簡介:

陳曉伍,畢業於北京航空航太大學電腦科學與技術專業,資深測試開發專家,有超過10年測試開發相關經驗,對測試及自動化技術有較深的理解與應用,開發過若干自動化框架與平臺。曾就職過新浪、當當、科大訊飛等互聯網公司,負責新浪微博用戶端、當當電商網站以及靈犀語音助手等產品的自動化測試工作。現在創業公司擔任測試經理。精通Python語言,擅長Java、Selenium、QTP。創建testqa.cn測試社區,活躍於CSDN與51testing社區。


圖書目錄:

緒論 1
第1章 Selenium基礎 9
1.1 Selenium的歷史和分支 9
1.2 Selenium的特點 12
1.3 Selenium名詞說明 12
1.3.1 Selenium RC 12
1.3.2 Selenium Server 12
1.3.3 Selenium WebDriver 13
1.3.4 Selenium Client 13
1.3.5 Selenium Grid 13
1.3.6 Selenium IDE 13
1.4 Selenium基本原理 14
1.5 Selenium環境搭建 15
1.5.1 Windows環境搭建 16
1.5.2 Ubuntu環境搭建 22
1.5.3 MacOS環境搭建 26
1.6 Selenium調用不同流覽器 28
1.6.1 調用Firefox流覽器 28
1.6.2 調用Chrome流覽器 29
1.6.3 調用IE流覽器 30
1.6.4 IE流覽器安全機制設置 30
1.7 Selenium Docker的使用 31
1.7.1 Docker環境安裝 32
1.7.2 Selenium Docker鏡像下載 35
1.7.3 Docker下運行Selenium腳本 36
1.8 Selenium 3說明 38
1.8.1 不再支持Selenium RC 38
1.8.2 僅支持JDK 1.8.0以上版本 38
1.8.3 Selenium IDE支持Chrome外掛程式 38
1.8.4 FireFox需要安裝獨立驅動 38
1.8.5 僅支持IE 9.0以上版本 39
1.8.6 支持微軟的Edge流覽器 39
1.8.7 支持官方的SafariDriver 39

第2章 Python程式設計基礎 41
2.1 基礎語法 41
2.1.1 Python語句執行 41
2.1.2 Python語法格式 42
2.1.3 Python變數與類型 44
2.1.4 Python運算子與運算式 47
2.2 控制語句 52
2.2.1 if-else語句 52
2.2.2 for語句 53
2.2.3 while語句 53
2.2.4 continue語句 54
2.2.5 break語句 54
2.2.6 pass語句 55
2.3 模組化 55
2.3.1 函數 55
2.3.2 類與實例 59
2.3.3 模組檔 61
2.3.4 包 62
2.4 基礎資料結構 63
2.4.1 列表 63
2.4.2 元組 64
2.4.3 字典 65
2.4.4 遍歷資料 67
2.5 輸入/輸出 67
2.5.1 命令列輸入/輸出 67
2.5.2 檔輸入/輸出 69
2.6 內置函數 70
2.6.1 id函數 70
2.6.2 dir函數 71
2.6.3 help函數 71
2.6.4 type函數 72
2.6.5 isinstance函數 72
2.6.6 zip函數 72
2.6.7 filter函數 72
2.6.8 map函數 73
2.6.9 reduce函數 73
2.7 異常 73
2.7.1 異常捕獲 73
2.7.2 自訂異常 75
2.8 魔法特性 76
2.8.1 列表推導式 76
2.8.2 反覆運算器 77
2.8.3 生成器 78
2.8.4 閉包 79
2.8.5 裝飾器 79
2.8.6 內省機制 83
2.9 併發任務 86
2.9.1 多進程 86
2.9.2 多執行緒 91
2.9.3 協程 93
2.10 編解碼 96
2.10.1 源碼檔編碼 97
2.10.2 解譯器預設編碼 98
2.10.3 外部檔編碼 99
2.10.4 資料庫編碼 100
2.10.5 編解碼函數 100

第3章 Web UI自動化基礎 102
3.1 HTML與DOM簡介 102
3.2 學習元素定位方式 104
3.3 CSS定位技術 106
3.4 使用工具幫助定位 106
3.4.1 IE的Developer Tool 107
3.4.2 Firefox的Web開發者工具 107
3.4.3 Chrome的開發者工具 108
3.4.4 Firefox的XPath Checker外掛程式 108
3.4.5 Chrome的XPath工具 109
3.4.6 Firefox的CSS外掛程式 109
3.4.7 Chrome的CSS工具 110
3.4.8 Firefox的WebDriver Element Locator外掛程式 110
3.5 Selenium中進行元素定位 112
3.5.1 獲取一個定位元素 112
3.5.2 獲取一組定位元素 113
3.5.3 匹配非第一個元素 114

第4章 Selenium IDE 115
4.1 Selenium IDE安裝 115
4.1.1 Firefox安裝 115
4.1.2 Selenium IDE線上安裝 116
4.1.3 Selenium IDE本地安裝 117
4.2 Selenium IDE功能介紹 120
4.2.1 Selenium IDE視窗 120
4.2.2 功能表列 121
4.2.3 地址欄 123
4.2.4 工具列 124
4.2.5 用例管理區 124
4.2.6 用例腳本開發區 125
4.2.7 資訊輸出區 126
4.3 Selenium IDE使用 126
4.3.1 Selenium IDE錄製與重播 126
4.3.2 Selenium IDE腳本編輯 128
4.3.3 Selenium IDE元素定位 138
4.3.4 Selenium IDE匹配模式 141
4.3.5 Selenium IDE腳本轉換 143

第5章 Selenium常規物件介面 148
5.1 流覽器物件操作 148
5.1.1 查找元素方法 148
5.1.2 流覽器視窗方法 149
5.1.3 Cookie處理方法 149
5.2 WebElement物件操作 150
5.3 文字方塊物件操作 152
5.4 按鈕物件操作 152
5.5 下拉清單物件操作 153
5.6 連結化物件操作 154

第6章 Web UI自動化特殊場景處理 156
6.1 處理多視窗測試場景 156
6.2 處理流覽器彈框場景 158
6.2.1 Alert物件及方法 158
6.2.2 優雅地處理Alert彈框 159
6.3 Selenium進行鍵盤滑鼠操作 160
6.3.1 鍵盤操作 160
6.3.2 滑鼠操作 161
6.4 非Web控制項的操作實現 162
6.5 Selenium執行JavaScript及操作DOM 164
6.6 Selenium截屏操作 165

第7章 UnitTest單元測試框架 167
7.1 常規使用方式 167
7.2 測試套件使用 169
7.3 TestLoader的使用 170
7.4 UnitTest載入流程 172

第8章 分層框架設計與實現 173
8.1 資料驅動層 174
8.1.1 檔存儲 175
8.1.2 資料庫存儲 176
8.2 定位符驅動層 180
8.2.1 本地檔存儲 181
8.2.2 遠端服務存儲 183
8.3 頁面操作層 185
8.4 業務邏輯層 190
8.4.1 公共業務 190
8.4.2 常規業務 191
8.5 結果驅動層 193
8.5.1 日誌Logger記錄 193
8.5.2 自訂Logger記錄 199
8.5.3 郵件通知結果 203
8.6 異常處理層 204
8.6.1 程式異常處理 204
8.6.2 斷言異常處理 208
8.6.3 自訂異常類 209

第9章 測試腳本部署 211
9.1 使用SVN管理測試腳本 211
9.1.1 SVN服務安裝 212
9.1.2 SVN用戶端安裝 217
9.1.3 SVN使用簡介 219
9.1.4 SVN操作規範 223
9.2 遠端執行用例場景 224
9.3 Selenium Grid模組及搭建 228
9.3.1 Selenium Grid環境搭建 229
9.3.2 Selenium Grid使用 232
9.4 持續集成的自動化測試 232

第10章 Web API介紹 236
10.1 HTTP簡介 236
10.1.1 HTTP請求報文 237
10.1.2 HTTP回應報文 239
10.2 Web API介紹 240
10.3 REST API介紹 241

第11章 Web API自動化基礎 243
11.1 規則運算式模組學習 243
11.1.1 字元搜索 244
11.1.2 字元替換和分割 246
11.1.3 運算式修飾符 246
11.1.4 其他事項 247
11.2 XML讀寫模組的學習 248
11.2.1 讀取XML文檔 249
11.2.2 寫入XML文檔 252
11.3 JSON模組的學習 253
11.3.1 JSON串生成 254
11.3.2 JSON串解析 256
11.4 MD5、BASE64編解碼 256
11.4.1 BASE64編解碼 257
11.4.2 MD5加密 258
11.4.3 資料序列化 259

第12章 Python發送HTTP請求 261
12.1 HTTP請求發送 261
12.1.1 requests模組安裝 261
12.1.2 發送GET請求 262
12.1.3 發送POST請求 264
12.1.4 發送multipart/form-data請求 265
12.1.5 發送其他類型請求 266
12.2 HTTP請求認證 266
12.2.1 HTTP Basic Auth 267
12.2.2 HTTP Digest Auth 267
12.2.3 OAuth認證 268
12.2.4 自訂認證 268
12.3 URL的編解碼 269
12.4 HTTP回應內容驗證 271
12.4.1 狀態碼驗證 271
12.4.2 回應頭驗證 272
12.4.3 回應體驗證 273
12.5 多執行緒發送請求 276
12.5.1 函數式多執行緒 276
12.5.2 類繼承式多執行緒 279

第13章 API工具設計與實現 282
13.1 最簡單的API工具 282
13.1.1 請求方法設置 284
13.1.2 請求頭設置 288
13.1.3 支持檔上傳 289
13.1.4 簡單結果驗證 292
13.2 測試資料讀取 293
13.2.1 測試資料格式 293
13.2.2 資料存儲方式 294
13.2.3 實現資料讀取 296
13.3 測試資料用例化 299
13.3.1 用例基本資訊 299
13.3.2 用例套件資訊 301
13.3.3 用例範本資訊 302
13.4 測試流程控制 304
13.4.1 鉤子函數介面設計 305
13.4.2 鉤子函數介面調用 307
13.4.3 鉤子函數介面實現 309
13.5 測試結果驗證 311
13.5.1 完全匹配 311
13.5.2 內容包含 312
13.5.3 正則匹配 313
13.5.4 JSONPath 313
13.6 測試資料記錄 315
13.6.1 結果記錄 315
13.6.2 日誌記錄 317

第14章 集成為Web服務 319
14.1 Web服務簡介 319
14.1.1 Web框架選擇 320
14.1.2 DEMO實現 321
14.1.3 框架開發學習 322
14.2 Web上啟動用例執行 330
14.2.1 運行參數接收 332
14.2.2 測試請求處理 335
14.3 Web上查看測試結果 337
14.3.1 任務列表頁 338
14.3.2 用例結果頁 340
14.4 持續集成的API自動化測試 342
14.4.1 用例集保存 342
14.4.2 用例集執行 345

第15章 HTTP Mock開發 347
15.1 HTTP Mock介紹 347
15.2 HTTP Mock分析 348
15.3 HTTP Mock實現 349
15.3.1 根據請求URL過濾 349
15.3.2 根據請求方法過濾 350
15.3.3 根據請求頭過濾 352
15.3.4 根據請求資料過濾 353

參考文獻 356
結束語 357


章節試讀:

前 言
為什麼要寫這本書
作為一名測試人員,從工作的第一天開始我就對自動化測試產生了獨特的興趣。而最初的理由也很簡單,就像開發人員不願意只寫業務代碼一樣,測試人員也不希望只局限於手動測試。自動化測試對於當時還是新手測試人員的我而言,完全可以用“高大上”來形容。自此,我便在學習和實踐自動化測試的道路上越走越遠。
而隨著電腦技術及互聯網的發展,如今作為一名測試人員,不僅要掌握針對於業務流程的手動測試方法和理論;還要具備一定的自動化、性能的測試能力。甚至於在找工作時會寫腳本,會使用自動化工具進行測試已經成為測試人員的一種標配。本書總結了作者在項目實踐中的多年工作經驗,梳理了自動化測試需要掌握的一些基本技能和知識,幫助初級測試人員快速掌握目前常用的自動化測試手段和方法,提高自身的綜合技能水準。
自動化測試對於測試新人而言,往往會理解為手動功能測試的自動化實現。比如:UI自動化測試。但從廣義概念來看,自動化測試還要包括:介面自動化、性能自動化、白盒自動化、安全自動化、自動化工具/框架/平臺等一系列可以通過開發腳本來實現的測試。而本書所講到的自動化測試內容包括:UI自動化、自動化框架、介面自動化、自動化工具、自動化持續集成等相關知識。目的是給讀者打開一個通向更加廣泛的自動化測試之門。
此外,對於一些剛開始接觸自動化測試的人員而言,自動化測試幾乎等同于高效測試。其實現專案中並沒有想像的那麼美好,自動化測試需要根據不同的場景和需求來定制不同的自動化測試方案。本書最開始的部分就介紹了自動化測試的方法論和最佳實踐,避免測試新人誤入自動化測試的“陷阱”。
另外,本書也是一本Python的基礎學習教程,作為Python的鐵杆粉絲,自然也希望能夠將Python語言最大程度地推廣到自動化測試領域中來。正所謂“人生苦短,我用Python!”
本書特色
1. 附帶讀書興趣小組,方便學習溝通
為了便於讀者相互溝通,提高學習效率,作者專門為本書建設了讀書興趣小組,讀者可以通過登錄testqa.cn並加入seleniumbook小組來學習和交流。另外本書中的源碼包也會在這個小組中支持下載。
2. 涵蓋多種自動化測試方法
本書涵蓋自動化測試中使用到的多種測試方法,除了UI的自動化,還包括介面自動化,測試工具開發、CI的使用。
3. 對Selenium工具的歷史和原理進行了分析與說明
除了對於Selenium工具,提供相關介面的實例代碼外,還介紹了Selenium的歷史和基本原理。使得讀者在學習的過程中,知其然也知其所以然。另外對Selenium IDE的操作和使用也做了較為詳盡的說明,使得初學者也可以快速上手和使用Selenium進行自動化測試的
實踐。
4. 介紹詳盡框架的開發
本書除了介紹Selenium的一些基本介面之外,還介紹了在基於Selenium的情況下,如何搭建可用性較高的測試基礎框架。使用分層架構、資料驅動、業務解耦、功能封裝等方式,讓UI自動化測試不再是“可遠觀而不可褻玩”的技術。
5. 總結自動化最佳實踐
本書的開頭並沒有一上來就開展技術的介紹,而是先從方法論和最佳實踐開始。目的是讓讀者先理解“道”,再學習“術”。這樣才能更好地學習和真正地利用自動化的相關測試技術。避免測試新人誤入自動化的“陷阱”。
6. 提供基礎的Python教程
除了介紹自動化相關的測試技術,本書還涵蓋了書中其他地方需要用到的Python程式設計基礎知識。為的是讓讀者只需一本書就可以開始步入自動化測試的行列。
7. 提供完善的技術支援和售後服務
本書提供了專門的技術支援郵箱:five3@163.com。讀者在閱讀本書過程中有任何疑問都可以通過該郵箱獲得幫助。
讀者物件
希望學習自動化測試技術的測試人員;
希望提升自身技術的測試人員;
希望瞭解自動化測試技術的開發人員;
其他希望利用自動化技術的相關人員。
本書主要內容
本書分為三大部分。
第一部分為方法論,主要介紹入門自動化測試之前需要瞭解的相關方法論和最佳實踐。
第二部分為Selenium介紹,著重講解Selenium的歷史、原理、IDE和介面的使用,同時還介紹了基於Selenium的自動化框架搭建。
第三部分為工具開發介紹,通過一步步深入的介紹帶領讀者進行介面測試工具、mock測試工具的開發,同時集成到Web服務中。
除了這三個主要部分之外,還會有一些其他的自動化相關知識,各自分散在不同的章節中。比如:CI持續集成的使用,基礎環境的搭建,Python語言的學習等。如果你是一名初學者,建議從第1章開始學習。
閱讀本書的建議
測試新手讀者,建議從第1章順次閱讀。
有一定Python基礎的讀者,可以根據實際情況有重點地選擇閱讀各個技術要點。
在學習框架之前,需要保證對Selenium和Python語法章節有了一定的掌握;先通讀一遍有個大概印象,然後將每個知識點的示例代碼都在開發環境中操作一遍,加深對知識點的印象。
結合github中的完整代碼來實際操作,這樣理解起來就更加容易,也會更加深刻。
進一步學習建議
當您閱讀完本書後,相信已經掌握了Python Web自動化測試的基本知識。但如果還要更進一步深入下去,還必須要進一步地掌握Python的開發技術,以及加深對自動化測試的理解。掌握了扎實的技術能力之後,針對專案中需要提煉的流程和事務,進行分析並有針對性地優化。做好自動化項目最重要的一點就是:結合實際業務需求,否則可能就成為“空中
樓閣”。
此外還需要學習性能、白盒、安全等相關測試技術,結合自動化來提升這些測試過程中的效率。比如:測試資料的準備、mock系統的開發、代理監聽、資訊採集等。
如果希望在Python程式設計方面有更多的提升,推薦去閱讀Python核心程式設計方面的書籍,而對於專案中的效率提升則需要自己更多地去實踐、學習和思考。
勘誤和支持
由於作者的水準有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。為此,特意創建一個線上支持與應急方案的二級網站http://www.testqa.cn/seleniumbook。你可以將書中的錯誤發佈在Bug勘誤表頁面中,同時如果你遇到任何問題,也可以訪問seleniumbook小組頁面,我將儘量線上上為讀者提供最滿意的解答。書中的全部原始檔案除可以從github(http://github.com/five3)下載外,還可以從testqa網站下載,我也會及時更新相應的功能。如果你有更多的寶貴意見,也歡迎通過清華大學出版社網站(www.tup.com.cn)與我們聯繫,期待能夠得到你們的真摯回饋。
致謝
首先要感謝我的愛人、岳母,是她們的辛苦付出和支持才讓我有時間來進行本書的寫作。
感謝出版社的編輯老師,在這一年多的時間中始終支持我的寫作,你的鼓勵和幫助引導我能順利完成全部書稿。
還要感謝職業生涯中給予過我幫助的同事們,沒有你們的信任和無私的幫助就沒有這本書。
最後感謝我的爸爸、媽媽、哥哥、姐姐,感謝你們將我培養成人,並給予我的一切!
謹以此書獻給我最親愛的兒子,希望他一直快樂成長!


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。