《軟件自動化測試實戰(zhàn):基于開源測試工具》旨在講述測試框架、接口測試、Web自動化測試及移動端自動化測試。本書共8章,主要內(nèi)容包括為什么要實施自動化測試,Python開發(fā)環(huán)境的搭建,Python基礎(chǔ)知識,基于Python的單元測試框架UnitTest及其應(yīng)用案例,HttpRunner測試框架及其應(yīng)用案例,HttpRunnerManager測試平臺的搭建過程,JMeter和Postman在接口測試中的應(yīng)用,Docker基礎(chǔ)與操作實戰(zhàn),Selenium自動化測試框架及其應(yīng)用案例,Appium自動化測試框架及其應(yīng)用案例等。
《軟件自動化測試實戰(zhàn):基于開源測試工具》適合測試人員和開發(fā)人員閱讀,也可供高等院校計算機相關(guān)專業(yè)的師生閱讀。
1.基于JMeter、Postman、Dovker工具,系統(tǒng)講述測試框架搭建方法及測試工具使用方法
2.提供大量詳細項目及代碼案例幫助掌握測試技巧
3.深入理解UnitTest、HttpRunner、Selenium、Appium等多種測試框架
于涌,具有多年軟件開發(fā)和軟件測試方面工作工作經(jīng)驗。先后擔任程序員、測試分析師、高級測試經(jīng)理、測試總監(jiān)等職位。擁有多年的軟件開發(fā)、軟件測試項目實踐和教學經(jīng)驗。尤其擅長自動化測試、工具應(yīng)用、單元測試等方面的工作。曾為多個軟件公司提供軟件測試知識、軟件性能測試、性能測試工具LoadRunner、功能測試工具QTP、WinRunner、Jmeter等內(nèi)容的培訓工作。曾在程序員雜志上發(fā)表過多篇文章。
目 錄
第 1章 自動化測試基礎(chǔ)和Python
開發(fā)環(huán)境的搭建 1
1.1 為什么要實施自動化測試 1
1.2 為什么要學習Python 2
1.3 Python的版本選擇、安裝與配置 8
1.3.1 Python的版本選擇 9
1.3.2 Python的安裝與配置 11
1.4 Python模塊的安裝方法 15
1.5 Python IDEPyCharm的
安裝與配置 19
1.6 使用PyCharm完成第 一個Python
項目 21
第 2章 Python基礎(chǔ)知識 26
2.1 IDLEPython自帶的IDE 26
2.2 Python相關(guān)術(shù)語 28
2.2.1 變量 28
2.2.2 數(shù)據(jù)類型 31
2.2.3 數(shù)據(jù)類型轉(zhuǎn)換 35
2.2.4 縮進 38
2.2.5 內(nèi)置函數(shù) 39
2.3 列表 40
2.3.1 創(chuàng)建列表 40
2.3.2 使用索引獲取列表元素 41
2.3.3 使用切片獲取列表元素 41
2.3.4 添加列表元素 44
2.3.5 刪除列表元素 45
2.3.6 計數(shù)列表元素 47
2.3.7 獲取列表元素的索引位置 49
2.3.8 反轉(zhuǎn)列表元素并獲取列表的
長度 50
2.4 元組 51
2.4.1 創(chuàng)建元組 51
2.4.2 使用索引獲取元組元素 51
2.4.3 使用切片獲取元組元素 52
2.4.4 統(tǒng)計元組元素的出現(xiàn)次數(shù) 52
2.4.5 獲取元組元素的索引位置 53
2.4.6 刪除整個元組 53
2.5 字典 54
2.5.1 創(chuàng)建字典 54
2.5.2 獲取字典元素 56
2.5.3 修改字典 57
2.5.4 統(tǒng)計字典元素個數(shù) 57
2.5.5 刪除字典或字典中的元素 58
2.6 集合 59
2.6.1 創(chuàng)建集合 59
2.6.2 獲取集合元素 61
2.6.3 添加集合元素 62
2.6.4 修改集合 62
2.6.5 計數(shù)集合元素 64
2.6.6 刪除集合或集合中的元素 64
2.7 常用運算符 65
2.7.1 算術(shù)運算符 65
2.7.2 邏輯運算符 68
2.7.3 比較運算符 69
2.7.4 賦值運算符 69
2.7.5 位運算符 70
2.8 常規(guī)語句應(yīng)用基礎(chǔ) 71
2.8.1 for循環(huán)語句 72
2.8.2 while循環(huán)語句 72
2.8.3 if-else條件語句 73
2.8.4 break語句 73
2.8.5 continue語句 74
2.8.6 導入模塊 74
2.8.7 函數(shù) 77
2.8.8 lambda函數(shù) 80
2.8.9 斷言 81
2.8.10 局部變量和全局變量 82
2.8.11 單行注釋與多行注釋 82
2.9 語法錯誤及異常處理 84
2.9.1 語法錯誤 84
2.9.2 其他錯誤 85
2.9.3 通過try-except捕獲異常 86
2.9.4 通過try-except-else-finally
捕獲異常 88
2.9.5 拋出異常 89
2.10 多線程處理 90
2.10.1 __name__ == "__main__": 90
2.10.2 線程概念解析 93
2.10.3 創(chuàng)建單線程 93
2.10.4 創(chuàng)建多線程 94
2.10.5 守護線程 95
2.10.6 阻塞線程 100
2.11 類和對象 101
2.11.1 對象思想的引入 101
2.11.2 對象(類)的概念 102
2.11.3 類中的self是什么 103
2.11.4 構(gòu)造函數(shù)與析構(gòu)函數(shù) 105
2.11.5 類的繼承 107
2.12 字符串相關(guān)操作 109
2.12.1 字符串的類型轉(zhuǎn)換 109
2.12.2 字符串的拼接 110
2.12.3 字符串的截取 112
2.12.4 字符串的替換 113
2.12.5 字符串的位置判斷 114
2.13 文件相關(guān)操作 115
2.13.1 文本文件操作 115
2.13.2 Excel文件操作 117
2.13.3 JSON文件操作 121
第3章 基于Python的單元測試
框架UnitTest 125
3.1 UnitTest單元測試框架 125
3.2 UnitTest單元測試框架的應(yīng)用 126
3.2.1 前期準備 126
3.2.2 設(shè)計測試用例 128
3.2.3 測試用例 129
3.2.4 測試固件 131
3.2.5 測試套件 132
3.2.6 測試運行器 135
第4章 HttpRunner測試框架及其
應(yīng)用 139
4.1 HttpRunner測試框架介紹 139
4.2 HttpRunner運行環(huán)境的搭建
過程 140
4.3 HttpRunner簡單應(yīng)用案例 142
4.4 HttpRunnerManager測試平臺的
搭建過程 146
4.5 HttpRunner應(yīng)用綜合案例 158
4.5.1 被測項目環(huán)境搭建 158
4.5.2 被測項目必要設(shè)置 161
4.5.3 Charles腳本的錄制與優(yōu)化 163
4.5.4 將Charles生成的腳本轉(zhuǎn)換為
HttpRunner測試用例 166
4.5.5 HttpRunner測試用例運行失敗
原因分析 167
4.5.6 HttpRunner測試用例的優(yōu)化與
再運行 170
4.6 HttpRunner 2.0測試框架的應(yīng)用 176
第5章 JMeter和Postman在接口測試
中的應(yīng)用 184
5.1 JMeter在接口測試中的應(yīng)用 184
5.1.1 JMeter介紹 184
5.1.2 準備JMeter安裝環(huán)境 185
5.1.3 安裝JDK 186
5.1.4 安裝JMeter 188
5.1.5 JMeter錄制需求介紹 189
5.1.6 創(chuàng)建線程組 189
5.1.7 添加測試腳本錄制器 190
5.1.8 配置證書 193
5.1.9 運行測試腳本錄制器 197
5.1.10 添加監(jiān)聽器 201
5.1.11 添加檢查點 203
5.1.12 分析結(jié)果信息 205
5.2 基于JMeter的接口測試項目
實戰(zhàn) 206
5.2.1 火車查詢接口介紹 207
5.2.2 火車查詢接口測試用例
設(shè)計 211
5.2.3 首個接口測試用例的JMeter
腳本的實現(xiàn) 212
5.2.4 首個接口測試用例的JMeter
腳本的執(zhí)行與結(jié)果分析 214
5.2.5 所有接口測試用例的JMeter
腳本的實現(xiàn) 218
5.2.6 所有接口測試用例的JMeter
腳本的執(zhí)行與結(jié)果分析 220
5.3 Postman在接口測試中的應(yīng)用 222
5.3.1 Postman介紹及安裝 222
5.3.2 發(fā)送請求 225
5.3.3 執(zhí)行腳本 230
5.3.4 運行集合 235
5.4 基于Postman的接口測試項目
實戰(zhàn) 238
5.4.1 接口測試用例的Postman
腳本的實現(xiàn) 238
5.4.2 接口測試用例的Postman
腳本的執(zhí)行與結(jié)果分析 245
第6章 Docker基礎(chǔ)與操作實戰(zhàn) 248
6.1 Docker容器簡介 248
6.2 Docker的安裝過程 251
6.3 Docker命令實戰(zhàn):幫助命令
(docker --help) 257
6.4 Docker命令實戰(zhàn):拉取鏡像
(docker pull) 258
6.5 Docker命令實戰(zhàn):顯示本機已有
鏡像(docker images) 260
6.6 Docker命令實戰(zhàn):啟動容器
(docker run) 260
6.7 Docker命令實戰(zhàn):查看運行中的
容器(docker ps) 262
6.8 Docker命令實戰(zhàn):在容器中
運行命令(docker exec) 262
6.9 Docker命令實戰(zhàn):停止容器
運行(docker stop) 263
6.10 Docker命令實戰(zhàn):啟動/重啟
容器(docker start/restart) 264
6.11 Docker命令實戰(zhàn):查看容器
元數(shù)據(jù)(docker inspect) 265
6.12 Docker命令實戰(zhàn):刪除容器
(docker rm) 266
6.13 Docker命令實戰(zhàn):刪除鏡像
(docker rmi) 267
6.14 Docker命令實戰(zhàn):導出容器
(docker export) 267
6.15 Docker命令實戰(zhàn):從tar文件中
創(chuàng)建鏡像(docker import) 269
第7章 Selenium自動化測試框架及其
應(yīng)用 271
7.1 Selenium自動化測試框架 271
7.2 Selenium的歷史版本及核心
組件 272
7.3 安裝Selenium 277
7.4 Selenium的配置與第 一個
可運行的腳本 278
7.5 Selenium元素定位方法概述 281
7.6 根據(jù)id屬性定位元素 282
7.7 根據(jù)name屬性定位元素 287
7.8 根據(jù)class屬性定位元素 290
7.9 根據(jù)標簽定位元素 293
7.10 根據(jù)鏈接文本定位元素 296
7.11 根據(jù)部分鏈接文本定位元素 299
7.12 根據(jù)XPath定位元素 301
7.13 根據(jù)CSS定位元素 308
7.14 基于Docker和Selenium Grid的
測試技術(shù)的應(yīng)用 311
7.15 基于Docker的Selenium Grid的
相關(guān)配置 312
7.16 基于Docker和Selenium Grid的
案例演示 314
第8章 Appium自動化測試框架及其
應(yīng)用 321
8.1 Appium自動化測試框架 321
8.1.1 Appium的理念 321
8.1.2 Appium的設(shè)計 321
8.1.3 Appium的相關(guān)概念 322
8.1.4 Appium的工作原理 323
8.1.5 Appium與Selenium 324
8.2 Appium環(huán)境的搭建與配置
過程 324
8.2.1 在Windows環(huán)境中部署
Appium運行環(huán)境 324
8.2.2 Appium相關(guān)配置說明 349
8.3 定位Appium元素的3個利器 351
8.3.1 應(yīng)用UI Automator Viewer
獲得元素信息的實例 352
8.3.2 應(yīng)用Inspector獲得元素信息的
實例 357
8.3.3 應(yīng)用ADB插件獲得元素信息的
實例 375
8.4 獲取應(yīng)用包名和主活動名 379
8.4.1 根據(jù)APK包獲得應(yīng)用的包名和
主活動名 380
8.4.2 根據(jù)運行的應(yīng)用獲得應(yīng)用包名和
主活動名 382
8.5 界面元素的定位 384
8.5.1 根據(jù)id定位元素 384
8.5.2 根據(jù)name定位元素 385
8.5.3 根據(jù)classname定位元素 387
8.5.4 根據(jù)content-desc定位元素 391
8.5.5 根據(jù)XPath定位元素 393
8.5.6 根據(jù)坐標操作元素 396
8.6 模擬各種手勢操作 397
8.6.1 長按操作 398
8.6.2 拖曳操作 400
8.6.3 滑動操作 403
8.6.4 多點操作 406
8.6.5 手勢密碼 407
8.7 Appium的其他功能與案例演示 410
8.7.1 Appium的3種等待方式 410
8.7.2 斷言在測試腳本中的應(yīng)用 414
8.7.3 模擬操作系統(tǒng)按鍵 418
8.7.4 獲取Toast元素的內(nèi)容 422
8.7.5 模擬滾動條操作 424
8.7.6 捕獲因界面元素定位失敗
產(chǎn)生的異常 426
8.8 自動化測試模型 429
8.8.1 自動化測試模型概述 429
8.8.2 Page Object設(shè)計模式 437
8.9 基于Docker和模擬器的Appium
自動化測試 440
8.9.1 獲取Appium Docker鏡像并
啟動Appium 440
8.9.2 模擬器的設(shè)置 442
8.9.3 將容器連接到模擬器 443
8.9.4 測試腳本 443