自動(dòng)化測(cè)試框架設(shè)計(jì)
定 價(jià):89 元
- 作者:蟲師
- 出版時(shí)間:2024/11/1
- ISBN:9787121490576
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:300
- 紙張:
- 版次:01
- 開本:16開
本書分為13章。第1章介紹了自動(dòng)化測(cè)試框架設(shè)計(jì)基礎(chǔ)。第2~7章主要介紹單元測(cè)試框架的擴(kuò)展,包括自動(dòng)化測(cè)試報(bào)告設(shè)計(jì)、數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)、數(shù)據(jù)庫(kù)操作封裝設(shè)計(jì)、隨機(jī)測(cè)試數(shù)據(jù)設(shè)計(jì)、命令行工具設(shè)計(jì)和測(cè)試框架擴(kuò)展功能設(shè)計(jì)。第8~11章主要介紹自動(dòng)化測(cè)試庫(kù)和設(shè)計(jì)模式,包括Web UI自動(dòng)化測(cè)試設(shè)計(jì)、App UI自動(dòng)化測(cè)試設(shè)計(jì)、HTTP接口自動(dòng)化測(cè)試設(shè)計(jì)和自動(dòng)化測(cè)試設(shè)計(jì)模式。第12章介紹了自動(dòng)化測(cè)試平臺(tái)化,以及Seldom框架如何為平臺(tái)化提供支持。第13章介紹了自動(dòng)化測(cè)試的AI探索。本書適合自動(dòng)化測(cè)試、軟件開發(fā)和質(zhì)量保證領(lǐng)域的開發(fā)者,以及各大院校計(jì)算機(jī)科學(xué)和軟件工程專業(yè)的學(xué)生閱讀,也適合有一定經(jīng)驗(yàn)的開發(fā)人員參考使用。
蟲師,2011年6月開始在博客園持續(xù)分享測(cè)試技術(shù)和經(jīng)驗(yàn),在自動(dòng)化測(cè)試、性能測(cè)試方面有著豐富實(shí)戰(zhàn)經(jīng)驗(yàn),另外,對(duì)Web開發(fā)技術(shù)也有一定的積累。前后擔(dān)任高級(jí)測(cè)試工程師、測(cè)試開發(fā)工程師,以及測(cè)試Leader等職位。
第1章 自動(dòng)化測(cè)試框架設(shè)計(jì)基礎(chǔ) 1
1.1 相關(guān)概念對(duì)比 1
1.1.1 庫(kù)與框架 1
1.1.2 工具與框架 3
1.1.3 項(xiàng)目與框架 4
1.2 框架設(shè)計(jì)基礎(chǔ) 5
1.2.1 框架是獨(dú)立的 5
1.2.2 框架僅實(shí)現(xiàn)通用的功能 5
1.2.3 框架應(yīng)該有清晰的定位 6
1.3 單元測(cè)試框架 7
1.3.1 測(cè)試框架的基本功能 7
1.3.2 常見的單元測(cè)試框架 7
1.4 unittest擴(kuò)展 12
1.4.1 實(shí)現(xiàn)unittest擴(kuò)展 12
1.4.2 使用unittest擴(kuò)展 14
1.5 pytest擴(kuò)展 15
1.5.1 pytest擴(kuò)展方式 16
1.5.2 實(shí)現(xiàn)pytest擴(kuò)展 18
1.5.3 使用pytest擴(kuò)展 20
1.6 構(gòu)建Python包 21
1.6.1 Poetry 21
1.6.2 PyPI倉(cāng)庫(kù) 24
第2章 自動(dòng)化測(cè)試報(bào)告設(shè)計(jì) 25
2.1 實(shí)現(xiàn)jsonrunner 25
2.1.1 重寫TestResult類 26
2.1.2 實(shí)現(xiàn)JSONTestRunner類 27
2.1.3 編寫測(cè)試用例 30
2.2 HTML主題模板 33
2.3 Jinja模板引擎 37
2.3.1 Jinja2的基礎(chǔ)使用方法 37
2.3.2 在Python中使用Jinja2 38
2.4 基于unittest生成HTML測(cè)試報(bào)告 40
2.4.1 修改runner.py測(cè)試運(yùn)行器 41
2.4.2 修改HTML模板 43
2.4.3 編寫測(cè)試用例 44
第3章 數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì) 46
3.1 unittest的數(shù)據(jù)驅(qū)動(dòng)擴(kuò)展 46
3.1.1 parameterized庫(kù) 46
3.1.2 DDT庫(kù) 48
3.2 參數(shù)化裝飾器 51
3.2.1 實(shí)現(xiàn)data裝飾器 52
3.2.2 實(shí)現(xiàn)dict數(shù)據(jù)格式支持 54
3.3 參數(shù)化數(shù)據(jù)文件 56
3.3.1 JSON數(shù)據(jù)轉(zhuǎn)換 57
3.3.2 YAML數(shù)據(jù)轉(zhuǎn)換 59
3.3.3 CSV數(shù)據(jù)轉(zhuǎn)換 60
3.3.4 Excel數(shù)據(jù)轉(zhuǎn)換 62
3.3.5 實(shí)現(xiàn)file_data裝飾器 64
第4章 數(shù)據(jù)庫(kù)操作封裝設(shè)計(jì) 66
4.1 操作數(shù)據(jù)庫(kù)技術(shù) 66
4.1.1 數(shù)據(jù)庫(kù)驅(qū)動(dòng) 66
4.1.2 ORM 67
4.2 數(shù)據(jù)庫(kù)操作封裝 69
4.2.1 封裝執(zhí)行和查詢 69
4.2.2 封裝增查改刪 72
第5章 隨機(jī)測(cè)試數(shù)據(jù)設(shè)計(jì) 78
5.1 測(cè)試工具介紹 78
5.1.1 Faker 78
5.1.2 Hypothesis庫(kù) 80
5.2 隨機(jī)測(cè)試數(shù)據(jù)實(shí)戰(zhàn) 82
5.2.1 隨機(jī)生成手機(jī)號(hào) 82
5.2.2 隨機(jī)生成中文姓名 84
5.2.3 獲取在線時(shí)間 85
第6章 命令行工具設(shè)計(jì) 88
6.1 用Python實(shí)現(xiàn)命令行工具 88
6.1.1 argv的使用 88
6.1.2 argparse的使用 89
6.1.3 click的用法 90
6.2 命令行工具實(shí)戰(zhàn) 91
6.2.1 實(shí)現(xiàn)自動(dòng)化測(cè)試項(xiàng)目腳手架 92
6.2.2 實(shí)現(xiàn)性能工具 94
6.2.3 生成命令行工具 97
第7章 測(cè)試框架擴(kuò)展功能設(shè)計(jì) 100
7.1 測(cè)試用例依賴 100
7.1.1 依賴測(cè)試用例結(jié)果 100
7.1.2 依賴測(cè)試條件 103
7.2 測(cè)試用例分類標(biāo)簽 104
7.2.1 實(shí)現(xiàn)分類標(biāo)簽 105
7.2.2 使用分類標(biāo)簽 107
7.3 使用緩存 109
7.3.1 Redis的使用 109
7.3.2 LRU Cache 112
7.3.3 磁盤文件模擬Cache 113
7.4 實(shí)現(xiàn)日志 117
7.4.1 logging模塊 118
7.4.2 Loguru庫(kù) 121
7.5 自定義異常 123
第8章 Web UI自動(dòng)化測(cè)試設(shè)計(jì) 126
8.1 主流Web測(cè)試庫(kù) 126
8.1.1 Selenium 126
8.1.2 Cypress 127
8.1.3 Playwright 130
8.2 Selenium API的二次開發(fā) 132
8.2.1 封裝:重命名方法 133
8.2.2 封裝:元素定位和動(dòng)作整合 133
8.2.3 封裝:獨(dú)立每個(gè)函數(shù) 135
8.2.4 封裝:鏈?zhǔn)秸{(diào)用 136
8.3 Selenium的斷言設(shè)計(jì) 137
8.3.1 單元測(cè)試框架提供的通用斷言 138
8.3.2 封裝Selenium斷言方法 139
8.4 Selenium環(huán)境管理 143
8.4.1 Selenium Manager 143
8.4.2 Docker-Selenium 144
第9章 App UI自動(dòng)化測(cè)試設(shè)計(jì) 147
9.1 App移動(dòng)自動(dòng)化測(cè)試工具介紹 147
9.1.1 Android測(cè)試工具 147
9.1.2 iOS測(cè)試工具 148
9.1.3 Appium 149
9.1.4 Airtest Project 150
9.1.5 Open ATX 150
9.2 Appium基礎(chǔ) 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圖像與文字識(shí)別 167
9.4.1 images插件 168
9.4.2 Appium OCR 插件 173
第10章 HTTP接口自動(dòng)化測(cè)試設(shè)計(jì) 179
10.1 HTTP客戶端庫(kù) 179
10.1.1 requests 179
10.1.2 HTTPX 180
10.1.3 aiohttp 180
10.2 HTTP請(qǐng)求方法集成日志 183
10.3 HTTP接口測(cè)試斷言設(shè)計(jì) 189
10.3.1 斷言基礎(chǔ)代碼 189
10.3.2 assertPath() 192
10.3.3 assertJSON() 196
10.3.4 assertSchema() 201
10.4 實(shí)用功能封裝 206
10.4.1 HTTP接口檢查裝飾器 206
10.4.2 方法依賴裝飾器 210
10.4.3 生成curl命令 215
10.5 WebSocket封裝與測(cè)試 219
10.5.1 WebSocket封裝 219
10.5.2 WebSocket測(cè)試 220
第11章 自動(dòng)化測(cè)試設(shè)計(jì)模式 223
11.1 設(shè)計(jì)模式與開發(fā)策略 223
11.1.1 Page Object模式 223
11.1.2 Bot模式 224
11.2 基于Page Object模式的相關(guān)庫(kù) 226
11.2.1 selenium-page-factory 226
11.2.2 poium的基本使用 228
11.2.3 poium的設(shè)計(jì)原理 231
11.3 API Object模式 233
11.3.1 AOM的設(shè)計(jì)原理 233
11.3.2 AOM使用示例 235
第12章 自動(dòng)化測(cè)試平臺(tái)化 239
12.1 自動(dòng)化測(cè)試平臺(tái)化的基本信息 239
12.1.1 性能測(cè)試 239
12.1.2 HTTP接口自動(dòng)化測(cè)試 240
12.1.3 Web UI自動(dòng)化測(cè)試 241
12.1.4 App UI自動(dòng)化測(cè)試 242
12.1.5 自動(dòng)化測(cè)試平臺(tái)化的優(yōu)缺點(diǎn) 243
12.2 測(cè)試框架與測(cè)試平臺(tái)的整合方案 244
12.2.1 unittest解析用例 245
12.2.2 對(duì)測(cè)試用例的收集與運(yùn)行 246
12.3 SeldomQA項(xiàng)目 253
12.3.1 Seldom框架 254
12.3.2 seldom-platform 258
第13章 自動(dòng)化測(cè)試的AI探索 263
13.1 集成AI技術(shù)的自動(dòng)化測(cè)試平臺(tái) 263
13.1.1 基于視覺AI技術(shù)的自動(dòng)化檢測(cè) 263
13.1.2 基于AI的自動(dòng)化測(cè)試運(yùn)行 270
13.2 AIGC在自動(dòng)化測(cè)試中的應(yīng)用 278
13.2.1 AI技術(shù)輔助生成自動(dòng)化測(cè)試用例 278
13.2.2 基于LLM的代理框架 281