從0到1搭建自動化框架:原理、實現與工程實踐

蔡超 著

  • 出版商: 機械工業
  • 出版日期: 2022-01-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 313
  • 裝訂: 平裝
  • ISBN: 7111695208
  • ISBN-13: 9787111695202
  • 立即出貨

買這商品的人也買了...

商品描述

這是一本從架構設計、工作原理、設計原則、代碼實現、工程實踐等維度全面講解自動化框架的著作,
既講透了當下流行的各種自動化框架,又詳細講解了從0到1搭建自動化框架的方法和步驟,
能指導讀者快速實現從工程師向開發工程師的轉型,完成職業生涯的飛躍。

全書共16章,分為如下幾個部分:

第1部分(第1~2章):全面介紹了自動化框架的概念、原理、類型及通用模塊,
詳細論述了自動化框架的設計原則,以及微服務下自動化框架應該如何規劃和組織。

第2部分(第3~5章):著重介紹了Python語言體系下的兩個經典開源框架unittest和pytest,
以及如何用它們搭建自動化框架。

第3部分(第6~14章):是本書的重點,全面講解瞭如何從0開始、
不依賴任何開源框架、自主開發自動化框架,手把手帶領讀者完成自研框架開發。

第4部分(第15章):講解了持續集成的核心原理和所用工具,
以及如何將自研的自動化框架集成到企業現有的自動化流水線中,
從而實現持續。

第5部分(第16章):介紹瞭如何將自研的自動化框架發布至Python官方倉庫供他人下載使用。

作者簡介

蔡超
資深測試專家,測試開發社區VIPTEST聯合創始人,自動化測試框架 Ktest 作者。
在測試領域從業10餘年,曾先後服務於惠普、英孚教育等多家國際知名企業,開發過測試報告系統、測試論壇、爬蟲網站,對測試框架、自動化測試有深入研究,並被聘為中商聯互聯網應用工作委員會智庫專家。
長期致力於軟件測試的技術傳播工作,著有圖書《前端自動化測試框架:Cypress從入門到精通》;在拉勾教育上開設的專欄《測試開發入門與實戰》曾創下24小時售賣超過10000份的紀錄;軟件測試類目公眾號iTesting維護者。

目錄大綱

第1章 自動化框架基礎 1
1.1 自動化框架概述 1
1.1.1 自動化框架的定義 1
1.1.2 為什麼需要自動化框架 2
1.1.3 自動化框架的演化 2
1.2 自動化框架的通用原理 4
1.3 自動化框架的通用模塊 5
1.3.1 基礎模塊 5
1.3.2 管理模塊 6
1.3.3 運行模塊 6
1.3.4 統計模塊 6
1.4 自動化框架的類型 7
1.4.1 簡單框架 7
1.4.2 X-Driven框架 7
1.4.3 混合型框架 8
1.4.4 不同類型框架的對比 8
1.5 自動化框架的設計原則 9
1.6 本章小結 10

第2章 分層自動化與框架 11
2.1 分層自動化概述 11
2.1.1 什麼是分層自動化 11
2.1.2 分層自動化的模型 13
2.2 分層自動化的誤區 16
2.2.1 一定是按順序進行的 16
2.2.2 分層自動化跨層執行是反模式 17
2.2.3 分層後單元越多越好 17
2.3 分層自動化的佳實踐 17
2.3.1 盡量下沉 17
2.3.2 不要重複 18
2.3.3 合理選擇分層模型 19
2.3.4 考慮用戶場景 19
2.4 微服務下的自動化分層 20
2.4.1 微服務精要 20
2.4.2 微服務實施帶來的挑戰及解決之道 22
2.5 框架與分層自動化 24
2.6 本章小結 27

第3章 自動化框架初體驗 28
3.1 他山之石—unittest框架核心原理 28
3.1.1 unittest框架概述 28
3.1.2 unittest框架運行原理 29
3.2 融會貫通—深入使用unittest框架 32
3.2.1 夾具的使用 32
3.2.2 運行指定文件夾下的用例 33
3.2.3 動態查找用例並執行 37
3.2.4 按需組裝用例並執行 38
3.2.5 自定義用例查找原則 39
3.2.6 執行時忽略某些用例 40
3.3 unittest自動化框架搭建實踐 41
3.3.1 搭建UI自動化框架 41
3.3.2 擴展unittest的報告 44
3.3.3 使用unittest三步生成自動化框架 48
3.4 擴展功能—unittest框架集成接口 49
3.4.1 Requests核心講解 49
3.4.2 unittest框架集成接口示例 53
3.5 本章小結 56

第4章 玩轉自動化框架 57
4.1 向經典致敬—框架pytest核心講解 57
4.1.1 pytest基礎用法 58
4.1.2 零代價遷移unittest框架 60
4.1.3 pytest核心概念 62
4.2 深入探索—pytest集成API 63
4.3 游刃有餘—pytest核心用法 65
4.3.1 自定義用例查找原則 65
4.3.2 前置操作和後置操作的用法 66
4.3.3 靜態挑選用例 68
4.3.4 動態挑選用例 70
4.3.5 忽略用例 71
4.3.6 失敗用例自動重試 73
4.3.7 並發運行用例 74
4.4 深入實現—pytest數據驅動核心用法 75
4.4.1 pytest實現數據驅動 75
4.4.2 pytest數據驅動示例 77
4.5 如虎添翼—報告集成實踐 85
4.5.1 pytest-html報告集成詳解 85
4.5.2 Allure報告集成詳解 86
4.6 本章小結 98

