注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計軟件自動化測試實戰(zhàn)解析:基于Python3編程語言

軟件自動化測試實戰(zhàn)解析:基于Python3編程語言

軟件自動化測試實戰(zhàn)解析:基于Python3編程語言

定 價:¥89.00

作 者: 徐西寧
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111685616 出版時間: 2021-07-01 包裝: 平裝-膠訂
開本: 16開 頁數: 352 字數:  

內容簡介

  本書由淺入深地對自動化軟件測試進行了闡述,內容涵蓋軟件測試的基礎知識、Python、PyTest、Selenium、面向對象編程、自動化測試框架的設計要點和測試自動化開發(fā)實踐等,本書內容組織成入門、進階和高階三個逐步提高的版塊,每個版塊都有實戰(zhàn)編程章節(jié),清晰呈現了技術方案的打磨和改進的過程。本書的內容分為三個大的版塊。個版塊,從基礎的部分講起,讓基礎薄弱的工程師對測試和編程語言有基本的認識,在此基礎上開始了解PyTest測試框架的基礎用法,以及如何用Selenium來做簡單的Web UI的自動化測試。通過這個版塊的學習,測試工程師有能力把一些簡單的測試工作用代碼實現,減少手工重復勞動的比重,做到一定程度的測試自動化,這是對自動化測試工程師的入門要求。第二個版塊,夯實Python語言基礎,講解更深入的PyTest和Selenium特性,演示如何應用這些知識來改進測試用例的編寫,改善測試框架,讓測試自動化更加高效。通過這個版塊的學習,測試工程師對編程語言和測試工具會有更深入的了解,可以更高效地進行測試自動化的工作,有能力開始針對產品特性來設計自動化測試框架,這是工程團隊對中級測試工程師的一般要求。第三個版塊,學習Python的高級特性、面向對象的思想、自動化測試工具和框架的高級特性、設計思路、以及存在的問題、限制及其改進思路、工程團隊的高質量協作、實際項目中的實踐等更深入的內容,這個部分包含了大量實戰(zhàn)中提煉出來的經驗和總結。通過這個版塊的學習,測試工程師可以往高級工程師和架構師方向邁出堅實的一步,而具備這樣的技術能力和思維方式后,測試工程師可以在整個軟件工程團隊中起到非常積極的正面影響,而不只限于測試團隊。每個版塊的末尾都有一個實戰(zhàn)章節(jié),所有的實戰(zhàn)章節(jié)圍繞同一個測試場景展開,前后銜接呼應,有很強的延續(xù)性。每個實戰(zhàn)章節(jié)都是針對相應的技術水平而設計的,讀者可以非常直觀地看到代碼和設計如何隨著技術水平的提升而改進。

作者簡介

  徐西寧,畢業(yè)于華中科技大學計算機學院,資深全棧軟件工程師,從事軟件開發(fā)和測試工作15年,先后任職于Autodesk、EMC、每銳軟件等公司,在自動化測試框架設計、自動化測試流程優(yōu)化、持續(xù)集成、Web開發(fā)等方面有豐富的經驗,是一位活躍的開源軟件和技術分享實踐者。

圖書目錄

