從零開始學 Selenium 自動化測試:基於 Python:視頻教學版
內容描述
本書基於Python語言,系統地介紹了Selenium 3自動化測試的相關知識及應用。
書中的大部分知識點都匹配了可獨立運行的典型實例,便於讀者學習與實踐。
另外,為了幫助讀者高效、直觀地學習,本書特意提供約10小時的基礎操作配套教學視頻。
相信讀者通過系統學習本書內容,可以全面掌握Selenium自動化測試技術。
本書共13章,涵蓋自動化測試基礎、Selenium基礎、環境部署、Selenium IDE、元素定位、
WebDriver API剖析、單元測試框架、自動化測試高級應用、Page Object設計模式、
自動化測試框架、持續集成、Selenium Gird分佈式、Selenium與虛擬化。
本書內容豐富,語言通俗易懂,講解由淺入深,適合有Python語言基礎的測試入門人員閱讀,
也適合測試工程師尤其Web自動化測試工程師閱讀。
另外,本書還適合作為相關院校軟件測試專業的教學用書。
本書特色
全面涵蓋自動化測試的前期評估、WebDriver、單元測試、
Page Object設計模式、自動化框架的設計與實現、虛擬化等方方面面知識。
不僅介紹相關概念和原理,而且還匹配相應的自動化測試案例,實操性強。
從基礎和原理入手,再輔以典型案例,讓前文的講解作為後文的鋪墊,容易上手。
提供配套教學視頻和教學PPT,幫助讀者高效、直觀地學習。
目錄大綱
前言
第1章 自動化測試基礎 1
1.1 自動化測試簡介 1
1.1.1 自動化測試的定義 2
1.1.2 自動化測試與手工測試的關系 2
1.1.3 何時開展自動化測試 3
1.1.4 自動化測試的優勢 4
1.1.5 自動化測試的實施場景 4
1.1.6 自動化測試的成本 5
1.2 自動化測試工具 6
1.2.1 自主開發測試工具 6
1.2.2 開源測試工具 7
1.2.3 商業測試工具 7
1.2.4 自動化測試工具的選擇 8
1.2.5 “年度最佳”自動化測試工具 10
1.3 自動化測試的分層 13
第2章 Selenium基礎 16
2.1 Selenium簡介 16
2.1.1 Selenium的特點 16
2.1.2 Selenium的發展史 17
2.1.3 Selenium的工具集 17
2.1.4 Selenium 3.0的新特性 20
2.2 成就“大神”之路 21
2.2.1 開發語言 21
2.2.2 前端知識 21
2.2.3 前端工具 24
2.2.4 網絡基礎知識 27
2.2.5 開發語言技能 28
2.2.6 持續集成 28
2.2.7 分佈式 28
2.2.8 自動化測試平臺 28
第3章 環境部署 29
3.1 Python的安裝 29
3.1.1 Windows環境下的Python安裝 30
3.1.2 Linux環境下的Python安裝 35
3.2 Selenium的安裝 36
3.2.1 在線安裝 36
3.2.2 離線安裝 37
3.3 IDE工具的選擇 40
3.3.1 PyCharm簡介 40
3.3.2 PyCharm的安裝 41
3.3.3 PyCharm的簡單使用 42
3.4 瀏覽器驅動程序的安裝 46
3.4.1 Chrome瀏覽器的安裝 46
3.4.2 Firefox瀏覽器的安裝 49
第4章 Selenium IDE 52
4.1 Selenium IDE簡介 52
4.1.1 Selenium IDE的安裝 52
4.1.2 Selenium IDE的運行 56
4.2 Selenium IDE菜單欄 59
4.3 Selenium IDE工具欄 62
4.4 Selenium IDE地址欄 65
4.5 測試用例窗口 65
4.5.1 導航面板 66
4.5.2 腳本編輯區域 72
4.6 日誌窗口與引用窗口 75
4.7 Katalon Studio自動化測試 76
4.7.1 Katalon Recorder的安裝 76
4.7.2 案例:Katalon Recorder的數據驅動 83
第5章 元素定位 86
5.1 元素定位簡介 86
5.2 瀏覽器定位元素 87
5.2.1 Firefox瀏覽器 87
5.2.2 Chrome瀏覽器 88
5.3 Web元素定位 89
5.3.1 ID定位 90
5.3.2 name定位 91
5.3.3 class定位 92
5.3.4 tag定位 96
5.3.5 link定位 98
5.3.6 partial_link_text定位 99
5.3.7 XPath定位元素 100
5.3.8 CSS定位元素 108
5.3.9 find_element定位 112
第6章 WebDriver API剖析 115
6.1 操作瀏覽器的基本方法 115
6.1.1 瀏覽器的大小控制 115
6.1.2 瀏覽器的前進與後退 116
6.1.3 頁面刷新 117
6.1.4 獲取頁面URL地址與標題 117
6.1.5 獲取瀏覽器類型 119
6.1.6 關閉當前窗口與退出瀏覽器 119
6.2 元素的操作方法 120
6.2.1 清除元素的內容 121
6.2.2 提交表單 121
6.2.3 獲取元素的尺寸 121
6.2.4 獲取元素的屬性與文本 122
6.3 鼠標操作 124
6.3.1 右擊操作 124
6.3.2 雙擊操作 125
6.3.3 拖動操作 125
6.3.4 鼠標指針懸停操作 126
6.4 鍵盤操作 126
6.5 定位一組元素 128
6.6 等待時間 131
6.6.1 強制等待 131
6.6.2 隱式等待 132
6.6.3 顯式等待 133
6.7 Frame切換 136
6.8 警告框與彈出框的處理 139
6.9 單選按鈕、復選框和下拉列表框的處理 142
6.10 檢查元素是否啟用或顯示 146
6.11 文件上傳與下載 147
6.11.1 文件上傳 147
6.11.2 文件下載 153
6.12 Cookie的處理 155
6.12.1 獲取Cookie 156
6.12.2 獲取指定的Cookie 159
6.12.3 添加Cookie 159
6.12.4 刪除Cookie 160
6.12.5 接口測試中的Cookie操作 163
6.13 富文本 165
6.14 標簽頁切換 166
6.15 屏幕截圖 167
6.16 執行JavaScript腳本 169
6.16.1 JavaScript操作日期控件 170
6.16.2 JavaScript處理多窗口 173
6.16.3 JavaScript處理視頻 174
6.16.4 JavaScript控制瀏覽器滾動條 176
6.16.5 JavaScript的其他操作 179
6.17 操作畫布 179
第7章 單元測試框架 181
7.1 單元測試簡介 181
7.2 單元測試框架簡介 181
7.3 UnitTest框架 182
7.3.1 UnitTest簡介 182
7.3.2 UnitTest的核心要素 182
7.3.3 工作流程 183
7.3.4 UnitTest案例實戰 183
7.4 Pytest框架 192
7.4.1 Pytest簡介 192
7.4.2 安裝Pytest 192
7.4.3 Pytest案例實戰 195
7.4.4 測試用例的運行控制 197
7.4.5 在編譯器中配置Pytest 201
第8章 自動化測試高級應用 202
8.1 HTML測試報告 202
8.1.1 HTMLTestRunner簡介 202
8.1.2 HTMLTestRunner的優化 202
8.1.3 測試報告的生成 203
8.2 通過郵件發送測試報告 204
8.2.1 郵件發送基礎 204
8.2.2 通過郵件發送測試報告實例 207
第9章 Page Object設計模式 214
9.1 Page Object設計模式簡介 214
9.2 Page Object案例實戰 216
9.2.1 基類的維護 216
9.2.2 測試頁面設計 217
9.2.3 測試用例的設計 218
9.3 定時運行 218
第10章 自動化測試框架 224
10.1 自動化框架設計與實現的前期準備 224
10.1.1 INI配置文件 224
10.1.2 INI配置文件的讀取 225
10.1.3 讀取INI配置文件的封裝 226
10.1.4 數據驅動操作 227
10.1.5 獲取測試數據 228
10.1.6 對數據驅動操作進行封裝 230
10.1.7 日誌 230
10.1.8 日誌綜合案例 233
10.2 自動化框架的設計與實現 235
10.2.1 自動化框架的設計 235
10.2.2 自動化框架的實現 236
第11章 持續集成 256
11.1 持續集成簡介 256
11.2 Jenkins部署 258
11.3 Jenkins與自動化 268
第12章 Selenium Grid分佈式測試 276
12.1 Selenium Grid簡介 276
12.2 Selenium Server配置 276
12.3 Selenium Server工作原理 277
12.4 Selenium Grid分佈式測試案例實踐 282
第13章 Selenium與虛擬化 292
13.1 Docker簡介 292
13.1.1 Docker架構 292
13.1.2 下載Docker 293
13.2 安裝Docker 294
13.3 Selenium與Docker的結合 302
附錄 310
參考文獻 313
作者介紹
李曉鵬
國家軟件評測師、微軟最有價值專家(MVP)、OCP、51CTO博客專家。
目前在某互聯網公司任職項目總監。
從事軟件測試工作10餘年,在軟件測試流程設計與優化、自動化測試(Selenium和UFT等)
及性能優化等領域有多年的項目實戰經驗,參與和主持了多個大型測試項目,並出版了相關書籍。
在IT教育領域踐行“視頻教學+網絡解答”的模式,降低了學員的學習成本,帶領廣大測試技術愛好者不斷成長。
夜無雪
曾任職於語音識別、互聯網金融及在線教育等公司,擁有7年多的軟件測試工作經驗。
工作期間多次參與