自動化測試框架設計

蟲師

  • 出版商: 電子工業
  • 出版日期: 2024-11-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 300
  • ISBN: 7121490579
  • ISBN-13: 9787121490576
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書分為13章。第1章介紹了自動化測試框架設計基礎。第2~7章主要介紹單元測試框架的擴展,包括自動化測試報告設計、數據驅動設計、數據庫操作封裝設計、隨機測試數據設計、命令行工具設計和測試框架擴展功能設計。第8~11章主要介紹自動化測試庫和設計模式,包括Web UI自動化測試設計、App UI自動化測試設計、HTTP接口自動化測試設計和自動化測試設計模式。第12章介紹了自動化測試平臺化,以及Seldom框架如何為平臺化提供支持。第13章介紹了自動化測試的AI探索。本書適合自動化測試、軟件開發和質量保證領域的開發者,以及各大院校電腦科學和軟件工程專業的學生閱讀,也適合有一定經驗的開發人員參考使用。

目錄大綱

第1章 自動化測試框架設計基礎 1
1.1 相關概念對比 1
1.1.1 庫與框架 1
1.1.2 工具與框架 3
1.1.3 項目與框架 4
1.2 框架設計基礎 5
1.2.1 框架是獨立的 5
1.2.2 框架僅實現通用的功能 5
1.2.3 框架應該有清晰的定位 6
1.3 單元測試框架 7
1.3.1 測試框架的基本功能 7
1.3.2 常見的單元測試框架 7
1.4 unittest擴展 12
1.4.1 實現unittest擴展 12
1.4.2 使用unittest擴展 14
1.5 pytest擴展 15
1.5.1 pytest擴展方式 16
1.5.2 實現pytest擴展 18
1.5.3 使用pytest擴展 20
1.6 構建Python包 21
1.6.1 Poetry 21
1.6.2 PyPI倉庫 24

第2章 自動化測試報告設計 25
2.1 實現jsonrunner 25
2.1.1 重寫TestResult類 26
2.1.2 實現JSONTestRunner類 27
2.1.3 編寫測試用例 30
2.2 HTML主題模板 33
2.3 Jinja模板引擎 37
2.3.1 Jinja2的基礎使用方法 37
2.3.2 在Python中使用Jinja2 38
2.4 基於unittest生成HTML測試報告 40
2.4.1 修改runner.py測試運行器 41
2.4.2 修改HTML模板 43
2.4.3 編寫測試用例 44

第3章 數據驅動設計 46
3.1 unittest的數據驅動擴展 46
3.1.1 parameterized庫 46
3.1.2 DDT庫 48
3.2 參數化裝飾器 51
3.2.1 實現data裝飾器 52
3.2.2 實現dict數據格式支持 54
3.3 參數化數據文件 56
3.3.1 JSON數據轉換 57
3.3.2 YAML數據轉換 59
3.3.3 CSV數據轉換 60
3.3.4 Excel數據轉換 62
3.3.5 實現file_data裝飾器 64

第4章 數據庫操作封裝設計 66
4.1 操作數據庫技術 66
4.1.1 數據庫驅動 66
4.1.2 ORM 67
4.2 數據庫操作封裝 69
4.2.1 封裝執行和查詢 69
4.2.2 封裝增查改刪 72

第5章 隨機測試數據設計 78
5.1 測試工具介紹 78
5.1.1 Faker 78
5.1.2 Hypothesis庫 80
5.2 隨機測試數據實戰 82
5.2.1 隨機生成手機號 82
5.2.2 隨機生成中文姓名 84
5.2.3 獲取在線時間 85

第6章 命令行工具設計 88
6.1 用Python實現命令行工具 88
6.1.1 argv的使用 88
6.1.2 argparse的使用 89
6.1.3 click的用法 90
6.2 命令行工具實戰 91
6.2.1 實現自動化測試項目腳手架 92
6.2.2 實現性能工具 94
6.2.3 生成命令行工具 97

