編輯推薦
介紹用開源測試工具進行軟件測試和框架設計的圖書。
對自動化測試框架層層剖析,對構成自動化測試框架的各個元素,包括基類、日誌、計時、檢查點、截屏、數據處理,娓娓道來,並實現瞭 UI/API 的分層自動化測試,更有效地應用於敏捷開發模式下的快速、靈活的持續測試。
本書對不同類型、格式的測試數據(如XML、Excel文件、數據庫等數據源)的處理技術做瞭詳細交待,能夠滿足不同業務數據的測試需求。
一個隨手可得的案例(開源TestLink項目)貫穿其中,從單點功能到多點功能、功能操作的封裝、頁麵封裝、控件封裝、數據封裝,到業務與具體實現的隔離、分層處理等,各種自動化具體技術或技巧都很好地被呈現齣來,讓讀者可以一麵學習、一麵實踐,效果倍增。
本書構建的自動化測試框架是從底層Solvent、SeMet開始,一方麵是基於Selenium+webDriver實現,基礎可靠;另方麵,又能脫離Selenium+webDriver,為API等其他不同技術實現的自動化測試服務。
內容簡介
全書共分3部分,第1部分包括第1~8章,介紹瞭有關測試框架與UI自動化測試的主題。在第1章中介紹瞭若乾種不同類型的自動化測試實踐,並提齣瞭T型自動化測試框架以及紡錘形自動化測試模型。在第2章介紹瞭自動化測試中如何進行數據的交互與管理,並結閤實際案例列舉瞭Java屬性文件、XML、Excel、數據庫以及CSV等不同的處理方式。第3章和第4章介紹如何分層構建Solvent、SeMet等底層框架。第5~8章是有關TestLink UI自動化測試框架的構建。第2部分是UI自動化框架橫嚮拓展的主題。第3部分講解API測試。實現瞭UI/API的分層自動化測試,並探討瞭在敏捷模式下,通過統一框架,同一用例在不同技術實現方式下無縫切換運行的可行性和由此帶來的價值。第16章介紹瞭Webdriver的基礎概念及簡單元素封裝、自定義Page Object等內容。讀者可以按照此書介紹的方法,根據自身工作中被測應用的實際特點,加上適當的工具,來嘗試建立適閤自身項目實際需求的自動化測試框架。本書是幫助讀者從初學者踏上通往更高層級測試工程師的階梯。 本書適閤作為測試初學者、測試從業人員、測試經理、測試管理人員、測試開發人員的參考用書,也可以作為大專院校相關專業的師生用書和培訓學校的教材。
作者簡介
陳鼕嚴 ,浙江大學碩士,具有10年軟件測試和團隊管理的工作經驗,先後服務於領先的ITSM、PLM軟件研發企業,現於某金融行業核心機構IT規劃部門擔任項目管理工作。業餘時間喜歡園藝。
目錄
第1部分 構建UI自動化框架
第1章 BCO團隊的自動化之旅 2
1.1 奧運年的新挑戰 2
1.1.1 BCO是什麼 2
1.1.2 為什麼需要BCO 2
1.1.3 測試任務與測試內容 3
1.1.4 利益乾係人 4
1.1.5 Pink Mail、Escalation和SPRTracker 5
1.1.6 溝通,還是溝通 5
1.2 史前的自動化 6
1.2.1 自動化安裝係統 6
1.2.2 快速迴歸測試係統的混閤自動化 6
1.2.3 來自小眾自動化工具的框架 7
1.3 五天太久,還能壓縮嗎 8
1.3.1 BCO版本發布用時分布 8
1.3.2 缺陷壓力測試 9
1.4 聽說又有一個新框架瞭 10
1.4.1 初見Solvent 11
1.4.2 學習XPath和HTML 12
1.4.3 XPath定位工具 12
1.4.4 自信與挑戰 13
1.4.5 找到適閤自身的實踐對象 14
1.4.6 框架的歸屬問題 14
1.4.7 Automation 100 15
1.5 冰山 15
1.5.1 假失敗 15
1.5.2 低優先級的自動化Backlog 16
1.5.3 破窗與“造輪子” 16
1.6 再啓航 16
1.6.1 自動化測試金字塔與冰淇淋 17
1.6.2 橄欖形的自動化測試 18
第2章 測試數據管理 19
2.1 簡介 19
2.2 測試數據分類 19
2.3 測試數據交互基本方法 20
2.3.1 使用Java的係統屬性 21
2.3.2 使用操作係統的環境變量 22
2.3.3 使用屬性文件 23
2.4 使用XML文件 23
2.4.1 Webdriver中的定位方法 24
2.4.2 使用dom4j進行解析 25
2.5 使用Excel 27
2.5.1 經典的DataTable 27
2.5.2 強關鍵字驅動的自動化用例 28
2.5.3 Apache POI介紹 29
2.5.4 單個工作錶的解析 30
2.5.5 整個工作簿的解析 34
2.5.6 用例解析與執行 35
2.5.7 Mock API類 38
2.5.8 Mock API適配器類 39
2.6 使用數據庫 40
2.6.1 JDBC連接數據庫 41
2.6.2 使用Apache DbUtils 44
2.6.3 從TestLink數據庫中讀取數據 46
2.7 使用CSV文件 47
2.7.1 CSV文件數據解析思路 48
2.7.2 實現泛型解析 48
2.7.3 對象類案例 49
2.7.4 提供數據源的外部訪問 50
2.7.5 CSV文件通過SQL方式查詢結果 50
第3章 構建Solvent 53
3.1 框架是什麼 53
3.1.1 六萬立方米的混凝土大底闆 53
3.1.2 測試框架及其目標 53
3.2 Solvent與JUnit 54
3.3 遲早,你需要一個基類 54
3.3.1 用例基類SolventTestCase 55
3.3.2 業務功能基類Solvent 57
3.4 基於Log4j的日誌 60
3.4.1 Log4j簡介 60
3.4.2 一個簡單的例子 62
3.4.3 實現SolventLogger類 63
3.4.4 使用SolventLogger 64
3.5 使用TestWatcher截屏 65
3.5.1 功能分析 65
3.5.2 實現示例 65
3.6 經改造的Apache計時器 66
3.6.1 Apache的計時器 66
3.6.2 Solvent增強的計時器 67
3.6.3 部署計時器 68
3.6.4 計時精度與延遲 69
3.7 使用Timeout進行超時判負 70
3.8 自定義檢查點CheckPoint 70
3.8.1 檢查點類CheckPoint 70
3.8.2 部署與使用 73
3.9 Configurator提供統一框架配置參數 75
3.9.1 Configurator類的實現 75
3.9.2 雙重參數文件的讀取 78
3.9.3 配置參數的使用 80
3.10 基於XML的運行時參數處理 81
3.10.1 來自XML的用例數據集 81
3.10.2 InputFileFinder獲取輸入文件 82
3.10.3 InputFileDigester進行解析 83
3.10.4 數據結構之SolventTestDataSetBean 85
3.10.5 數據結構之SolventTestDataSet 87
3.10.6 在SolventTestCase中完成解析 88
3.10.7 SolventTestCase提供統一數據獲取方法 89
3.10.8 測試用例參數化案例 90
第4章 構建SeMet 92
4.1 SeMet是什麼 92
4.2 引入SeMet類 92
4.3 引入TLTestCase 98
4.4 引入SeMetWebDriverSession類 99
4.5 引入Webdrivers工廠類 100
4.6 小結 101
第5章 TestLink自動化測試 102
5.1 自動化測試策略 102
5.2 為什麼是TestLink 103
5.3 TestLink簡介 105
5.4 TestLink安裝 105
5.4.1 XAMPP的安裝 106
5.4.2 TestLink部署 107
5.5 TestLink主要功能分析 108
5.5.1 基於文檔的測試 108
5.5.2 TestLink基本業務對象 109
5.5.3 模塊與功能點 109
5.6 TestLink頁麵分析 110
5.6.1 頁麵結構分析 110
5.6.2 Web組件分析 112
5.7 框架 113
5.7.1 Webdriver中有關(i)frame的處理方法 114
5.7.2 迴到原點的frame處理方法 114
5.7.3 工具類FrameHelper 115
5.7.4 一級頁麵的使用方法 116
5.7.5 二級以下頁麵的使用方法 116
5.7.6 不同框架下使用組件的方法 117
5.8 左右選擇框 118
5.8.1 頁麵分析及自動化實現 118
5.8.2 功能分析及自動化實現 120
5.9 浮動對話框 121
5.9.1 頁麵分析及自動化實現 121
5.9.2 功能分析及自動化實現 123
5.9.3 復選框的簡單增強 125
5.10 樹 126
5.10.1 頁麵分析及自動化實現 126
5.10.2 功能分析及自動化實現 128
5.11 錶格 130
5.11.1 頁麵分析及自動化實現 131
5.11.2 功能分析及自動化實現 132
5.11.3 TableSeMet子類 134
5.12 下拉選擇框 136
5.12.1 組件介紹 136
5.12.2 功能與測試點分析 137
5.12.3 SelectboxSeMet類 138
5.13 小結 140
第6章 頁麵封裝—從登錄到測試項目管理 142
6.1 登錄——三段式頁麵封裝法 142
6.2 測試項目對象TestProjectBean-使用方法鏈 144
6.3 創建測試項目類CreateProjectSeMet 146
6.3.1 頁麵定位 146
6.3.2 頁麵元素定位 146
6.3.3 元素獲取與簡單操作 146
6.3.4 高級業務操作—隔離業務與具體實現 148
6.4 統一測試項目操作類ProjectMgrCRUSeMet 149
6.4.1 重構的CreateProjectSeMet類 150
6.4.2 零代碼的EditProjectSeMet類 150
6.5 測試項目管理TestProjectMgrSeMet 150
6.5.1 測試項目列錶 151
6.5.2 查詢與創建 152
6.6 登錄後默認主頁麵——使用枚舉類封裝框架數據 153
6.7 第一個完整的端到端用例 154
6.7.1 測試場景 154
6.7.2 自給自足的測試用例 155
6.8 小結 156
第7章 頁麵封裝—測試規約的自動化 158
7.1 導航欄 158
7.1.1 導航欄頁麵分析 158
7.1.2 元素分析與自動化實現 159
7.1.3 測試上下文 160
7.2 關鍵字管理 160
7.2.1 頁麵分析 161
7.2.2 自動化測試用例 161
7.2.3 關鍵字管理類的實現 162
7.2.4 文件導入關鍵字 164
7.3 測試規約 166
7.3.1 進入測試規約頁麵 166
7.3.2 測試用例集操作 166
7.3.3 創建測試集 168
7.3.4 創建測試用例 169
7.4 完整的用例 174
7.5 小結 176
第8章 測試計劃 177
8.1 從主頁麵到測試計劃管理 177
8.1.1 頁麵定位 177
8.1.2 靜態跳轉方法 178
8.2 測試計劃管理 179
8.3 創建測試計劃 179
8.4 測試計劃對象 181
8.5 版本管理 182
8.5.1 從主頁麵到版本管理 182
8.5.2 從版本管理類到版本管理對象 183
8.6 添加測試用例至測試計劃 186
8.6.1 發起添加測試用例 187
8.6.2 測試用例樹操作 187
8.6.3 添加用例至測試計劃 188
8.7 添加平颱至測試計劃 190
8.7.1 發起添加平颱 190
8.7.2 完成平颱添加 191
8.8 測試執行 192
8.8.1 測試執行的入口 192
8.8.2 測試用例集的設定 192
8.8.3 執行結果錄入 194
8.9 小結 196
第2部分 UI自動化框架橫嚮拓展
第9章 Web兼容性測試 198
9.1 瀏覽器簡史 198
9.2 內核之母 201
9.3 內核之意 202
9.3.1 Trident 202
9.3.2 Gecko 203
9.3.3 Presto 204
9.3.4 WebKit 204
9.3.5 Chromium &Blink; 205
9.4 渲染與解析 205
9.5 容錯處理機 210
9.6 布局與繪製 210
9.7 兼容性問題案例 215
9.7.1 網銀中使用的jQuery版本問題 215
9.7.2 IE 10在響應式時間中CSS樣式布局混亂 215
9.7.3 CSS重構以及JS文件分割優化 216
9.7.4 IE 6瀏覽器上頁麵加載的性能問題(可導緻IE 6崩潰) 217
9.7.5 兼容性Bug錯誤具體分析 223
9.8 移動端瀏覽器兼容性 226
第10章 輕量級本地化測試解決方案 233
10.1 什麼是本地化、國際化和全球化 233
10.2 本地化測試自動化的挑戰 233
10.3 解決的思路 234
10.4 伐謀:一碼走天下 234
10.4.1 TestLink的樣例分析 234
10.4.2 使用本地化中性資源進行自動化 235
10.5 伐兵:使用本地化資源 238
10.5.1 TestLink本地化資源文件分析 238
10.5.2 本地化支持的簡要流程 239
10.5.3 本地化案例 240
10.6 基於HSQL的數據字典 241
10.6.1 為什麼使用HSQL 241
10.6.2 HSQLDB數據導入及維護 241
10.6.3 將HSQL集成進自動化測試框架 243
10.7 結閤Java Annotation的解決方案 248
10.7.1 思路 248
10.7.2 定義Annotation 249
10.7.3 定義工具類,通過Java反射機製動態獲取本地化資源 249
10.8 部署 251
10.8.1 SolventTestCase 251
10.8.2 Solvent 251
10.8.3 框架類 251
10.8.4 測試用例 252
10.9 總結與展望 252
第3部分 Hybrid Automation—實現UI/API測試一體化
第11章 歡迎來到接口測試的世界 254
11.1 集成測試與接口測試 254
11.1.1 集成測試 254
11.1.2 接口測試與測試接口 254
11.2 XML-RPC簡介 255
11.3 使用原生的TestLink XML-RPC接口 256
11.3.1 啓用XML-RPC接口 256
11.3.2 獲取API KEY 256
11.3.3 sayHello樣例 257
11.3.4 TestLink XML-RPC簡析 259
11.4 使用TestLink Java API 260
11.5 測試用例自動化生成初探 263
11.5.1 重溫等價類劃分 263
11.5.2 組閤策略與工具 265
11.5.3 數據集與組閤算法 265
11.5.4 生成全組閤用例 267
11.5.5 生成健壯性用例 271
11.6 小結 272
第12章 Hybrid Automation混閤自動 274
12.1 修改SeMet層的基礎類 274
12.1.1 在Webdrivers類中存儲TestLinkAPI實例 274
12.1.2 在TLTestCase中完成TestLinkAPI初始化 274
12.2 在測試用例中直接使用接口 276
12.3 將接口轉移到業務SeMet類中 278
12.4 用例無縫切換 280
第13章 iTestLink業務與技術解耦 281
13.1 問題與挑戰 281
13.2 Webdriver帶來的啓示 281
13.3 實現iTestLink 282
13.3.1 定義TestLink業務接口 282
13.3.2 定義業務對象類 283
13.3.3 增加TLSession類獲取執行方式 284
13.3.4 枚舉類TestLinkDriver的實現 285
13.3.5 新建TLTestCase 286
13.4 iTestLink的測試用例 286
13.5 改造APIMet支持iTestLink 288
13.5.1 引入TestLinkJavaAPIAdaptor 288
13.5.2 接口間TestProject對象轉換 290
13.5.3 接口層測試用例執行 291
13.6 改造SeMet支持iTestLink 292
13.6.1 實現Service類 293
13.6.2 改造相關SeMet 294
13.6.3 實現TestLinkSeMetAdaptor 296
13.6.4 UI層測試用例執行 297
13.7 小結 298
第14章 代碼的管理和審查 299
14.1 簡介 299
14.2 代碼管理工具 299
14.2.1 GIT介紹 299
14.2.2 安裝過程 300
14.2.3 常用命令 300
14.3 代碼審查工具 302
14.3.1 Gerrit是什麼 302
14.3.2 如何去安裝 302
14.3.3 基本功能介紹 306
14.4 檢齣代碼 310
14.4.1 命令介紹 310
14.4.2 工作場景一 310
14.5 提交代碼 312
14.5.1 命令介紹 312
14.5.2 工作場景 314
14.6 閤並分支 316
14.6.1 命令介紹 316
14.6.2 工作場景 317
14.6.3 分支閤並衝突 319
14.7 最佳實踐 320
第15章 持續集成 322
15.1 簡介 322
15.2 持續集成工具 322
15.2.1 Jenkins介紹 322
15.2.2 主要功能 323
15.2.3 如何安裝 324
15.2.4 建立新的Job
精通自動化測試框架設計 下載 mobi epub pdf txt 電子書