Android 自動化測試實戰:Python + Appium + unittest

Storm 梁培峰

  • Android 自動化測試實戰:Python + Appium + unittest-preview-1
  • Android 自動化測試實戰:Python + Appium + unittest-preview-2
Android 自動化測試實戰:Python + Appium + unittest-preview-1

買這商品的人也買了...

商品描述

  本書主要介紹Android自動化測試的相關內容:首先介紹自動化測試的市場情況和行業前景;接著介紹Android的相關知識,包括系統概覽、環境搭建等,為讀者學習後面的知識打下基礎;最後介紹自動化測試的相關內容,包括元素識別與定位、等待機制、測試框架等,通過實戰案例幫助讀者快速掌握自動化測試技術。全書語言通俗易懂,講解透徹,案例豐富。

  本書適合電腦相關專業的學生和測試行業的從業人員閱讀。

作者簡介

Storm(杜子龙),先后就读于中南民族大学、北京科技大学,并取得渗透测试工程师证书。某公司 CNAS检测实验室技术负责人,CSDN 博客专家,著 有 图 书《 接 口 自 动 化 测 试 持 续 集 成:Postman+Newman+Git+Jenkins+ 钉 钉 》和《Python 实现 Web UI 自动化测试实战:Selenium 3/4+unittest/Pytest+GitLab+Jenkins》。

梁培峰,副教授,CCF会 员,JSAI会员。2021年获日本早稻田大学计算机与信息科学专业博士学位,现执教于江苏理工学院计算机工程学院。主要研究方向:机器学习和深度学习、人工智能与模式识别、智能计算。

目錄大綱

第 1章 自動化測試簡介

1.1 當前軟件測試的趨勢 2

1.2 測試金字塔模型 4

1.3 自動化測試分層 5

1.4 UI自動化測試流程 7

1.5 測試質量評估 12

第2章 Android基礎知識

2.1 移動設備操作系統概覽  15

2.1.1 Android 15

2.1.2 iOS  20

2.2 App的類型與區別  20

2.3 Android App測試框架概覽  23

第3章 搭建Android環境

3.1 準備Java環境26

3.2 準備Android SDK環境29

3.2.1 Android SDK下載、安裝30

3.2.2 Android SDK環境變量設置31

3.3 安裝Android模擬器32

3.4 準備Python環境34

3.5 安裝PyCharm37

3.6 Python虛擬環境43

第4章 Android adb介紹

4.1 adb的工作原理46

4.2 啟動設備或模擬器調試48

4.3 adb常用命令48

4.3.1 查看adb的版本49

4.3.2 連接或斷開設備49

4.3.3 查看連接設備的信息50

4.3.4 adb shell50

4.3.5 安裝App52

4.3.6 卸載App53

4.3.7 推送文件54

4.3.8 下載文件54

4.3.9 查看包名55

4.3.10 查看Activity56

4.3.11 啟動、關閉adb服務57

4.3.12 屏幕截圖57

第5章 monkey和monkeyrunner

5.1 monkey59

5.1.1 monkey簡介59

5.1.2 monkey的參數60

5.1.3 monkey命令示例62

5.1.4 App壓力測試69

5.1.5 特定場景壓力測試71

5.1.6 日誌管理74

5.2 monkeyrunner76

5.2.1 monkeyrunner簡介77

5.2.2 monkeyrunner API78

5.2.3 綜合案例81

第6章 Appium基礎知識

6.1 Appium簡介85

6.2 Appium的組件及運行原理87

6.2.1 Appium的組件87

6.2.2 Appium Android的運行原理88

6.3 Appium環境搭建89

6.3.1 通過GUI部署Appium Server89

6.3.2 通過命令行部署Appium Server93

6.3.3 安裝Appium-Python-Client96

6.3.4 安裝appium-doctor98

6.4 Desired Capability簡介99

6.5 第 一個Appium腳本100

6.6 Appium報錯和解決方案102