第7章 測試框架擴展功能設計 100
7.1 測試用例依賴 100
7.1.1 依賴測試用例結果 100
7.1.2 依賴測試條件 103
7.2 測試用例分類標簽 104
7.2.1 實現分類標簽 105
7.2.2 使用分類標簽 107
7.3 使用緩存 109
7.3.1 Redis的使用 109
7.3.2 LRU Cache 112
7.3.3 磁盤文件模擬Cache 113
7.4 實現日誌 117
7.4.1 logging模塊 118
7.4.2 Loguru庫 121
7.5 自定義異常 123

第8章 Web UI自動化測試設計 126
8.1 主流Web測試庫 126
8.1.1 Selenium 126
8.1.2 Cypress 127
8.1.3 Playwright 130
8.2 Selenium API的二次開發 132
8.2.1 封裝:重命名方法 133
8.2.2 封裝:元素定位和動作整合 133
8.2.3 封裝:獨立每個函數 135
8.2.4 封裝:鏈式調用 136
8.3 Selenium的斷言設計 137
8.3.1 單元測試框架提供的通用斷言 138
8.3.2 封裝Selenium斷言方法 139
8.4 Selenium環境管理 143
8.4.1 Selenium Manager 143
8.4.2 Docker-Selenium 144

第9章 App UI自動化測試設計 147
9.1 App移動自動化測試工具介紹 147
9.1.1 Android測試工具 147
9.1.2 iOS測試工具 148
9.1.3 Appium 149
9.1.4 Airtest Project 150
9.1.5 Open ATX 150
9.2 Appium基礎 151
9.2.1 Appium的安裝 151
9.2.2 Appium的使用 153
9.3 Appium API封裝 155
9.3.1 Switch類 155
9.3.2 Action類 158
9.3.3 FindByText類 161
9.3.4 KeyEvent類 165
9.4 Appium圖像與文字識別 167
9.4.1 images插件 168
9.4.2 Appium OCR 插件 173

第10章 HTTP接口自動化測試設計 179
10.1 HTTP客戶端庫 179
10.1.1 requests 179
10.1.2 HTTPX 180
10.1.3 aiohttp 180
10.2 HTTP請求方法集成日誌 183
10.3 HTTP接口測試斷言設計 189
10.3.1 斷言基礎代碼 189
10.3.2 assertPath() 192
10.3.3 assertJSON() 196
10.3.4 assertSchema() 201
10.4 實用功能封裝 206
10.4.1 HTTP接口檢查裝飾器 206
10.4.2 方法依賴裝飾器 210
10.4.3 生成curl命令 215
10.5 WebSocket封裝與測試 219
10.5.1 WebSocket封裝 219
10.5.2 WebSocket測試 220

第11章 自動化測試設計模式 223
11.1 設計模式與開發策略 223
11.1.1 Page Object模式 223
11.1.2 Bot模式 224
11.2 基於Page Object模式的相關庫 226
11.2.1 selenium-page-factory 226
11.2.2 poium的基本使用 228
11.2.3 poium的設計原理 231
11.3 API Object模式 233
11.3.1 AOM的設計原理 233
11.3.2 AOM使用示例 235

第12章 自動化測試平臺化 239
12.1 自動化測試平臺化的基本信息 239
12.1.1 性能測試 239
12.1.2 HTTP接口自動化測試 240
12.1.3 Web UI自動化測試 241
12.1.4 App UI自動化測試 242
12.1.5 自動化測試平臺化的優缺點 243
12.2 測試框架與測試平臺的整合方案 244
12.2.1 unittest解析用例 245
12.2.2 對測試用例的收集與運行 246
12.3 SeldomQA項目 253
12.3.1 Seldom框架 254
12.3.2 seldom-platform 258

第13章 自動化測試的AI探索 263
13.1 集成AI技術的自動化測試平臺 263
13.1.1 基於視覺AI技術的自動化檢測 263
13.1.2 基於AI的自動化測試運行 270
13.2 AIGC在自動化測試中的應用 278
13.2.1 AI技術輔助生成自動化測試用例 278
13.2.2 基於LLM的代理框架 281