Selenium 自動化測試完全指南 -- 基於 Python

Selenium 自動化測試完全指南 -- 基於 Python

作者: 趙卓
出版社: 人民郵電
出版在: 2021-05-01
ISBN-13: 9787115557162
ISBN-10: 7115557160
裝訂格式: 平裝
總頁數: 338 頁





內容描述


本書共有19章。第1~10章介紹Selenium IDE、Selenium WebDriver、Selenium Grid、Appium等工具的應用。第11~16章介紹自動化測試實戰的組織及模式優化,包括如何通過Selenium進行功能測試和非功能測試,如何完善功能測試驅動,如何設置功能測試的邏輯組織結構,如何優化功能測試的物理組織結構,如何增強功能測試的運行反饋機制。第17~19章講述自動化實戰的落實及實踐優化。
本書適合測試人員和開發人員閱讀。


目錄大綱


第一部分Selenium工具組
第1章Selenium自動化測試概覽3
1.1自動化測試簡介3
1.2 Selenium簡介5
1.3 Selenium 4與Selenium 3的異同6
1.4 Selenium工具集7
1.4.1 Selenium IDE 7
1.4.2 Selenium WebDriver 8
1.4.3 Selenium Grid 8
1.4.4 Appium 8
第2章Selenium IDE的基本運用10
2.1 Selenium IDE的安裝10
2.2 Selenium IDE的基本操作12
2.2.1錄製與回放13
2.2.2保存回放文件17
2.2.3添加測試驗證18
2.2.4導出測試腳本20
2.2.5其他運用21
第3章Selenium IDE的高級運用23
3.1 Selenium IDE支持的5類命令23
3.1.1界面操作類命令23
3.1.2測試驗證類命令26
3.1.3執行等待類命令27
3.1. 4流程控制類命令28
3.1.5測試輔助類命令29
3.2測試套件管理31
3.3命令行運行器33
3.3.1安裝並運行各個瀏覽器34
3.3.2常用參數設置35
第4章Selenium WebDriver的基本運用38
4.1 Selenium WebDriver的安裝與配置38
4.1.1配置驅動程序38
4.1.2配置環境變量42
4.1.3安裝綁定語言42
4.2選擇瀏覽器開始測試43
4.3瀏覽器窗口的基本操作44
4.3.1瀏覽器導航操作44
4.3.2瀏覽器窗口操作45
4.3.3獲取瀏覽器信息45
4.4查找頁面元素47
4.4.1按id屬性查找47
4 .4.2按name屬性查找48
4.4.3按class屬性查找48
4.4.4按鏈接文本查找48
4.4.5按鏈接文本進行模糊查找50
4.4.6按標籤類型查找50
4.4.7按XPath查找50
4.4.8按CSS選擇器查找53
4.4.9通過By對象按動態條件查找55
4.4.10查找元素集合56
4.4.11嵌套查找57
4.5頁面元素的基本操作57
4.5.1單擊元素57
4.5.2向元素輸入內容或上傳附件59
4.5.3清空元素的內容60
4.5.4提交表單元素60
4.5.5下拉框元素的選項操作61
4.6獲取頁面元素的內容63
4.6.1獲取元素的基本屬性63
4.6.2獲取元素的HTML屬性、DOM屬性及CSS屬性65
4.6.3獲取元素的位置與大小69
4.6.4獲取下拉框元素的選項70
4.7處理瀏覽器彈出框71
4.7.1彈出框的確認與取消73
4.7.2獲取彈出框的文本73
4.7. 3向彈出框中輸入內容74
4.8多網頁切換操作75
4.8.1多瀏覽器窗口的切換75
4.8.2 IFrame切換77
4.9結束WebDriver會話78
第5章Selenium WebDriver的高級運用79
5.1深入了解Selenium的等待機制79
5.1.1頁面級等待機制79
5.1.2元素級等待機制—強制等待80
5.1.3元素級等待機制—隱式等待81
5 .1.4元素級等待機制—顯式等待82
5.1.5腳本級等待機制87
5.2對鍵盤和鼠標進行精準模擬87
5.2.1 ActionChains——操作鏈87
5.2.2 ActionChains支持的全部鼠標與鍵盤操作設置89
5.2.3模擬複雜鼠標操作案例——拖放操作91
5.2.4模擬複雜鍵盤操作案例——組合鍵93
5.3操作瀏覽器Cookie 95
5.3.1讀取Cookie 95
5.3.2新增和刪除Cookie 96
5.4對瀏覽器窗口或元素截圖97
5.4.1對瀏覽器窗口截圖97
5.4.2對元素截圖98
5.5為Selenium操作附加自定義事件99
5.5.1附加WebDriver級自定義事件99
5.5.2附加元素級自定義事件102
5.6瀏覽器啟動參數設置103
5.6.1 WebDriver實例化參數103
5.6.2 WebDriver啟動選項設置106
5.7通過JavaScript執行器進行深度操作108
5.7.1執行同步腳本——返回值與類型轉換109
5.7.2執行同步腳本——傳入參數110
5.7.3執行同步腳本——複雜案例:引入JavaScript庫處理HTML5拖曳111
5.7.4執行異步腳本114
第6章Selenium Grid的基本運用117
6.1 Selenium Grid各組件的部署118
6.1.1部署Selenium Grid Hub 119
6.1.2部署Selenium Grid Node 120
6.2在Selenium Grid上運行測試122
6.2.1創建遠程實例運行測試122
6.2.2遠程實例管理124
6.2.3獨立模式125
第7章Selenium Grid的高級運用126
7.1 Selenium Grid詳細參數設置126
7.1.1 Hub與Node的功能參數設置128
7.1.2 WebDriver瀏覽器參數設置131
7.2使用Selenium Grid進行分佈式並行測試134
7.3容器化Selenium—整合Docker 135
7.3.1 Docker簡介135
7.3.2安裝Docker並拉取Selenium鏡像137
7.3.3在同一台機器上部署Selenium Grid鏡像139
7.3.4在多台機器上部署Selenium Grid組成集群142
7.4容器化Selenium—整合Kubernetes 143
7.4.1 Kubernetes簡介144
7.4.2 Kubernetes的安裝與配置145
7.4.3 Kubernetes的關鍵概念——Pod、Deployment、Service 146
7.4.4在Kubernetes集群中部署Selenium Grid 148
第8章Selenium 4的新特性預覽152
8.1 Selenium WebDriver 4 152
8.1.1下載WebDriver 152
8.1.2相對定位器153
8. 1.3顯式等待組合邏輯155
8.1.4其他更新156
8.2 Selenium Grid 4 158
8.2.1下載與啟動158
8.2.2運行測試160
第9章Appium的基本運用162
9 .1 Appium運行原理簡介162
9.2 Appium的安裝與配置164
9.2.1安裝Android SDK 164
9.2.2安裝Appium服務器170
9.2.3安裝Appium客戶端171
9.3使用Appium測試Web程序172
9.3.1設置瀏覽器驅動程序172
9.3.2編寫代碼操作Web應用程序174
9.3.3通過Appium工具查看元素信息175
9.3.4其他替代方案177
9.4使用Appium測試App 178
9.4.1連接真實的移動設備179
9.4.2解析啟動屬性appPackage和appActivity 179
9.4.3查看並定位界面元素182
9.4.4編寫操作代碼——微信登錄案例184
第10章Appium的高級運用186
10.1 Appium檢測工具的具體功能186
10.2移動設備元素獨有的定位195
10.3移動設備界面獨有的操作198
10.3.1滑動操作與多點觸控198
10.3.2觸控操作鏈201
10.3.3剪貼板與虛擬鍵盤操作204
10.4移動設備App獨有的操作205
10.4.1 App的安裝、卸載、啟用、關閉與隱藏205
10.4.2操作及獲取當前的appPackage和appActivity 208
10.5移動設備系統獨有操作209
10.5.1網絡信號與通話209
10.5.2設備與電源管理210
10.5.3模擬GPS定位211
10.6測試輔助操作212
10.6.1屏幕錄製212
10.6.2獲取App性能消耗信息及上下文信息212
10. 7並行運行多個移動設備214
10.8將Appium加入Selenium Grid集群215
第二部分自動化測試實戰:組織及模式優化
第11章使用Selenium進行功能測試221
11.1完善測試的基本要素222
11.2結合Pytest進行功能測試224
11.2.1 Pytest的安裝與簡介225
11.2.2基於Pytest編寫Selenium測試226
11.2.3選擇合適的執行方式227
第12章完善功能測試驅動以規範測試230
12.1引言230
12.2線性測試233
12.3模塊化與庫234
12.4數據驅動235
12.5關鍵字驅動235
12.6使用驅動時的誤區236
12.6.1數據驅動的誤區236
12.6.2關鍵字驅動的誤區237
12.7最佳模式:混合驅動238
12.7.1混合第一層驅動238
12.7.2混合第二層驅動240
12.8創建配置文件以應對不同環境242
12.8.1讓公共信息支持多環境配置242
12.8. 2讓用例數據支持多環境配置243
第13章設計功能測試的邏輯組織結構245
13.1測試的前置操作與後置操作245
13.1.1 Pytest setup與teardown功能詳解245
13.1.2前後置操作實際運用案例247
13.2設定測試函數的先後順序250
13.2.1文件級執行順序250
13.2.2函數級執行順序251
13.2.3自定義順序251
13.3測試粒度規劃252
13.3.1小粒度的測試252
13.3.2中粒度的測試253
13.3.3大粒度的測試254
第14章優化功能測試的物理組織結構256
14.1引言256
14.2通過頁面對象規劃待操作元素261
14.3通過繼承關係組織公共元素265
14.4進一步解耦測試用例與操作動作268
14.4.1解耦測試工具級操作269
14.4.2解耦頁面元素級操作274
14.5通過流式編程技術簡化測試代碼279
第15章增強功能測試的運行反饋機制283
15.1生成測試報告283
15.2並行運行測試285
15 .3引入重試機制286
第16章使用Selenium進行非功能測試287
16.1網絡爬蟲287
16.1.1爬蟲簡介287
16.1.2使用Selenium實現爬蟲288
16.2性能測試291
16.2 .1多線程性能測試291
16.2.2結合JMeter進行測試293
第三部分自動化測試實戰:落實及實踐優化
第17章自動化測試的規劃301
17.1目標決定自動化測試的成敗301
17.1. 1必定走向失敗的目標301
17.1.2能夠引領成功的目標304
17.2測試設計決定自動化測試的成效304
17.2.1無效的測試設計305
17.2.2有效的測試設計306
第18章使用Jenkins進行持續集成308
18.1必要概念與工具簡介308
18.1.1持續集成與Jenkins簡介308
18.1.2 Jenkins的安裝與配置310
18.2配置基於網站代碼變化而自動執行的Selenium腳本315
18.2.1編寫一個基於Flask的網站316
18.2.2編寫該網站的自動部署腳本317
18.2.3編寫測試該網站的Selenium測試腳本319
18.2.4在Jenkins中配置自動構建、部署與執行測試320
18.3配置基於時間定期自動執行的Selenium腳本326
18.4完善運行反饋配置328
18.4.1配置測試報告328
18.4.2配置郵件發送329
第19章選擇自動化測試的實施方式334
19.1不同產品架構與開發流程下的自動化測試334
19.2以正確的數據說話——建立自動化測試評估體系336
19.3打造自動化測試閉環338


作者介紹


趙卓,新蛋科技有限公司電子商務研發團隊項目經理,從事過多年測試工作和開發工作,精通各類開發和測試技術。
編寫過的圖書有《Kubernetes從入門到實踐》《Selenium自動化測試指南》,翻譯過的圖書有《精通Selenium WebDriver 3.0 (第2版)》《Visual Studio 2010軟件測試指南》和《快速編碼:高效使用Microsoft Visual Studio》。




相關書籍

Selenium3 + Python3 自動化測試項目實戰:從菜鳥到高手

作者 田春成 李靖

2021-05-01

Hands-On Selenium Webdriver with Java: A Deep Dive Into the Development of End-To-End Tests

作者 Garcia Boni

2021-05-01

Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing, 3/e (Paperback)

作者 Rex Black

2021-05-01