《Python實現Web UI自動化測試實戰Selenium34+unittestPytest+GitLab》是2021年人民郵電出版社出版的圖書。
基本介紹
- 中文名:Python實現Web UI自動化測試實戰Selenium34+unittestPytest+GitLab
- 作者:杜子龍,李鯤程,邊宇明
- 出版時間:2021年
- 出版社:人民郵電出版社
- ISBN:9787115564054
- 開本:128 開
內容簡介,圖書目錄,作者簡介,
內容簡介
《Python實現Web UI自動化測試實戰:Selenium 3/4+unittest/Pytest+GitLab+Jenkins》主要介紹如何基於Python使用Selenium、unittest、Pytest、GitLab、Jenkins等工具實現Web UI自動化測試,以幫助讀者提升測試水平。《Python實現Web UI自動化測試實戰:Selenium 3/4+unittest/Pytest+GitLab+Jenkins》第1章簡要介紹自動化測試的相關概念和思路、Selenium的特點和發展歷史、WebDriver的原理,以及Selenium IDE的簡單套用。第2章和第3章介紹與Python相關的基礎知識,為後續內容的講解做準備。第4章~第15章詳細介紹使用各種框架進行自動化測試的方法和實戰案例,幫助讀者進一步掌握自動化測試技能。第16章從實際情況出發,介紹提升自動化測試用例執行效率的幾種常見方法,供讀者在實際操作中參考。
本書適合計算機相關專業的學生、測試行業的從業人員和希望提升自動化測試實戰水平的技術人員閱讀。
圖書目錄
第 1章 自動化測試簡介
1.1 什麼是自動化測試 2
1.2 Selenium簡介 3
1.2.1 Selenium的特點 3
1.2.2 Selenium發展歷史 3
1.2.3 WebDriver組件 4
1.3 Selenium IDE 5
1.3.1 Selenium Firefox IDE 6
1.3.2 Katalon Recorder外掛程式 9
1.4 WebDriver腳本示例 10
第 2章 測試環境準備
2.1 Windows作業系統測試環境搭建 13
2.1.1 Python 13
2.1.2 Selenium 16
2.1.3 PyCharm 18
2.2 macOS作業系統測試環境搭建 23
2.3 開發者工具簡介 24
2.3.1 Chrome DevTools 24
2.3.2 Firefox DevTools 25
第3章 Python知識儲備
3.1 Python基本數據類型 27
3.1.1 數值 27
3.1.2 字元串 28
3.1.3 列表 29
3.1.4 元組 30
3.1.5 字典 31
3.1.6 集合 32
3.2 順序、分支、循環語句 32
3.2.1 順序語句 32
3.2.2 分支語句 33
3.2.3 循環語句 34
3.3 Python函式、模組 35
3.3.1 創建函式 36
3.3.2 函式參數 36
3.3.3 Python模組 44
3.4 面向對象編程 44
3.4.1 類和實例 46
3.4.2 繼承和多態 49
3.5 Python中的os模組 51
3.6 Python中的time模組 53
3.7 檔案讀寫 55
3.7.1 Python中的open函式 56
3.7.2 JSON檔案 58
3.7.3 YAML檔案 63
3.7.4 CSV檔案 65
第4章 前端知識儲備
4.1 HTML基礎知識 68
4.1.1 創建HTML檔案 68
4.1.2 HTML元素 69
4.1.3 HTML元素屬性 71
4.1.4 複雜元素 71
4.2 CSS相關知識 76
4.2.1 CSS基礎 76
4.2.2 CSS選擇器 77
4.3 JavaScript相關知識 78
4.3.1 JavaScript基礎概念 78
4.3.2 JavaScript HTML DOM 79
4.4 XML相關知識 80
4.4.1 XML簡介 80
4.4.2 XML樹結構 81
4.4.3 XPath 83
第5章 Selenium 基礎方法
5.1 Selenium常用方法 86
5.1.1 打開、關閉瀏覽器 87
5.1.2 訪問某個網址 87
5.1.3 網頁的前進和後退 88
5.1.4 刷新瀏覽器頁面 89
5.1.5 瀏覽器視窗最大化、最小化和全螢幕 89
5.1.6 獲取、設定瀏覽器視窗的大小 90
5.1.7 獲取、設定瀏覽器視窗的位置 91
5.1.8 獲取頁面的title 91
5.1.9 獲取當前頁面的URL地址 92
5.1.10 獲取頁面的源碼 93
5.1.11 多視窗操作(Selenium 3) 94
5.1.12 多視窗操作(Selenium 4) 96
5.1.13 瀏覽器方法和屬性總結 96
5.2 Selenium元素定位方法 97
5.2.1 頁面元素定位方法概覽 98
5.2.2 使用id定位元素 99
5.2.3 使用name定位元素 100
5.2.4 使用class name定位元素 101
5.2.5 使用tag name定位元素 101
5.2.6 使用連結的全部文字定位元素 103
5.2.7 使用部分連結文字定位元素 104
5.2.8 使用XPath定位元素 105
5.2.9 使用CSS定位元素 105
5.2.10 使用find_element('locator', 'value')定位元素 106
5.2.11 定位組元素 107
5.2.12 XPath和CSS selector精講 110
5.2.13 Selenium 4的相對定位器 117
5.2.14 元素定位“沒有銀彈” 118
5.3 獲取頁面元素的相關信息 122
5.3.1 獲取元素的基本信息 123
5.3.2 獲取元素的屬性信息 123
5.3.3 獲取元素的CSS屬性值 124
5.3.4 判斷頁面元素是否可見 125
5.3.5 判斷頁面元素是否可用 127
5.3.6 判斷元素的選中狀態 128
5.4 滑鼠操作實戰 129
5.4.1 滑鼠單擊操作 129
5.4.2 內置滑鼠操作包 129
5.4.3 滑鼠雙擊操作 130
5.4.4 滑鼠右擊操作 130
5.4.5 滑鼠指針懸浮操作 131
5.4.6 滑鼠拖動操作 131
5.4.7 其他滑鼠操作匯總 132
5.5 鍵盤操作 133
5.5.1 文字輸入 133
5.5.2 組合鍵 133
第6章 常見控制項實戰
6.1 搜尋框 137
6.2 按鈕 138
6.3 複選框 141
6.4 連結 143
6.5 select下拉列表 144
6.6 input下拉列表 152
6.7 表格 154
6.8 框架 158
6.9 JavaScript彈窗 164
6.10 非JavaScript彈窗 168
6.11 日期時間控制項 170
6.12 檔案下載 171
6.13 檔案上傳 177
第7章 Selenium高級套用
7.1 複雜控制項的操作 182
7.1.1 操作Ajax選項 182
7.1.2 操作富文本編輯器 183
7.1.3 滑動滑塊操作 186
7.2 WebDriver的特殊操作 188
7.2.1 元素class值包含空格 188
7.2.2 property、attribute、text的區別 190
7.2.3 定位動態id 192
7.2.4 操作cookie 193
7.2.5 截圖功能 199
7.2.6 獲取焦點元素 202
7.2.7 顏色驗證 202
7.3 JavaScript的套用 203
7.3.1 操作頁面元素 204
7.3.2 修改頁面元素屬性 204
7.3.3 操作滾動條 205
7.3.4 高亮顯示正在被操作的頁面元素 207
7.3.5 操作span類型元素 208
7.4 瀏覽器定製啟動參數 209
7.5 AutoIt的套用 213
7.6 重要的異常 217
第8章 Selenium等待機制
8.1 影響元素載入的外部因素 221
8.2 Selenium強制等待 222
8.3 Selenium隱性等待 223
8.4 Selenium顯性等待 226
第9章 線性測試腳本
9.1 Redmine系統 243
9.1.1 下載和安裝 243
9.1.2 常見錯誤 246
9.1.3 Redmine系統的啟動和關閉 247
9.1.4 Redmine簡單使用 249
9.2 線性腳本 251
第 10章 unittest測試框架
10.1 unittest框架結構 256
10.2 測試固件 258
10.3 編寫測試用例 260
10.4 執行測試用例 260
10.5 用例執行次序 263
10.6 內置裝飾器 266
10.7 命令行執行測試 268
10.8 批量執行測試檔案 270
10.9 測試斷言 272
10.10 測試報告 273
10.11 unittest與Selenium 276
10.12 unittest參數化 279
10.12.1 unittest + DDT 279
10.12.2 unittest + parameterized 281
第 11章 Pytest測試框架
11.1 Pytest框架簡介 284
11.2 Pytest測試固件 286
11.3 Pytest測試用例和斷言 290
11.4 Pytest框架測試執行 292
11.4.1 使用main函式執行 292
11.4.2 在命令行視窗中執行 294
11.5 Pytest框架用例執行失敗重試 295
11.6 標記機制 298
11.6.1 對測試用例進行分級 298
11.6.2 跳過某些用例 300
11.7 全局設定 301
11.8 測試報告 304
11.8.1 pytest-html測試報告 304
11.8.2 Allure測試報告 307
11.9 Pytest與Selenium 312
11.10 Pytest參數化 315
第 12章 PO設計模式
12.1 PO方案一 318
12.2 PO方案二 324
12.3 項目變更應對 330
第 13章 測試框架開發
13.1 測試數據分離 336
13.2 測試配置分離 338
13.3 Selenium API封裝 341
13.4 測試報告 346
第 14章 項目實戰
14.1 測試計畫 348
14.2 測試用例 349
14.3 測試腳本 351
14.4 反思:測試數據 358
14.4.1 測試數據準備 358
14.4.2 冗餘數據處理 359
第 15章 持續集成
15.1 Git套用 364
15.1.1 Git安裝 365
15.1.2 Git基本操作 366
15.1.3 GitLab部署 369
15.1.4 Git遠端倉庫 373
15.2 Jenkins套用 374
15.2.1 Jenkins部署 375
15.2.2 管理外掛程式 378
15.2.3 創建任務 379
15.2.4 命令行啟動Jenkins 381
15.2.5 設定項目執行頻率 383
15.2.6 配置郵件 384
15.2.7 配置釘釘 386
15.3 自動化測試持續集成 389
第 16章 提升效率
16.1 立足根本 394
16.2 另闢蹊徑 395
16.2.1 無頭瀏覽器 395
16.2.2 不關閉瀏覽器 396
16.3 著眼未來 397
16.3.1 分散式執行 398
16.3.2 Docker技術 402
作者簡介
Storm(杜子龍),先後就職於華為、聯想、Aicent、國能信息等公司,擁有十餘年的軟體測試從業經驗,對接口測試、UI 自動化測試、性能測試等均有一定積累,曾參與Android OS 系統、醫療SaaS系統、商旅系統等多個大型項目。 李鯤程,黑龍江人,畢業於北京郵電大學,軟體工程碩士。現就職於中國信息通信研究院數據研究中心大數據技術部,高級工程師。長期從事軟體開發、大數據系統運維與數據分析等工作。著有《Visual C++ 列印編程技術與工程實踐》等圖書和《基於關鍵字進行文本分類的研究與套用》等多篇論文。 邊宇明,2011 年參加工作,先後在中國銀行、國能信息等公司從事軟體測試工作,對白盒測試、自動化測試有一定的研發經驗。