內容簡介
《Selenium 2自動化測試實戰——基於Python語言》共分 14 章。第 1 章是自動化測試相關基礎知識的介紹;第 2 章到第 10 章是《Selenium 2自動化測試實戰——基於Python語言》的重點,循 序漸進地介紹了自動化測試所用到的技術;第 11 章通過一個具體的項目綜合運用了前面章節所介紹 的技術與技巧;第 12 章到第 14 章選取了當前最熱門的技術進行了介紹,旨在擴展測試人員的綜合技 術能力。 《Selenium 2自動化測試實戰——基於Python語言》的寫作目的並不是為了簡單地告訴讀者如何使用一個自動化測試工具,而是希望讀者在學習
《Selenium 2自動化測試實戰——基於Python語言》的內容後能夠提高綜合的技術高度與寬度,從而擺脫簡單的手工測試,向高級測試工程師的道路 邁進。
圖書目錄
第1 章 自動化測試基礎 .................................................................................... 1
1.1 軟體測試分類 ........................................................................................................ 1
1.2 分層的自動化測試 ................................................................................................ 6
1.3 什麼樣的項目適合自動化測試 ............................................................................ 9
1.4 自動化測試及工具簡述 ...................................................................................... 10
1.5 Selenium 工具介紹 .............................................................................................. 11
1.6 前端技術介紹 ...................................................................................................... 14
1.7 前端工具介紹 ...................................................................................................... 16
1.8 開發語言的選擇 .................................................................................................. 19
第2 章 測試環境搭建 .......................................................................................... 21
2.1 Windows 下的環境搭建 ...................................................................................... 21
2.1.1 安裝Python .............................................................................................. 22
2.1.2 安裝setuptools 與pip .............................................................................. 24
2.1.3 安裝Selenium .......................................................................................... 26
2.1.4 ActivePython ............................................................................................ 26
2.2 Ubuntu 下的環境搭建 ......................................................................................... 28
2.3 使用IDLE 編寫Python ....................................................................................... 29
2.4 編寫第一個自動化腳本 ...................................................................................... 32
2.5 安裝瀏覽器驅動 .................................................................................................. 34
2.6 不同程式語言下使用WebDriver ........................................................................ 35
第3 章 Python 基礎 ................................................................................................ 37
3.1 Python 哲學 .......................................................................................................... 37
3.2 輸出與輸入 .......................................................................................................... 39
3.2.1 print 列印 .................................................................................................. 40
3.2.2 input 輸入 ................................................................................................. 41
3.2.3 引號與注釋 .............................................................................................. 41
3.3 分支與循環 .......................................................................................................... 43
3.3.1 if 語句 ....................................................................................................... 43
3.3.2 for 語句 .................................................................................................... 45
3.4 數組與字典 .......................................................................................................... 47
3.4.1 數組 .......................................................................................................... 47
3.4.2 字典 .......................................................................................................... 47
3.5 函式、類和方法 .................................................................................................. 49
3.5.1 函式 .......................................................................................................... 49
3.5.2 類和方法 .................................................................................................. 50
3.6 模組 ...................................................................................................................... 52
3.6.1 引用模組 .................................................................................................. 52
3.6.2 模組調用 .................................................................................................. 55
3.6.3 跨目錄模組調用 ...................................................................................... 56
3.6.4 進一步討論跨目錄模組調用 .................................................................. 56
3.7 異常 ...................................................................................................................... 60
3.7.1 認識異常 .................................................................................................. 60
3.7.2 更多異常用法 .......................................................................................... 64
3.7.3 拋出異常 .................................................................................................. 66
本章小結 ....................................................................................................................... 66
第4 章 WebDriver API ............................................................................................... 68
4.1 從定位元素開始 .................................................................................................. 68
4.1.1 id 定位 ...................................................................................................... 72
4.1.2 name 定位 ................................................................................................ 73
4.1.3 class 定位 ................................................................................................. 73
4.1.4 tag 定位 .................................................................................................... 73
4.1.5 link 定位 ................................................................................................... 73
4.1.6 partial link 定位 ........................................................................................ 74
4.1.7 XPath 定位 ............................................................................................... 75
4.1.8 CSS 定位 .................................................................................................. 78
4.1.9 用By 定位元素 ........................................................................................ 82
4.2 控制瀏覽器 .......................................................................................................... 83
4.2.1 控制瀏覽器視窗大小 .............................................................................. 83
4.2.2 控制瀏覽器後退、前進 .......................................................................... 84
4.2.3 模擬瀏覽器刷新 ...................................................................................... 85
4.3 簡單元素操作 ...................................................................................................... 86
4.3.1 126 信箱登錄 ........................................................................................... 86
4.3.2 WebElement 接口常用方法 ..................................................................... 87
4.4 滑鼠事件 .............................................................................................................. 89
4.5 鍵盤事件 .............................................................................................................. 92
4.6 獲得驗證信息 ...................................................................................................... 93
4.7 設定元素等待 ...................................................................................................... 95
4.7.1 顯式等待 .................................................................................................. 95
4.7.2 隱式等待 .................................................................................................. 98
4.7.3 sleep 休眠方法 ......................................................................................... 99
4.8 定位一組元素 .................................................................................................... 100
4.9 多表單切換 ........................................................................................................ 104
4.10 多視窗切換 ...................................................................................................... 106
4.11 警告框處理 ...................................................................................................... 108
4.12 上傳檔案 .......................................................................................................... 110
4.12.1 send_keys 實現上傳 ............................................................................. 110
4.12.2 AutoIt 實現上傳 ................................................................................... 111
4.13 下載檔案 .......................................................................................................... 116
4.14 操作Cookie ...................................................................................................... 117
4.15 調用JavaScript ................................................................................................. 120
4.16 處理HTML5 的視頻播放 ............................................................................... 123
4.17 視窗截圖 .......................................................................................................... 124
4.18 關閉視窗 .......................................................................................................... 125
4.19 驗證碼的處理 .................................................................................................. 125
4.20 WebDriver 原理 ................................................................................................ 128
本章小結 ..................................................................................................................... 130
第5 章 自動化測試模型 ................................................................................. 132
5.1 自動化測試模型介紹 ........................................................................................ 133
5.1.1 線性測試 ................................................................................................ 133
5.1.2 模組化驅動測試 .................................................................................... 134
5.1.3 數據驅動測試 ........................................................................................ 134
5.1.4 關鍵字驅動測試 .................................................................................... 136
5.2 模組化驅動測試實例 ........................................................................................ 138
5.3 數據驅動測試實例 ............................................................................................ 140
5.3.1 參數化信箱登錄 .................................................................................... 141
5.3.2 參數化搜尋關鍵字 ................................................................................ 142
5.3.3 讀取txt 檔案 .......................................................................................... 143
5.3.4 讀取csv 檔案 ......................................................................................... 144
5.3.5 讀取xml 檔案 ........................................................................................ 146
本章小結 ..................................................................................................................... 150
第6 章 Selenium IDE .............................................................................. 151
6.1 Selenium IDE 安裝 ............................................................................................. 151
6.1.1 線上安裝 ................................................................................................ 151
6.1.2 下載外掛程式安裝 ........................................................................................ 153
6.2 Selenium IDE 界面介紹 ..................................................................................... 154
6.3 創建測試用例 .................................................................................................... 155
6.3.1 錄製腳本 ................................................................................................ 155
6.3.2 編輯腳本 ................................................................................................ 156
6.4 Selenium IDE 命令 ............................................................................................. 159
6.5 斷言與驗證 ........................................................................................................ 162
6.5.1 斷言 ........................................................................................................ 164
6.5.2 驗證 ........................................................................................................ 165
6.6 等待與變數 ........................................................................................................ 167
6.6.1 等待 ........................................................................................................ 167
6.6.2 變數 ........................................................................................................ 167
本章小結 ............................................................................................... 169
第7 章 unittest 單元測試框架 ........................................................... 170
7.1 認識unittest........................................................................................................ 171
7.1.1 認識單元測試 ........................................................................................ 171
7.1.2 重要的概念 ............................................................................................ 174
7.1.3 斷言方法 ................................................................................................ 176
7.1.4 組織單元測試用例 ................................................................................ 181
7.1.5 discover 更多測試用例 .......................................................................... 184
7.2 關於unittest 還需要知道的 ............................................................................... 187
7.2.1 用例執行的順序 .................................................................................... 188
7.2.2 執行多級目錄的用例 ............................................................................ 190
7.2.3 跳過測試和預期失敗 ............................................................................ 191
7.2.4 fixtures .................................................................................................... 193
7.3 帶unittest 的腳本分析 ....................................................................................... 195
7.4 編寫Web 測試用例 ........................................................................................... 200
本章小結 ..................................................................................................................... 203
第8 章 自動化測試高級套用 ................................................................................... 204
8.1 HTML 測試報告 ................................................................................................ 204
8.1.1 修改HTMLTestRunner .......................................................................... 205
8.1.2 生成HTML 測試報告 ........................................................................... 206
8.1.3 更易讀的測試報告 ................................................................................ 208
8.1.4 測試報告檔案名稱 .................................................................................... 209
8.1.5 項目集成測試報告 ................................................................................ 212
8.2 自動發郵件功能 ................................................................................................ 213
8.2.1 傳送HTML 格式的郵件 ....................................................................... 216
8.2.2 傳送帶附屬檔案的郵件 ................................................................................ 217
8.2.3 查找最新的測試報告 ............................................................................ 218
8.2.4 整合自動發郵件功能 ............................................................................ 219
8.3 Page Object 設計模式 ....................................................................................... 221
8.3.1 認識Page Object .................................................................................... 221
8.3.2 Paget Object 實例 ................................................................................... 223
本章小結 ..................................................................................................................... 228
第9 章 Selenium Grid2 ................................................................................. 229
9.1 Selenium Server 環境配置 ................................................................................. 229
9.2 Selenium Grid 工作原理 .................................................................................... 233
9.3 Remote 套用 ....................................................................................................... 236
9.3.1 WebDriver 驅動分析 .............................................................................. 237
9.3.2 Remote 實例 ........................................................................................... 243
9.3.3 參數化平台及瀏覽器 ............................................................................ 243
9.4 WebDriver 驅動 .................................................................................................. 246
9.4.1 Edge 瀏覽器 ........................................................................................... 249
9.4.2 Opera 瀏覽器 ......................................................................................... 250
9.4.3 Safari 瀏覽器 .......................................................................................... 251
9.4.4 HtmlUnit 模式 ........................................................................................ 251
9.4.5 PhantomJS 模式 ..................................................................................... 252
本章小結 ..................................................................................................................... 254
第10 章 Python 多執行緒 ............................................................................................. 255
10.1 單執行緒的時代 .................................................................................................. 256
10.2 多執行緒技術 ...................................................................................................... 258
10.2.1 threading 模組 ...................................................................................... 258
10.2.2 最佳化執行緒的創建 .................................................................................. 260
10.2.3 創建執行緒類 .......................................................................................... 262
10.3 多進程技術 ...................................................................................................... 263
10.3.1 multiprocessing 模組 ............................................................................ 263
10.3.2 Pipe 和Queue ....................................................................................... 266
10.4 套用於自動化測試 .......................................................................................... 268
10.4.1 多執行緒執行測試用例 .......................................................................... 269
10.4.2 多執行緒分散式執行測試用例 .............................................................. 270
本章小結 ..................................................................................................................... 272
第11 章 自動化測試項目實戰 ..................................................................................... 273
11.1 自動化測試用例設計 ....................................................................................... 273
11.1.1 手工測試用例與自動化測試用例 ....................................................... 273
11.1.2 測試類型 .............................................................................................. 275
11.1.3 自動化測試用例編寫原則 .................................................................. 276
11.2 BBS 社區項目實戰 .......................................................................................... 277
11.2.1 準備工作 .............................................................................................. 277
11.2.2 項目結構介紹 ...................................................................................... 278
11.2.3 編寫公共模組 ...................................................................................... 281
11.2.4 編寫Page Object .................................................................................. 283
11.2.5 編寫測試用例 ...................................................................................... 286
11.2.6 執行測試用例 ...................................................................................... 289
本章小結 ..................................................................................................................... 291
第12 章 BDD 框架之Lettuce 入門 ........................................................................... 292
12.1 什麼是BDD ..................................................................................................... 292
12.2 安裝Lettuce ..................................................................................................... 294
12.3 階乘的例子 ...................................................................................................... 295
12.3.1 什麼是階乘 .......................................................................................... 295
12.3.2 編寫BDD 實現 .................................................................................... 296
12.3.3 添加測試場景 ...................................................................................... 300
12.3.4 Lettuce 目錄結構與執行過程 ............................................................. 303
12.4 Lettuce_webdriver 自動化測試 ....................................................................... 303
本章小結 ..................................................................................................................... 308
(第13 章和第14 章內容可到博文視點網站免費下載)
第13 章 GitHub 託管項目 ....................................................................................... 309
13.1 註冊與安裝 ...................................................................................................... 310
13.1.1 註冊GitHub ......................................................................................... 310
13.1.2 安裝Git ................................................................................................ 310
13.1.3 建立連線 .............................................................................................. 311
13.2 Git/GitHub 基本使用 ....................................................................................... 314
13.2.1 GitHub 創建項目 ................................................................................. 314
13.2.2 本地創建項目 ...................................................................................... 315
13.2.3 克隆項目 .............................................................................................. 318
13.2.4 更新項目 .............................................................................................. 319
本章小結 ..................................................................................................................... 323
第14 章 持續集成Jenkins 入門 ............................................................................ 324
14.1 環境搭建 .......................................................................................................... 325
14.2 創建任務 .......................................................................................................... 328
14.3 運行構建 .......................................................................................................... 333
14.4 定時執行構建 .................................................................................................. 335
本章小結 ..................................................................................................................... 338