自動(dòng)化測(cè)試應(yīng)用教程(Web+App)
本書(shū)基于Python語(yǔ)言,系統(tǒng)地介紹了Selenium與Appium自動(dòng)化測(cè)試的相關(guān)知識(shí)及應(yīng)用。
本書(shū)共10章,第1章主要講解自動(dòng)化測(cè)試的基礎(chǔ)知識(shí),第2~4章主要講解Selenium WebDriver的應(yīng)用與App自動(dòng)化測(cè)試;第5~9章主要講解了單元測(cè)試框架、PO模式、數(shù)據(jù)驅(qū)動(dòng)、日志和持續(xù)集成;第10章通過(guò)測(cè)試一個(gè)黑馬頭條項(xiàng)目幫助初學(xué)者鞏固第1~9章學(xué)習(xí)的知識(shí),讓初學(xué)者掌握自動(dòng)化測(cè)試在實(shí)際工作中的運(yùn)用。
本書(shū)附有配套視頻、源代碼、教學(xué)課件等教學(xué)資源,為了幫助初學(xué)者更好地學(xué)習(xí)本書(shū)的內(nèi)容,作者還提供了在線答疑服務(wù),希望能夠幫助更多的讀者。
本書(shū)適合作為高等教育本、專科院校計(jì)算機(jī)相關(guān)專業(yè)的教材,也可作為自動(dòng)化測(cè)試愛(ài)好者的自學(xué)讀物。
1.本書(shū)是黑馬程序員軟件測(cè)試系列教材;
2.本書(shū)配套有豐富的教學(xué)資源,包括教學(xué)視頻、源代碼、PPT、教學(xué)設(shè)計(jì)、教學(xué)大綱、課后習(xí)題及答案、題庫(kù)、在線答疑等。
黑馬程序員 傳智播客成立于2006年,它是由中國(guó)Java培訓(xùn)先行者張孝祥老師發(fā)起,聯(lián)合全球最大的中文IT社區(qū)CSDN、中關(guān)村軟件園共同創(chuàng)辦的一家專業(yè)教育機(jī)構(gòu)。辦學(xué)至今,我們一直堅(jiān)守著“為千萬(wàn)人少走彎路而著書(shū),為中華軟件之崛起而講課”的辦學(xué)理念,堅(jiān)持培養(yǎng)優(yōu)秀軟件應(yīng)用工程師的宏偉目標(biāo),在累計(jì)培養(yǎng)的十萬(wàn)余名學(xué)員中,其中90%的學(xué)員均已在北、上、廣等一線城市高薪就業(yè)。為了迎合軟件市場(chǎng)的需求,我們陸續(xù)開(kāi)設(shè)了Java、網(wǎng)頁(yè)平面、PHP、.Net、iOS、C/C++、Android等9個(gè)專業(yè)方向的課程,并且未來(lái)將逐漸開(kāi)設(shè)其他專業(yè)方向的課程。隨著傳智播客的日益壯大,除了北京總部,我們?cè)谏虾、廣州、武漢、成都、深圳等地也創(chuàng)立了直營(yíng)分支機(jī)構(gòu),傳智播客儼然已成為了國(guó)內(nèi)最具專業(yè)口碑的IT教育機(jī)構(gòu)。
目錄
第 1章 自動(dòng)化測(cè)試概述 1
1.1 自動(dòng)化測(cè)試簡(jiǎn)介 1
1.1.1 自動(dòng)化測(cè)試的概念 1
1.1.2 自動(dòng)化測(cè)試的優(yōu)缺點(diǎn) 2
1.1.3 自動(dòng)化測(cè)試的分類 3
1.2 自動(dòng)化測(cè)試的基本流程 4
1.3 自動(dòng)化測(cè)試的常用工具 7
1.4 本章小結(jié) 8
1.5 本章習(xí)題 8
第 2章 Selenium WebDriver的基本應(yīng)用 9
2.1 Selenium WebDriver簡(jiǎn)介 9
2.2 搭建Web自動(dòng)化測(cè)試環(huán)境 10
2.2.1 搭建Python環(huán)境 10
2.2.2 安裝Selenium 15
2.2.3 安裝瀏覽器驅(qū)動(dòng) 17
2.3 元素定位簡(jiǎn)介 19
2.4 使用瀏覽器定位頁(yè)面元素 19
2.4.1 使用Chrome瀏覽器定位頁(yè)面元素 20
2.4.2 使用Firefox瀏覽器定位頁(yè)面元素 20
2.5 使用Selenium定位頁(yè)面元素 21
2.5.1 單個(gè)元素的定位 21
2.5.2 一組元素的定位 25
2.6 獲取元素的常用信息 27
2.6.1 獲取元素尺寸 27
2.6.2 獲取元素文本 29
2.6.3 獲取元素屬性值 29
2.7 元素的常用操作 33
2.8 鼠標(biāo)的常用操作 34
2.9 鍵盤的常用操作 35
2.10 瀏覽器的常用操作 37
2.10.1 瀏覽器窗口的處置 37
2.10.2 瀏覽器的前進(jìn)與后退 38
2.10.3 瀏覽器頁(yè)面的刷新 39
2.10.4 獲取瀏覽器頁(yè)面的標(biāo)題和URL 40
2.10.5 瀏覽器窗口的關(guān)閉 41
2.11 本章小結(jié) 42
2.12 本章習(xí)題 42
第3章 Selenium WebDriver的高級(jí)應(yīng)用 44
3.1 下拉選擇框操作 44
3.2 彈出框操作 47
3.3 截圖操作 50
3.4 多窗口切換 53
3.5 多表單切換 54
3.6 元素等待 56
3.6.1 顯式等待 56
3.6.2 隱式等待 58
3.6.3 強(qiáng)制等待 60
3.7 Cookie處理 60
3.8 文件上傳與下載 61
3.9 執(zhí)行JavaScript腳本 67
3.9.1 JavaScript腳本控制瀏覽器滾動(dòng)條 67
3.9.2 JavaScript腳本處理日期控件 69
3.10 本章小結(jié) 70
3.11 本章習(xí)題 70
第4章 App自動(dòng)化測(cè)試 72
4.1 搭建App自動(dòng)化測(cè)試環(huán)境 72
4.1.1 安裝JDK 1.8 72
4.1.2 下載Android SDK 74
4.1.3 創(chuàng)建Android模擬器 75
4.1.4 安裝Appium與Appium-Python-Client庫(kù) 80
4.2 App自動(dòng)化測(cè)試常用工具 84
4.2.1 adb調(diào)試工具 84
4.2.2 uiautomatorviewer工具 86
4.3 驅(qū)動(dòng)操作 89
4.3.1 獲取手機(jī)屏幕分辨率 89
4.3.2 獲取手機(jī)屏幕截圖 90
4.3.3 獲取手機(jī)網(wǎng)絡(luò)類型 91
4.3.4 模擬手機(jī)鍵盤操作 92
4.3.5 手機(jī)通知欄操作 93
4.4 手勢(shì)操作 94
4.4.1 輕敲操作 94
4.4.2 按下和抬起操作 96
4.4.3 等待操作 97
4.4.4 長(zhǎng)按操作 98
4.4.5 移動(dòng)操作 99
4.4.6 滑動(dòng)和拖曳操作 101
4.5 Toast消息處理 104
4.6 本章小結(jié) 107
4.7 本章習(xí)題 107
第5章 單元測(cè)試框架 109
5.1 unittest框架 109
5.1.1 unittest框架簡(jiǎn)介 110
5.1.2 unittest的核心要素 110
5.1.3 unittest示例 112
5.1.4 unittest斷言 113
5.1.5 生成HTML測(cè)試報(bào)告 114
5.2 pytest框架 116
5.2.1 pytest框架簡(jiǎn)介 116
5.2.2 pytest框架的安裝方式 116
5.2.3 pytest示例 118
5.2.4 pytest斷言 120
5.2.5 Fixture 122
5.2.6 pytest配置文件 123
5.2.7 測(cè)試用例的執(zhí)行順序 125
5.2.8 跳過(guò)測(cè)試用例 127
5.2.9 失敗重試 128
5.2.10 參數(shù)化 129
5.2.11 生成測(cè)試報(bào)告 131
5.3 本章小結(jié) 136
5.4 本章習(xí)題 137
第6章 PO模式 138
6.1 PO模式簡(jiǎn)介 138
6.1.1 PO模式的概念 138
6.1.2 PO模式的優(yōu)缺點(diǎn) 138
6.2 PO模式的案例實(shí)戰(zhàn) 139
6.2.1 商城登錄功能簡(jiǎn)介 139
6.2.2 創(chuàng)建工具類UtilsDriver 140
6.2.3 創(chuàng)建基類BasePage與BaseHandle 141
6.2.4 商城首頁(yè)的PO模式 142
6.2.5 登錄頁(yè)面的PO模式 143
6.2.6 創(chuàng)建登錄功能的測(cè)試用例 144
6.3 本章小結(jié) 146
6.4 本章習(xí)題 146
第7章 數(shù)據(jù)驅(qū)動(dòng) 148
7.1 數(shù)據(jù)驅(qū)動(dòng)簡(jiǎn)介 148
7.1.1 數(shù)據(jù)驅(qū)動(dòng)的概念 148
7.1.2 測(cè)試數(shù)據(jù)的來(lái)源 149
7.2 文本數(shù)據(jù)驅(qū)動(dòng)的實(shí)現(xiàn) 149
7.3 基于DDT數(shù)據(jù)驅(qū)動(dòng)的實(shí)現(xiàn) 151
7.3.1 安裝DDT 151
7.3.2 DDT讀取測(cè)試數(shù)據(jù) 152
7.4 實(shí)戰(zhàn)演練——TPshop開(kāi)源商城的登錄功能測(cè)試 155
7.4.1 設(shè)計(jì)測(cè)試用例 155
7.4.2 準(zhǔn)備測(cè)試數(shù)據(jù) 156
7.4.3 獲取測(cè)試數(shù)據(jù) 156
7.4.4 創(chuàng)建登錄測(cè)試用例 157
7.5 本章小結(jié) 158
7.6 本章習(xí)題 159
第8章 日志 160
8.1 日志簡(jiǎn)介 160
8.1.1 日志的概念 160
8.1.2 日志的作用 160
8.2 logging模塊中的日志 161
8.2.1 日志級(jí)別 161
8.2.2 日志級(jí)別函數(shù) 161
8.2.3 配置日志函數(shù) 163
8.2.4 日志的四大組件 166
8.3 實(shí)戰(zhàn)演練——每分鐘生成一個(gè)日志文件 169
8.4 本章小結(jié) 170
8.5 本章習(xí)題 170
第9章 持續(xù)集成 172
9.1 持續(xù)集成簡(jiǎn)介 172
9.2 Git應(yīng)用 173
9.2.1 Git簡(jiǎn)介 173
9.2.2 Git安裝 173
9.2.3 Git基本操作命令 174
9.2.4 Gitee運(yùn)用 175
9.3 Jenkins應(yīng)用 177
9.3.1 Jenkins簡(jiǎn)介 177
9.3.2 Jenkins安裝 178
9.3.3 Jenkins初始化 181
9.3.4 安裝Allure插件 184
9.3.5 Jenkins系統(tǒng)配置 186
9.3.6 Jenkins構(gòu)建任務(wù) 189
9.4 本章小結(jié) 196
9.5 本章習(xí)題 196
第 10章 實(shí)戰(zhàn)項(xiàng)目——黑馬頭條 198
10.1 項(xiàng)目簡(jiǎn)介 198
10.1.1 項(xiàng)目概述 198
10.1.2 項(xiàng)目測(cè)試環(huán)境 199
10.2 測(cè)試功能模塊 199
10.2.1 自媒體運(yùn)營(yíng)系統(tǒng)登錄功能 200
10.2.2 自媒體運(yùn)營(yíng)系統(tǒng)發(fā)布文章功能 200
10.2.3 后臺(tái)管理系統(tǒng)登錄功能 201
10.2.4 后臺(tái)管理系統(tǒng)內(nèi)容審核功能 202
10.2.5 App用戶端登錄功能 202
10.2.6 App用戶端滑屏查看文章功能 203
10.3 測(cè)試用例設(shè)計(jì) 203
10.3.1 自媒體運(yùn)營(yíng)系統(tǒng)測(cè)試用例 203
10.3.2 后臺(tái)管理系統(tǒng)測(cè)試用例 204
10.3.3 App用戶端測(cè)試用例 205
10.4 創(chuàng)建工具類 205
10.5 創(chuàng)建基類 207
10.5.1 創(chuàng)建自媒體運(yùn)營(yíng)系統(tǒng)的基類 207
10.5.2 創(chuàng)建后臺(tái)管理系統(tǒng)的基類 208
10.5.3 創(chuàng)建App用戶端的基類 209
10.6 頁(yè)面對(duì)象封裝 209
10.6.1 自媒體運(yùn)營(yíng)系統(tǒng)頁(yè)面對(duì)象的封裝 210
10.6.2 后臺(tái)管理系統(tǒng)頁(yè)面對(duì)象的封裝 214
10.6.3 App用戶端頁(yè)面對(duì)象的封裝 219
10.7 測(cè)試用例腳本編寫 223
10.7.1 自媒體運(yùn)營(yíng)系統(tǒng)測(cè)試用例腳本 223
10.7.2 后臺(tái)管理系統(tǒng)測(cè)試用例腳本 224
10.7.3 App用戶端測(cè)試用例腳本 225
10.8 數(shù)據(jù)驅(qū)動(dòng)與日志收集 226
10.9 測(cè)試報(bào)告生成 228
10.10 項(xiàng)目持續(xù)集成 230
10.11 本章小結(jié) 238