第5章 自動化框架佳實踐 99
5.1 元素定位策略實踐 99
5.1.1 多種元素定位模型 99
5.1.2 元素定位實踐 101
5.2 PageObject模型實踐 106
5.2.1 PageObject模型的核心 106
5.2.2 PageObject模型應用 107
5.3 UI自動化和接口自動化的融合 109
5.3.1 融合原理 110
5.3.2 融合實踐 111
5.4 數據應用實踐 114
5.4.1 數據核心講解 114
5.4.2 數據驅動模型 117
5.4.3 數據驅動實踐 118
5.5 Web Service接口實踐 124
5.5.1 Web Service接口調用原理 124
5.5.2 Web Service接口實踐 125
5.6 本章小結 130

第6章 自動化框架與交互式命令 131
6.1 交互式命令精要 131
6.1.1 什麼是交互式命令 131
6.1.2 交互式命令在框架中的作用 132
6.2 交互式命令在pytest中的使用 133
6.3 自主實現交互式命令 135
6.3.1 Python標準庫argparse詳解 135
6.3.2 交互式命令代碼實踐 138
6.4 框架集成交互式命令 139
6.5 本章小結 141

第7章 自動化框架與數據驅動 142
7.1 數據驅動原理概述 142
7.2 深入數據驅動原理 143
7.2.1 數據驅動DDT概述 144
7.2.2 數據驅動DDT源碼解析 149
7.3 自主實現數據驅動 153
7.4 本章小結 157

第8章 自動化框架與環境 158
8.1 環境給自動化框架帶來的挑戰 158
8.1.1 環境的普遍問題 158
8.1.2 自動化框架如何應對環境變化 159
8.2 環境切換原理 160
8.2.1 環境切換原理概述 160
8.2.2 環境切換核心代碼實踐 161
8.3 框架集成環境動態切換 165
8.4 本章小結 170

第9章 自動化框架與用例 171
9.1 自動化用例詳解 171
9.2 用例在框架中的組織形式 172
9.2.1 從功能出發進行模塊化組織 172
9.2.2 從用戶角色出發進行模塊化組織 173
9.3 自主實現按需執行用例 174
9.3.1 用例挑選的場景 175
9.3.2 挑選用例的原理 175
9.4 用例挑選與框架的集成 180
9.4.1 框架文件結構 181
9.4.2 框架源碼解析 182
9.4.3 執行 192
9.5 本章小結 194

第10章 自動化框架與並發運行 195
10.1 並發與全局解釋器鎖 195
10.2 自主實現並發 197
10.2.1 多線程並發 197
10.2.2 多進程並發 201
10.2.3 多進程下線程池並發 204
10.3 自主實現分佈式並發 206
10.3.1 利用Selenium Grid實現分佈式並發 206
10.3.2 分佈式並發代碼實踐 207
10.4 框架集成實踐 208
10.4.1 集成PageObject模型 209
10.4.2 集成並發運行 213
10.5 本章小結 217

第11章 自動化框架與錯誤處理 218
11.1 錯誤處理核心原理 218
11.1.1 常見的錯誤處理類型 218
11.1.2 錯誤處理機制核心講解 220
11.2 自主實現錯誤處理模塊 222
11.2.1 自定義錯誤處理 222
11.2.2 錯誤處理模塊代碼實踐 223
11.3 框架集成錯誤處理 225
11.4 本章小結 230

第12章 自動化框架與日誌系統 231
12.1 Logging精要講解 231
12.1.1 Logging工作流 232
12.1.2 Logging核心組成 234
12.2 自主實現日誌系統 235
12.2.1 簡單的日誌系統 235
12.2.2 多線程Logging精要 238
12.2.3 多進程Logging精要 239
12.3 框架集成日誌系統 242
12.4 本章小結 249

第13章 自動化框架與報告 250
13.1 報告詳解 250
13.1.1 報告核心模塊 250
13.1.2 報告設計 251
13.2 自主實現報告 253
13.2.1 報告模板開發 253
13.2.2 報告數據收集代碼實踐 258
13.3 框架集成報告 262
13.4 本章小結 268

第14章 完善自動化框架 269
14.1 自主實現前置準備和後置清理 269
14.1.1 前置準備和後置清理的工作流程 269
14.1.2 自主代碼實踐 271
14.2 融合API和UI進行自動化 273
14.2.1 使用API或者UI進行 274
14.2.2 同時運行API和UI自動化 275
14.3 一些遺留問題 277
14.4 本章小結 278

第15章 自動化框架與持續集成/持續部署 279
15.1 持續集成/持續部署核心原理講解 279
15.1.1 什麼是持續集成/持續部署 279
15.1.2 持續集成/持續部署核心工作流 280
15.2 持續集成/持續部署工具詳解 281
15.2.1 Jenkins流水線 282
15.2.2 Docker核心知識 283
15.2.3 GitHub WebHook要點 286
15.3 持續集成項目實戰 286
15.3.1 創建GitHub項目 286
15.3.2 編寫Jenkinsfile文件 287
15.3.3 Jenkins Blue Ocean流水線搭建 288
15.4 本章小結 300

第16章 框架發布 301
16.1 框架打包、發布精要 301
16.1.1 詳解pip和PyPI 302
16.1.2 打包框架 303
16.1.3 發佈到PyPI 304
16.2 框架發布實戰 304
16.3 本章小結 313