第一篇 基礎篇
第1章 學習環境的搭建 1
1.1 環境搭建 1
1.1.1 Selenium 簡介 2
1.1.2 Python 簡介 3
1.1.3 Python安裝 5
1.1.4 環境變量設置 6
1.1.5 Selenium的安裝 7
1.1.6 瀏覽器驅動的安裝 8
1.1.7 PyCharm的安裝 12
1.2 開始你的第一個項目 15
第2章 Python基礎 18
2.1 基礎語法 18
2.1.1 打印 18
2.1.2 編碼 19
2.1.3 數據類型 20
2.1.4 變量 21
2.1.5 注釋 21
2.1.6 縮進 22
2.2 運算符 22
2.2.1 算術運算符 22
2.2.2 比較運算符 23
2.2.3 邏輯運算符 23
2.2.4 Is 與 == 24
2.3 條件語句 24
2.3.1 單項判斷 25
2.3.2 雙嚮判斷 25
2.3.3 多項判斷 25
2.4 循環語句 26
2.4.1 for語句 26
2.4.2 while 語句 27
2.4.3 continue和break 28
2.5 列錶 28
2.5.1 創建列錶 28
2.5.2 獲取元素 29
2.5.3 添加元素 29
2.5.4 刪除元素 29
2.5.5 列錶切片 30
2.5.6 其他操作 31
2.6 元組 31
2.6.1 創建元組 31
2.6.2 獲取元素 31
2.6.3 拼接元組 32
2.6.4 刪除元組 32
2.6.5 其他操作 32
2.7 字典 33
2.7.1 創建字典 33
2.7.2 獲取元素 33
2.7.3 修改元素 33
2.7.4 刪除元素 34
2.7.5 其他操作 34
2.8 集閤 34
2.8.1 創建集閤 35
2.8.2 添加元素 35
2.8.3 移除元素 35
2.8.4 其他操作 36
2.9 推導式 36
2.9.1 列錶推導式 36
2.9.2 字典推導式 37
2.9.3 集閤推導式 37
2.10 生成器 38
2.10.1 創建生成器 38
2.10.2 send方法 39
2.11 迭代器 40
2.11.1 可迭代對象 40
2.11.2 創建迭代器 40
2.12 函數 41
2.12.1 函數 41
2.12.2 參數 42
2.12.3 匿名函數 45
2.12.4 參數類型 45
2.12.5 返迴值類型 46
2.13 類和對象 46
2.13.1 創建類 46
2.13.2 創建實例對象 47
2.13.3 類的私有化 48
2.13.4 類繼承 49
2.13.5 類的重寫 51
2.14 模塊 52
2.14.1 模塊的分類 52
2.14.2 模塊的導入 52
2.15 作用域 53
2.16 異常機製 54
2.16.1 try-except 54
2.16.2 else 55
2.16.3 finally 56
2.17 __init__.py 文件 56
2.18 Python實用技巧 57
第3章 Selenium WebDriver 62
3.1 WebDriver 簡介 62
3.1.1 WebDriver的特點 62
3.1.2 常用WebDriver 63
3.2 源碼中查找元素 63
3.2.1 查看網頁源碼 63
3.2.2 查找元素的屬性 64
3.3 元素定位 65
3.3.1 id定位 68
3.3.2 class定位 68
3.3.3 name定位 69
3.3.4 tag定位 70
3.3.5 xPath定位 70
3.3.6 link定位 71
3.3.7 Partial link定位 72
3.3.8 CSS選擇器定位 72
3.3.9 By定位 73
3.3.10 確認元素的唯一性 74
3.4 定位一組元素 76
3.5 瀏覽器操作 78
3.5.1 瀏覽器最大化 78
3.5.2 設置瀏覽器的寬和高 78
3.5.3 訪問網頁 78
3.5.4 瀏覽器後退 79
3.5.5 瀏覽器前進 79
3.5.6 刷新頁麵 80
3.5.7 關閉瀏覽器當前窗口 80
3.5.8 結束進程 80
3.5.9 獲取頁麵 title 81
3.5.10 獲取當前頁麵的URL 81
3.5.11 獲取頁麵源碼 82
3.5.12 切換瀏覽器窗口 83
3.5.13 滾動條操作 86
3.6 對象操作 88
3.6.1 單擊對象 89
3.6.2 輸入內容 89
3.6.3 清空內容 90
3.6.4 提交錶單 90
3.6.5 獲取文本內容 90
3.6.6 獲取對象屬性值 91
3.6.7 對象顯示狀態 91
3.6.8 對象編輯狀態 94
3.6.9 對象選擇狀態 95
3.7 鍵盤操作 96
3.7.1 send_keys 操作 96
3.7.2 keyUp/keyDown 操作 98
3.8 鼠標操作 99
3.8.1 鼠標右擊 99
3.8.2 鼠標雙擊 99
3.8.3 鼠標懸停 100
3.8.4 鼠標拖放 100
3.8.5 鼠標其他事件 101
3.9 下拉框操作 101
3.10 特殊Dom結構操作 103
3.10.1 Windows彈窗 103
3.10.2 非Windows彈窗 106
3.10.3 frame與iframe 108
3.11 文件上傳操作 110
3.11.1 直接上傳 110
3.11.2 使用AutoIt上傳 112
3.11.3 使用WinSpy上傳 115
3.12 文件下載操作 119
3.12.1 手動修改 119
3.12.2 通過options修改 119
3.13 WebDriver的高級特性 120
3.13.1 cookie操作 120
3.13.2 JavaScript調用 122
3.13.3 屏幕截圖 122
3.14 時間等待 123
3.14.1 強製等待 123
3.14.2 隱式等待 124
3.14.3 顯式等待 124
3.15 其他設置 125
3.15.1 限製頁麵加載時間 125
3.15.2 獲取環境信息 126
3.15.3 非W3C標準命令 127
3.16 配置Chrome瀏覽器選項 127
3.17 SSL證書錯誤處理 129
第4章 UnitTest測試框架 131
4.1 UnitTest簡介 131
4.2 TestFixture 132
4.3 TestCase 133
4.4 斷言 Assert 135
4.5 TestSuit 137
4.5.1 TestSuite直接構建測試集 137
4.5.2 addTest( ) 構建測試集 138
4.5.3 addTests( )構建測試集 139
4.5.4 skip裝飾器 139
4.6 TestLoader 140
4.7 TestRunner 142
4.8 生成HTML 報告 143
第5章 Selenium Grid 145
5.1 Selenium Grid簡介 145
5.2 Selenium Grid的工作原理 145
5.3 環境搭建 146
5.3.1 文件準備 146
5.3.2 部署Hub節點 147
5.3.3 部署Node節點 148
5.4 測試腳本開發 149
5.4.1 指定Node節點 149
5.4.2 指定Hub地址 150
第6章 Pytest測試框架 152
6.1 Pytest簡介 152
6.2 Console參數 154
6.2.1 實例初體驗 154
6.2.2 -v 參數 155
6.2.3 -h參數 156
6.2.4 其他參數 156
6.3 mark標記 157
6.3.1 標記測試函數 157
6.3.2 示例說明 158
6.3.3 直接標記 163
6.3.4 模糊匹配標記 165
6.3.5 使用mark自定義標記 166
6.4 固件 Fixture 167
6.4.1 Fixture的使用 167
6.4.2 Fixure的作用域 168
6.4.3 autouse自動使用 170
6.4.4 yield的使用 171
6.4.5 共享Fixture功能 173
6.4.6 參數化 175
6.4.7 內置Fixture 176
6.5 Pytest插件 182
6.5.1 插件的安裝與卸載 183
6.5.2 查看活動插件 184
6.5.3 插件的注銷 184
6.6 Allure測試報告 185
6.6.1 Allure的安裝 185
6.6.2 腳本應用 186
6.6.3 報告生成 186
第7章 Python腳本開發常用模塊 189
7.1 日期和時間模塊 time和datetime 189
7.2 文件和目錄模塊os 190
7.3 係統功能模塊 sys 191
7.4 導入第三方模塊pip 193
7.5 郵件模塊 smtplib 195
7.5.1 開啓郵箱SMTP服務 195
7.5.2 smtplib模塊的使用 196
7.6 日誌 logging 199
7.7 CSV讀寫模塊csv 201
7.8 Excel操作模塊 openpyxl 203
7.9 MySQL數據庫操作包pymysql 205
7.9.1 簡單的使用 206
7.9.2 獲取查詢數據 207
7.9.3 增刪改數據 209
7.10 JSON數據 210
7.10.1 JSON語法 210
7.10.2 Python讀寫JSON 211
7.13 多綫程模塊threading 212
第二篇 實踐篇
第8章 數據驅動模型 215
8.1 數據驅動簡介 215
8.2 ddt的使用 216
8.2.1 ddt的安裝 216
8.2.2 ddt的常用方法 216
8.2.3 實例 217
8.3 項目解析 218
8.4 框架搭建 220
8.5 設計測試用例 221
8.6 數據文件操作 222
8.7 測試用例生成 225
8.7.1 Excel數據處理 225
8.7.2 測試步驟 226
8.7.3 斷言處理 227
8.7.4 生成測試用例的生成 228
8.8 測試執行 229
第9章 PO模型——一個測試項目的實現 231
9.1 項目解析 231
9.1.1 主頁 232
9.1.2 關於我們頁麵 233
9.1.3 退齣登錄 233
9.2 框架搭建 233
9.3 配置文件 235
9.4 常用結構的封裝 236
9.4.1 判斷元素存在 236
9.4.2 Tab切換 236
9.4.3 多級菜單 239
9.4.4 錶格結構 241
9.4.5 分頁 244
9.5 頁麵封裝 246
9.5.1 基礎頁麵 246
9.5.2 登錄頁麵 248
9.5.3 主頁頁麵 251
9.5.4 關於我們頁麵 257
9.5.5 退齣登錄功能 257
9.6 測試用例生成 257
9.6.1 登錄功能的測試用例 257
9.6.2 主頁頁麵測試用例 258
9.6.3 關於我們頁麵的測試用例 260
9.6.4 退齣登錄功能的測試用例 260
9.7 測試用例的組織 261
9.8 設置項目入口 262
第10章 持續集成 264
10.1 Jenkins的安裝 264
10.1.1 Jenkins的下載 264
10.1.2 安裝 265
10.1.3 創建管理員用戶 267
10.2 創建項目 267
10.3 任務定時 269
10.3.1 任務定時設置 269
10.3.2 設置說明 270
10.3.3 構建實例 271
10.4 郵件發送 271
10.4.1 插件安裝 271
10.4.2 HTML 報告配置 273
10.4.3 郵件配置 275
第三篇 卓異篇
第11章 自動化測試模型 279
11.1 自動化測試模型簡介 279
11.2 綫性模型 281
11.3 模塊化驅動模型 282
11.4 數據驅動模型 282
11.5 關鍵字驅動模型 282
11.6 混閤驅動模型 283
11.7 行為驅動模型 283
11.7.1 安裝Behave 284
11.7.2 Behave的使用 286
10.7.3 運行 288
11.7.4 生成測試報告 289
第12章 高質量代碼的編寫 291
12.1 編碼規範 291
12.2 分層與結構 294
12.3 閱讀源碼 295
12.3.1 分析層次 295
12.3.2 分析結構 296
12.3.3 分析具體文件 296
12.4 持續學習 298
第13章 Git的使用 299
13.1 Git簡介 299
13.2 安裝Git 300
13.3 Git的配置 301
13.3.1 配置用戶信息 301
13.3.2 文本編輯器配置 301
13.3.3 配置差異分析工具 301
13.3.4 查看配置信息 302
13.5 常用命令 302
13.6 GitHub 304
13.6.1 賬號注冊 304
13.6.2 創建倉庫 306
13.6.3 上傳項目 307
13.6.4 Jenkins與Git 308
第14章 精選麵試題 310
14.1 Python題 310
14.2 Selenium題 317
14.3 開放性題 321
附錄1 示例代碼 324
附錄2 項目搭建 327
參考文獻 330
· · · · · · (
收起)