序一
序二
前言
第1章 軟件測試基礎 1
1.1 什么是軟件測試1
1.2 軟件測試的類型2
1.2.1 按測試對象的顆粒度劃分2
1.2.2 按內部邏輯的透明度劃分3
1.2.3 按執(zhí)行階段劃分4
1.2.4 按執(zhí)行方式劃分4
1.3 敏捷開發(fā)模式5
1.4 測試經濟學6
1.4.1 測試是必需的嗎6
1.4.2 放棄追求完美7
1.4.3 關注核心功能8
1.4.4 等價類劃分8
1.4.5 邊界值分析9
1.4.6 用機器取代人工10
1.5 自動化測試不容易12
1.6 本章小結12
第2章 Python入門 13
2.1 世界上好的兩種編程語言13
2.2 別問我怎么安裝14
2.3 解釋器是什么14
2.4 初識變量16
2.5 函數基礎17
2.6 代碼縮進和代碼塊18
2.7 字符串19
2.7.1 拼接和格式化21
2.7.2 下標訪問22
2.7.3 更多常見操作23
2.8 數值類型26
2.8.1 數值類型的基本運算27
2.8.2 浮點數的常見運算29
2.9 布爾值和條件判斷32
2.9.1 條件判斷的組合33
2.9.2 條件判斷的短路34
2.9.3 條件判斷的鏈式表達35
2.10 日期和時間36
2.10.1 生成時間對象37
2.10.2 格式化日期字符串38
2.11 list基礎39
2.11.1 下標訪問40
2.11.2 插入元素40
2.11.3 刪除元素41
2.11.4 簡單排序42
2.11.5 更多常見操作43
2.11.6 遍歷44
2.11.7 元素類型46
2.12 dict基礎47
2.12.1 讀取48
2.12.2 插入和更新49
2.12.3 合并50
2.12.4 刪除51
2.12.5 遍歷53
2.12.6 key的選擇55
2.13 循環(huán)56
2.13.1 while循環(huán)57
2.13.2 for循環(huán)58
2.13.3 多重循環(huán)59
2.13.4 循環(huán)的終止60
2.13.5 遞歸63
2.14 異常63
2.14.1 基本語法64
2.14.2 異常的類型67
2.14.3 捕獲特定類型的異常68
2.14.4 主動拋出異常71
2.15 斷言72
2.15.1 assertion72
2.15.2 AssertionError73
2.15.3 assert73
2.16 pip的基礎用法74
2.17 本章小結76
第3章 PyTest入門 77
3.1 框架是什么77
3.2 測試框架77
3.2.1 篩選測試源文件77
3.2.2 篩選測試函數78
3.2.3 測試函數的啟動79
3.2.4 成功還是失敗80
3.2.5 測試報告80
3.2.6 測試前的環(huán)境配置81
3.2.7 測試后的現場清理81
3.2.8 核心功能的擴充82
3.2.9 主流測試框架82
3.3 PyTest是什么83
3.4 自動發(fā)現84
3.4.1 自動發(fā)現測試源文件84
3.4.2 自動發(fā)現測試函數84
3.5 使用斷言85
3.6 測試結果解讀86
3.7 測試報告88
3.8 本章小結89
第4章 Selenium入門 90
4.1 Selenium是什么90
4.1.1 Selenium IDE91
4.1.2 Selenium Grid97
4.1.3 Web Driver98
4.2 Selenium的安裝配置99
4.3 用Web Driver驅動網頁100
4.4 頁面元素的定位102
4.4.1 簡單定位102
4.4.2 CSS定位107
4.5 頁面元素的常見操作108
4.6 本章小結112
第5章 實戰(zhàn)12306之入門篇 113
5.1 測試用例設計文檔113
5.2 代碼實戰(zhàn)114
5.3 代碼解析116
5.3.1 審視測試邏輯116
5.3.2 用變量澄清代碼邏輯117
5.3.3 DRY原則118
5.3.4 改善代碼可讀性120
5.4 本章小結122
第6章 Python進階 123
6.1 基本數據類型的深入了解123
6.1.1 轉義字符123
6.1.2 字符串的不可變性124
6.1.3 深入了解布爾類型126
6.1.4 set128
6.1.5 tuple131
6.1.6 整型數的設計很優(yōu)秀132
6.1.7 浮點數為什么算不準133
6.1.8 Decimal,準!134
6.2 深入了解函數137
6.2.1 函數的調用137
6.2.2 函數的返回138
6.2.3 不支持函數重載139
6.2.4 默認參數141
6.2.5 可變參數142
6.3 關于時間144
6.3.1 時間差144
6.3.2 UTC時間146
6.4 面向對象基礎148
6.4.1 面向對象到底是什么意思148
6.4.2 類和對象148
6.4.3 初始化函數149
6.5 模塊是什么151
6.6 高級排序153
6.6.1 list的排序153
6.6.2 dict的排序157
6.6.3 自定義對象序列的排序159
6.7 復雜的遍歷場景160
6.7.1 一邊遍歷一邊修改160
6.7.2 一邊遍歷一邊刪除162
6.8 文件和文件系統操作基礎165
6.8.1 路徑的正確操作方式165
6.8.2 文件系統的基本操作168
6.8.3 文本文件的讀169
6.8.4 文本文件的寫170
6.8.5 文本文件的關閉171
6.8.6 CSV文件的讀寫172
6.8.7 Excel文件的讀寫174
6.9 淺拷貝與深拷貝176
6.10 深入了解import179
6.11 變量的作用域182
6.12 局部變量和全局變量的沖突185
6.13 __name__和__main__186
6.14 注釋188
6.15 pip的工程用法190
6.16 本章小結192
第7章 PyTest進階 193
7.1 自動發(fā)現測試類193
7.2 測試集合194
7.3 標記195
7.3.1 忽略執(zhí)行195
7.3.2 條件執(zhí)行197
7.3.3 期待失敗的發(fā)生199
7.3.4 限時執(zhí)行201
7.3.5 自定義標簽201
7.4 參數化測試204
7.5 測試用例的ID206
7.6 Fixture初探207
7.7 PyTest的插件機制209
7.7.1 Hook函數209
7.7.2 PyTest插件210
7.7.3 多級conftest協同210
7.7.4 第三方插件212
7.8 本章小結213
第8章 Selenium進階 214
8.1 頁面元素的XPath定位214
8.2 頁面元素的等待215
8.2.1 隱式等待216
8.2.2 顯式等待216
8.3 Selenium的局限218
8.4 本章小結219
第9章 實戰(zhàn)12306之進階篇 220
9.1 PO設計模式220
9.2 更有針對性的顯式等待223
9.3 更健壯的代碼邏輯224
9.4 函數單一職責原則225
9.5 測試單一職責原則226
9.6 本章小結227
第10章 Python高階 228
10.1 面向對象設計思想228
10.1.1 繼承228
10.1.2 封裝230
10.1.3 多態(tài)232
10.2 對類的深入了解233
10.2.1 析構函數233
10.2.2 訪問權限控制235
10.2.3 self不是關鍵字236
10.2.4 實例屬性和類屬性239
10.2.5 成員方法和類方法240
10.2.6 類方法和靜態(tài)方法242
10.3 重寫244
10.3.1 如何重寫244
10.3.2 重寫中的代碼復用247
10.3.3 重寫__str__方法249
10.3.4 重寫運算符249
10.4 深入了解函數252
10.4.1 函數也是一種對象252
10.4.2 內嵌函數254
10.4.3 函數裝飾器255
10.4.4 不只是會裝飾259
10.4.5 用Property裝飾器改進設計261
10.5 None是什么264
10.6 Enum是什么265
10.7 Python不支持常量267
10.8 隨機數據和時間戳268
10.9 自定義異常類型270
10.10 需要用強類型嗎271
10.11 日志272
10.12 本章小結277
第11章 測試框架的設計和演進 278
11.1 代碼的可讀性278
11.1.1 統一的代碼風格279
11.1.2 丑陋的函數名280
11.1.3 糟糕的變量名282
11.2 友好的函數設計283
11.2.1 簡潔的接口283
11.2.2 操作狀態(tài)的處理285
11.2.3 不要過度設計287
11.2.4 防呆288
11.3 有效管理測試資源290
11.3.1 封裝微服務290
11.3.2 統一的資源入口295
11.3.3 資源的延遲加載296
11.3.4 保證資源的釋放298
11.3.5 支持多環(huán)境測試300
11.3.6 容忍不穩(wěn)定的測試環(huán)境302
11.4 不要引入getter和setter304
11.5 一次收集多個斷言錯誤306
11.6 日志的支持和改進308
11.7 減少重復執(zhí)行的負面影響310
11.8 數據驅動測試的設計311
11.8.1 讓PyTest支持中文ID311
11.8.2 更優(yōu)雅的參數化測試314
11.8.3 用YML取代JSON316
11.8.4 面向對象的測試數據317
11.9 接受一定程度的重復代碼319
11.10 本章小結320
第12章 實戰(zhàn)12306之高階篇 321
12.1 就近原則321
12.2 用Enum澄清設計意圖322
12.3 支持鏈式表達324
12.4 簡化函數名325
12.5 封裝復雜邏輯326
12.6 單例設計模式328
12.7 異常和斷言的使用場景的區(qū)別331
12.8 測試用例的維護333
12.9 本章小結334
術語表 335
參考文獻 336
后記 337
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號