精通自動化測試框架設計

精通自動化測試框架設計

《精通自動化測試框架設計》是2019年2月人民郵電出版社出版的圖書,作者是陳冬嚴、邵傑明、王東剛、蔣濤。

基本介紹

  • 中文名:精通自動化測試框架設計
  • 作者:陳冬嚴、邵傑明、王東剛、蔣濤
  • 出版社:人民郵電出版社
  • 出版時間:2019年2月
  • 頁數:366 頁
  • 定價:59 元
  • 開本:小16開
  • 裝幀:平裝
  • ISBN:9787115415653
內容簡介,圖書目錄,

內容簡介

全書共分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等內容。讀者可以按照此書介紹的方法,根據自身工作中被測套用的實際特點,加上適當的工具,來嘗試建立適合自身項目實際需求的自動化測試框架。本書是幫助讀者從初學者踏上通往更高層級測試工程師的階梯。
精通自動化測試框架設計
精通自動化測試框架設計
本書適合作為測試初學者、測試從業人員、測試經理、測試管理人員、測試開發人員的參考用書,也可以作為大專院校相關專業的師生用書和培訓學校的教材。

圖書目錄

第 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 324
15.2.5 注意事項 325
15.2.6 系統配置 326
15.2.7 設定Job 330
15.2.8 成功連通 331
15.2.9 工作場景 333
15.3 執行自動編譯和測試 334
15.4 合併代碼 335
15.5 常見問題 336
15.6 最佳實踐 337
第 16章 Webdriver入門簡介 339
16.1 Webdriver的基本結構 339
16.2 Webdriver的工作原理 339
16.3 在啟動瀏覽器的時候發生了什麼 340
16.3.1 Firefox 340
16.3.2 Chrome 341
16.3.3 IE 341
16.4 Webdriver常用API簡介 342
16.4.1 Webdriver API結構淺析 342
16.4.2 啟動與關閉瀏覽器 344
16.4.3 提取文本getText 344
16.4.4 提取元素屬性getAttribute 345
16.4.5 模擬瀏覽器的前後跳轉forward和back 345
16.4.6 模擬滑鼠右鍵Actions和contextClick 346
16.4.7 截圖TakesScreenshot 346
16.4.8 操作下拉選單Select控制項 347
16.4.9 操作frame裡面的元素switchTo 348
16.4.10 操作單選按鈕radio button 349
16.4.11 操作多選框checkbox 350
16.4.12 切換視窗getWindowHandle 350
16.4.13 等待 351
16.4.14 JS彈出框 352
16.4.15 彈出框的擴展 353
16.5 Page Object介紹 355
16.5.1 創建LoginVariables.java檔案 357
16.5.2 創建LoginPage檔案 358
16.5.3 創建GloablaFunction.java檔案 359
16.5.4 創建WebdriverTest.java檔案 359
16.5.5 創建LoginTest.java檔案 360
16.6 選擇Webdriver而不是Selenium RC 361
16.7 如何從Selenium RC遷移到Webdriver 362
16.8 Webdriver如何執行Javascript 364
16.9 如何定製瀏覽器 364
16.10 小結 365

熱門詞條

聯絡我們