Web自動(dòng)化測(cè)試與Selenium 3.0從入門到實(shí)踐
定 價(jià):79 元
- 作者:郎瓏融
- 出版時(shí)間:2020/8/1
- ISBN:9787111661535
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開本:16開
本書由淺入深,結(jié)合大量實(shí)際案例,重點(diǎn)講解Selenium WebDriver在企業(yè)中的應(yīng)用與實(shí)踐。
本書分為三部分:第壹部分為基礎(chǔ)篇(第1、2章)主要講解自動(dòng)化基礎(chǔ)理論、常用開發(fā)工具、安裝及環(huán)境搭建;第二部分為入門篇(第3~8章),主要講解企業(yè)常用技術(shù)Maven、Git的使用,并以豐富的實(shí)戰(zhàn)案例講解WebDriver的入門實(shí)例、頁(yè)面的元素定位方法及常用API的使用方法;第三部分為進(jìn)階篇(第9~14章),主要講解數(shù)據(jù)驅(qū)動(dòng)測(cè)試、PageObject設(shè)計(jì)模式、自動(dòng)化測(cè)試框架的搭建與持續(xù)集成、行為驅(qū)動(dòng)測(cè)試框架的使用及分布式并行測(cè)試的使用。
推薦序(一)
推薦序(二)
前言
第1章 自動(dòng)化測(cè)試基礎(chǔ)準(zhǔn)備1
1.1 自動(dòng)化測(cè)試的概念1
1.2 手工測(cè)試與自動(dòng)化測(cè)試的區(qū)別1
1.2.1 手工測(cè)試與自動(dòng)化測(cè)試并不對(duì)立1
1.2.2 手工測(cè)試的特點(diǎn)2
1.2.3 自動(dòng)化測(cè)試的特點(diǎn)2
1.2.4 自動(dòng)化測(cè)試與手工測(cè)試的關(guān)系2
1.3 自動(dòng)化測(cè)試中常見的誤區(qū)2
1.3.1 誤區(qū)一:自動(dòng)化測(cè)試就是用工具錄制和回放3
1.3.2 誤區(qū)二:自動(dòng)化測(cè)試能發(fā)現(xiàn)新Bug3
1.3.3 誤區(qū)三:會(huì)自動(dòng)化測(cè)試就是測(cè)試開發(fā)工程師了3
1.3.4 誤區(qū)四:有了自動(dòng)化測(cè)試就什么都不用做了3
1.4 分層自動(dòng)化測(cè)試思想4
1.4.1 單元測(cè)試自動(dòng)化4
1.4.2 接口測(cè)試自動(dòng)化5
1.4.3 Web測(cè)試自動(dòng)化5
1.5 自動(dòng)化測(cè)試流程5
1.5.1 對(duì)被測(cè)系統(tǒng)進(jìn)行調(diào)研6
1.5.2 確定使用的開發(fā)語(yǔ)言6
1.5.3 選擇自動(dòng)化測(cè)試項(xiàng)目6
1.5.4 申請(qǐng)自動(dòng)化測(cè)試資源6
1.5.5 自動(dòng)化測(cè)試用例篩選7
1.5.6 編寫自動(dòng)化測(cè)試方案7
1.5.7 自動(dòng)化測(cè)試框架和腳本開發(fā)7
1.5.8 框架演示7
1.5.9 進(jìn)入腳本開發(fā)階段7
1.5.10 腳本執(zhí)行階段8
1.5.11 成果驗(yàn)收8
1.6 編寫自動(dòng)化測(cè)試用例8
1.6.1 自動(dòng)化用例選擇原則8
1.6.2 編寫自動(dòng)化用例原則8
1.6.3 編寫自動(dòng)化測(cè)試腳本原則9
1.7 什么樣的項(xiàng)目適合自動(dòng)化測(cè)試9
1.7.1 不適合自動(dòng)化測(cè)試的情況9
1.7.2 適合自動(dòng)化測(cè)試的情況9
1.8 Selenium的優(yōu)勢(shì)以及工作原理10
1.8.1 支持的語(yǔ)言、平臺(tái)、瀏覽器10
1.8.2 Selenium的配套工具10
1.8.3 Selenium與QTP的比較10
1.8.4 Selenium的工作原理11
1.9 小結(jié)11
第2章 自動(dòng)化開發(fā)環(huán)境搭建12
2.1 安裝及配置Java環(huán)境12
2.1.1 下載JDK12
2.1.2 環(huán)境變量配置13
2.2 開發(fā)工具Eclipse的安裝及配置16
2.2.1 下載Eclipse16
2.2.2 TestNG插件的安裝及配置17
2.2.3 Maven插件的安裝及配置19
2.2.4 新建一個(gè)Java工程和測(cè)試類23
2.3 開發(fā)工具IDEA的安裝及配置26
2.3.1 下載和安裝IDEA27
2.3.2 IDEA主題和字體設(shè)置30
2.3.3 與Eclipse操作習(xí)慣進(jìn)行同步的設(shè)置32
2.3.4 IDEA必備開發(fā)插件安裝33
2.3.5 IDEA常用的快捷鍵33
2.3.6 使用IDEA創(chuàng)建一個(gè)Maven項(xiàng)目34
2.3.7 IDEA中項(xiàng)目的JDK設(shè)置37
2.3.8 使用IDEA編寫第一個(gè)程序38
2.4 小結(jié)39
第3章 Maven基礎(chǔ)入門40
3.1 什么是Maven40
3.2 為什么要使用Maven40
3.3 Maven倉(cāng)庫(kù)的配置41
3.3.1 倉(cāng)庫(kù)的分類41
3.3.2 三類倉(cāng)庫(kù)之間的關(guān)系41
3.3.3 本地倉(cāng)庫(kù)的配置41
3.4 配置Maven私服地址42
3.5 pom文件說(shuō)明42
3.6 在pom文件中添加依賴JAR包43
3.6.1 手動(dòng)添加依賴44
3.6.2 Maven項(xiàng)目的目錄結(jié)構(gòu)45
3.7 使用Maven編譯和測(cè)試46
3.7.1 編寫一個(gè)主類46
3.7.2 編寫一個(gè)測(cè)試類47
3.7.3 編譯和測(cè)試47
3.7.4 打包和運(yùn)行48
3.7.5 使用Archetype生成項(xiàng)目51
3.8 小結(jié)55
第4章 Git基礎(chǔ)入門56
4.1 Git介紹56
4.1.1 什么是Git56
4.1.2 為什么要使用Git56
4.1.3 Git與SVN的區(qū)別57
4.2 Git的工作流程57
4.3 Git客戶端配置57
4.3.1 在Windows上安裝Git57
4.3.2 注冊(cè)GitHub賬號(hào)58
4.3.3 配置個(gè)人的用戶名和電子郵件地址60
4.3.4 在客戶端生成SSH key60
4.3.5 配置SSH key添加公鑰61
4.4 Git常用操作62
4.4.1 創(chuàng)建一個(gè)版本庫(kù)62
4.4.2 初始化本地倉(cāng)庫(kù)63
4.4.3 添加和提交文件63
4.4.4 將本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)相關(guān)聯(lián)63
4.4.5 查看版本的操作內(nèi)容64
4.4.6 版本回退操作65
4.4.7 查看工作區(qū)狀態(tài)65
4.4.8 撤銷修改操作66
4.4.9 刪除文件操作66
4.4.10 分支操作67
4.4.11 解決沖突操作68
4.5 小結(jié)69
第5章 頁(yè)面元素定位70
5.1 定位插件安裝70
5.1.1 舊版本Firefox定位插件安裝70
5.1.2 最新版本Firefox定位插件安裝72
5.1.3 Chrome瀏覽器定位插件安裝73
5.2 定位頁(yè)面元素的方法74
5.2.1 查看頁(yè)面元素75
5.2.2 常用元素定位方法75
5.2.3 XPath定位方法詳解77
5.2.4 CSS定位方法詳解81
5.2.5 使用jQuery定位86
5.2.6 table表格常見的定位操作89
5.3 小結(jié)92
第6章 主流測(cè)試框架TestNG的使用93
6.1 TestNG的基本介紹93
6.1.1 TestNG常見的代碼93
6.1.2 TestNG怎樣執(zhí)行測(cè)試94
6.2 TestNG的使用95
6.2.1 快速開始95
6.2.2 注解及屬性97
6.2.3 套件測(cè)試100
6.2.4 忽略測(cè)試102
6.2.5 分組測(cè)試103
6.2.6 異常測(cè)試105
6.2.7 依賴測(cè)試105
6.2.8 超時(shí)測(cè)試106
6.2.9 參數(shù)化測(cè)試108
6.2.10 多線程測(cè)試110
6.2.11 TestNG斷言111
6.3 小結(jié)115
第7章 從瀏覽器啟動(dòng)開始116
7.1 啟動(dòng)Chrome瀏覽器116
7.1.1 環(huán)境準(zhǔn)備工作116
7.1.2 下載ChromeDriver驅(qū)動(dòng)118
7.1.3 啟動(dòng)Chrome瀏覽器118
7.2 啟動(dòng)IE瀏覽器119
7.2.1 下載IEDriverServer119
7.2.2 配置IE瀏覽器120
7.2.3 啟動(dòng)IE瀏覽器120
7.3 啟動(dòng)Firefox瀏覽器121
7.3.1 啟動(dòng)舊版本的Firefox瀏覽器121
7.3.2 啟動(dòng)最新版本的Firefox瀏覽器122
7.4 啟動(dòng)Edge瀏覽器123
7.4.1 下載Microsoft WebDriver123
7.4.2 啟動(dòng)Edge瀏覽器124
7.5 多瀏覽器并行測(cè)試124
7.6 小結(jié)127
第8章 WebDriver常用API使用詳解128
8.1 瀏覽器操作128
8.1.1 訪問(wèn)某個(gè)網(wǎng)站128
8.1.2 瀏覽器最大化129
8.1.3 瀏覽器前進(jìn)和后退操作129
8.1.4 瀏覽器刷新操作129
8.1.5 瀏覽器窗口操作130
8.1.6 獲取頁(yè)面標(biāo)題130
8.1.7 獲取頁(yè)面源代碼信息130
8.1.8 獲取當(dāng)前頁(yè)面URL地址131
8.1.9 關(guān)閉瀏覽器操作131
8.2 元素操作131
8.2.1 點(diǎn)擊操作132
8.2.2 輸入操作133
8.2.3 獲取頁(yè)面元素文本的操作134
8.2.4 獲取頁(yè)面元素標(biāo)簽名稱的操作134
8.2.5 獲取頁(yè)面元素屬性值的操作134
8.2.6 獲取頁(yè)面元素尺寸的操作135
8.2.7 獲取頁(yè)面元素CSS樣式的操作135
8.2.8 獲取頁(yè)面元素坐標(biāo)的操作135
8.2.9 獲取多個(gè)頁(yè)面元素的操作136
8.3 鼠標(biāo)事件和鍵盤事件的操作136
8.3.1 鼠標(biāo)懸浮操作137
8.3.2 鼠標(biāo)單擊操作138
8.3.3 鼠標(biāo)雙擊操作139
8.3.4 鼠標(biāo)移動(dòng)操作139
8.3.5 鼠標(biāo)右擊操作139
8.3.6 按住鼠標(biāo)按鍵和釋放鼠標(biāo)按鍵的操作139
8.3.7 鼠標(biāo)拖曳操作139
8.3.8 模擬鍵盤操作145
8.4 Selenium中常見的等待146
8.4.1 實(shí)際案例146
8.4.2 強(qiáng)制等待147
8.4.3 頁(yè)面等待148
8.4.4 隱式等待149
8.4.5 顯式等待150
8.5 Selenium中的窗口切換處理153
8.5.1 常用切換方法153
8.5.2 兩個(gè)窗口切換153
8.5.3 多個(gè)窗口切換155
8.6 iframe切換處理158
8.6.1 常用切換方法158
8.6.2 使用iframe標(biāo)簽位置切換159
8.6.3 使用元素對(duì)象進(jìn)行iframe切換159
8.6.4 使用id屬性進(jìn)行iframe切換159
8.6.5 使用name屬性進(jìn)行iframe切換160
8.6.6 iframe切換操作實(shí)例160
8.7 彈窗處理163
8.7.1 彈窗分類163
8.7.2 彈窗處理常用方法163
8.7.3 Alert彈窗處理164
8.7.4 Confirm彈窗處理165
8.7.5 Prompt彈窗處理165
8.8 單選框和復(fù)選框處理166
8.8.1 什么是單選框和復(fù)選框166
8.8.2 判斷是否選中167
8.8.3 單選框處理167
8.8.4 復(fù)選框處理167
8.9 下拉框處理168
8.9.1 處理下拉框的常見方法168
8.9.2 下拉框處理169
8.10 Cookie操作170
8.10.1 獲取Cookie170
8.10.2 獲取Cookie個(gè)數(shù)170
8.10.3 刪除所有Cookie170
8.10.4 設(shè)置Cookie171
8.10.5 通過(guò)Cookie跳過(guò)登錄驗(yàn)證碼171
8.11 調(diào)用JavaScript操作173
8.11.1 Selenium調(diào)用JS的用法174
8.11.2 使用Selenium調(diào)用JS實(shí)例174
8.12 上傳文件操作175
8.12.1 普通控件上傳175
8.12.2 通過(guò)Robot對(duì)象上傳文件176
8.12.3 借助AutoIt完成上傳文件的操作177
8.13 滾動(dòng)條操作181
8.13.1 滾動(dòng)條處理方法181
8.13.2 常見滾動(dòng)條處理案例181
8.14 截圖操作182
8.14.1 通過(guò)TakeScreenshout類實(shí)現(xiàn)截圖182
8.14.2 通過(guò)Robot對(duì)象截圖183
8.14.3 截取目標(biāo)區(qū)域的圖片183
8.15 錄制屏幕操作184
8.15.1 安裝及配置184
8.15.2 錄制視頻操作185
8.16 富文本操作187
8.16.1 富文本編輯器187
8.16.2 通過(guò)鍵盤事件實(shí)現(xiàn)輸入操作187
8.16.3 通過(guò)進(jìn)入iframe實(shí)現(xiàn)輸入操作188
8.16.4 通過(guò)執(zhí)行JS實(shí)現(xiàn)輸入操作188
8.17 日期控件操作189
8.17.1 通過(guò)js設(shè)置日期189
8.17.2 通過(guò)iframe設(shè)置日期190
8.18 Ajax浮動(dòng)框操作190
8.18.1 什么是Ajax浮動(dòng)框190
8.18.2 Ajax浮動(dòng)框處理191
8.19 下載文件到指定目錄的操作192
8.19.1 Firefox自動(dòng)下載文件到指定目錄的操作192
8.19.2 Chrome自動(dòng)下載文件到指定目錄的操作194
8.20 使用SikuliX操作Flash網(wǎng)頁(yè)196
8.20.1 實(shí)際操作案例196
8.20.2 安裝及配置196
8.20.3 使用SikuliX操作Flash網(wǎng)頁(yè)197
8.21 小結(jié)199
第9章 數(shù)據(jù)驅(qū)動(dòng)測(cè)試201
9.1 數(shù)據(jù)驅(qū)動(dòng)測(cè)試介紹201
9.2 利用DataProvider進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試201
9.3 利用CSV文件進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試203
9.3.1 創(chuàng)建CSV數(shù)據(jù)源文件203
9.3.2 利用CSV文件進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試203
9.4 利用Excel文件進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試204
9.4.1 創(chuàng)建Excel數(shù)據(jù)源文件205
9.4.2 進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試205
9.4.3 驗(yàn)證使用Excel進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試208
9.5 利用YAML文件進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試208
9.5.1 創(chuàng)建YAML數(shù)據(jù)源文件208
9.5.2 進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試209
9.5.3 驗(yàn)證使用YAML進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試210
9.6 利用MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試210
9.6.1 數(shù)據(jù)源準(zhǔn)備210
9.6.2 進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試211
9.6.3 驗(yàn)證使用MySQL進(jìn)行數(shù)據(jù)驅(qū)動(dòng)測(cè)試212
9.7 小結(jié)213
第10章 Page Object設(shè)計(jì)模式214
10.1 Page Object設(shè)計(jì)模式介紹214
10.1.1 什么是Page Object設(shè)計(jì)模式214
10.1.2 Page Object實(shí)際應(yīng)用案例215
10.2 Page Factory設(shè)計(jì)模式217
10.2.1 @FindBy和@CacheLookup的用法218
10.2.2 Page Factory類的使用218
10.2.3 Page Factory模式實(shí)際應(yīng)用案例218
10.3 小結(jié)222
第11章 手把手教你搭建一個(gè)自動(dòng)化測(cè)試框架223
11.1 為什么要編寫自動(dòng)化測(cè)試框架223
11.2 框架設(shè)計(jì)思路與實(shí)現(xiàn)224
11.2.1 框架設(shè)計(jì)思路224
11.2.2 準(zhǔn)備工作224
11.2.3 Log4j日志配置227
11.2.4 基礎(chǔ)層的實(shí)現(xiàn)228
11.3 元素對(duì)象的管理與實(shí)現(xiàn)228
11.3.1 解析Excel文件229
11.3.2 By對(duì)象的封裝231
11.3.3 元素對(duì)象層的再封裝233
11.3.4 操作層的實(shí)現(xiàn)234
11.3.5 業(yè)務(wù)層的實(shí)現(xiàn)234
11.4 測(cè)試報(bào)告的美化235
11.5 小結(jié)239
第12章 行為驅(qū)動(dòng)框架Cucumber的使用240
12.1 BDD框架之Cucumber初探240
12.1.1 什么是Cucumber240
12.1.2 何為BDD240
12.1.3 Feature介紹240
12.1.4 Step介紹241
12.1.5 Cucumber的使用241
12.1.6 如何執(zhí)行244
12.2 使用Cucumber 進(jìn)行參數(shù)化測(cè)試245
12.2.1 什么是參數(shù)化245
12.2.2 Cucumber的數(shù)據(jù)驅(qū)動(dòng)245
12.2.3 編寫測(cè)試用例文件245
12.2.4 創(chuàng)建業(yè)務(wù)測(cè)試代碼部分246
12.3 Cucumber操作實(shí)例247
12.3.1 編寫測(cè)試用例文件247
12.3.2 創(chuàng)建一個(gè)Step定義文件247
12.3.3 創(chuàng)建一個(gè)Runner類文件248
12.4 小結(jié)249
第13章 持續(xù)集成工具Jenkins的使用250
13.1 Jenkins的安裝250
13.1.1 什么是Jenkins250
13.1.2 Jenkins構(gòu)建過(guò)程250
13.1.3 安裝及啟動(dòng)251
13.2 Jenkins的配置256
13.2.1 Jenkins插件的安裝256
13.2.2 JDK、Maven和Git的配置257
13.2.3 Jenkins創(chuàng)建一個(gè)任務(wù)258
13.3 Jenkins的郵箱配置260
13.3.1 獲取郵箱服務(wù)器相關(guān)信息261
13.3.2 開啟QQ郵箱的SMTP服務(wù)261
13.3.3 安裝Email Extension Plugin插件262
13.3.4 Jenkins郵箱的全局配置263
13.3.5 項(xiàng)目Job的郵箱配置264
13.4 Cucumber與Jenkins持續(xù)集成266
13.4.1 添加ExtentReports測(cè)試報(bào)告266
13.4.2 Cucumber入口類267
13.4.3 使用Jenkins持續(xù)集成268
13.5 小結(jié)271
第14章 Selenium Grid的使用273
14.1 環(huán)境搭建準(zhǔn)備273
14.1.1 什么是Selenium Grid273
14.1.2 搭建Selenium Grid服務(wù)273
14.2 Selenium Grid實(shí)例276
14.3 小結(jié)279
參考文獻(xiàn)280