6.7 Appium終端基本操作104

第7章 Appium之元素識別與定位

7.1 UI Automator Viewer工具114

7.2 Appium Inspector工具119

7.2.1 Inspector安裝120

7.2.2 Inspector參數設置122

7.2.3 Inspector識別元素123

7.3 Appium元素定位方法概覽130

7.4 常規元素屬性定位方法132

7.5 通用元素定位方法133

7.6 uiautomator元素定位方法136

7.6.1 UiSelector的基本方法136

7.6.2 通過text定位138

7.6.3 通過resourceId定位141

7.6.4 通過className定位143

7.6.5 通過description定位143

7.6.6 組合定位144

7.6.7 父子、兄弟關系定位145

7.6.8 控件特性定位145

7.6.9 索引、實例定位146

7.7 組元素定位方法146

7.8 XPath定位149

7.9 坐標單擊152

7.10 Lazy Ui Automator Viewer154

第8章 Appium基本操作

8.1 元素的基本操作158

8.1.1 單擊操作158

8.1.2 輸入操作159

8.1.3 清除操作159

8.1.4 提交操作160

8.1.5 鍵盤操作161

8.2 元素的狀態判斷163

8.3 元素的屬性值獲取165

第9章 Appium基本操作

9.1 W3C Actions170

9.1.1 W3C Actions簡介170

9.1.2 短暫觸屏174

9.1.3 長按操作175

9.1.4 左滑操作176

9.1.5 多指觸控178

9.2 Toast元素識別179

9.3 Hybrid App操作181

9.3.1 Context簡介181

9.3.2 環境準備182

9.3.3 context操作183

9.4 屏幕截圖185

9.5 屏幕熄屏、亮屏188

第10章 Appium等待機制

10.1 影響元素加載的外部因素191

10.2 強制等待192

10.3 隱性等待193

10.4 顯性等待195

第11章 自動化測試用例開發

11.1 測試用例設計204

11.2 測試用例代碼實現205

11.3 代碼分析211

第12章 unittest測試框架

12.1 unittest框架結構213

12.2 測試固件215

12.3 編寫測試用例217

12.4 執行測試用例218

12.5 用例執行順序222

12.6 內置裝飾器224

12.7 命令行執行測試227

12.8 批量執行測試文件229

12.9 測試斷言231

12.10 測試報告232

12.11 unittest和Appium235

12.12 unittest參數化241

12.12.1 unittest+DDT243

12.12.2 unittest+ parameterized246

第13章 測試配置及數據分離

13.1 測試配置分離249

13.1.1 YAML簡介249

13.1.2 YAML文件操作252

13.1.3 Capability配置數據分離實踐254

13.2 測試固件與用例代碼分離257

13.3 測試數據分離259

13.3.1 CSV簡介259

13.3.2 CSV文件操作259

13.3.3 測試數據分離實踐261

第14章 Page Object設計模式

14.1 Page Object實踐264

14.2 “危機”應對274

14.3 新生“危機”278

第15章 自動化測試框架開發

15.1 框架設計281

15.2 優化目錄層級282

15.2.1 Python os模塊282

15.2.2 調整模塊引用284

15.3 增加日誌信息287

15.3.1 日誌概述287

15.3.2 Python logging用法解析288

15.3.3 為測試用例增加日誌292

15.4 增加頁面截圖功能299

15.4.1 斷言失敗截圖299

15.4.2 元素定位失敗截圖301

15.5 增加顯性等待功能301

第16章 與君共勉

16.1 關於測試數據309

16.1.1 測試數據準備309

16.1.2 冗餘數據處理310

16.2 提升穩定性311

16.3 提升效率312

16.4 模擬器或真機312

附錄

附錄A 自動化測試開展原則315

附錄B 夜神模擬器316

附錄C adb常見錯誤318

附錄D 公共及Android獨有Capabilities319

附錄E Android KEYCODE常用鍵值對應關系323