目 錄
第1章 新的起點—自動化測試 1
1.1 經典自動化測試實例 1
1.1.1 環(huán)境搭建 1
1.1.2 PyCharm 6
1.1.3 UI自動化測試的延續(xù)—Selenium WebDriver 8
1.2 更多自動化測試戰(zhàn)術體驗 10
1.2.1 利用unittest組織測試腳本 10
1.2.2 測試用例的數據驅動 12
1.2.3 生成漂亮的測試報告 15
1.3 本章小結 18
第2章 關鍵識別技術及常見控件的使用 19
2.1 自動化測試的核心—對象識別 19
2.1.1 如何快速抓取頁面上的元素屬性 19
2.1.2 學會如何高效地使用XPath定位對象 22
2.1.3 CSS選擇器—另一種不得不學的定位方式 27
2.1.4 XPath與CSS選擇器的對比 29
2.1.5 FindElement與FindElements各顯“神通” 33
2.2 同步點—讓測試腳本更穩(wěn)定 37
2.2.1 同步點的重要性 37
2.2.2 智能全局等待 38
2.2.3 私人訂制等待 39
2.3 項目中常用Web控件 45
2.3.1 WebElement—WebDriver的基層元素 45
2.3.2 WebTextbox—針對文本框的處理 48
2.3.3 WebListbox—關于下拉列表的操作 54
2.3.4 WebCheckbox—復選框的應用 58
2.3.5 WebTable—表格的處理 60
2.4 本章小結 65
第3章 移動端自動化測試實例與核心原理剖析 66
3.1 引言 66
3.2 Desired Caps與Driver-Selenium的原理 66
3.2.1 無所不能的Desired Caps 66
3.2.2 不同驅動器的底層實現原理 66
3.2.3 Selenium的運行原理 67
3.2.4 利用Standalone Server遠程執(zhí)行測試腳本 67
3.2.5 添加Chrome瀏覽器的支持 70
3.2.6 使用Selenium Grid進行跨瀏覽器測試 73
3.2.7 Sauce Labs—想你所想,無所不能 77
3.3 Appium移動端自動化測試工作機制 89
3.3.1 Appium的運作原理 89
3.3.2 iOS自動化測試的好幫手—XCUITest 92
3.3.3 WebDriverAgent—搭建iOS自動化橋梁的“功臣” 96
3.3.4 UIAutomator2—搭建Android自動化測試橋梁的“功臣” 103
3.4 Appium-Desktop—從依賴到放棄 105
3.4.1 為什么需要依賴Appium-Desktop 105
3.4.2 為什么不要完全依賴Appium-Desktop 110
3.5 從一個經典的官方實例開啟移動端自動化測試Appium之旅 113
3.6 本章小結 114
第4章 自動化實戰(zhàn)項目原型設計 115
4.1 充分的準備工作讓你事半功倍 115
4.1.1 自動化測試真的合適嗎 115
4.1.2 優(yōu)秀的測試策略能讓自動化測試成功率達到80% 115
4.1.3 新的開始 116
4.2 讓自動化測試腳本更加穩(wěn)健 119
4.2.1 編寫易維護、易擴展的測試腳本 119
4.2.2 用可重用的結構降低腳本的維護成本 122
4.2.3 編寫有彈性的測試腳本 125
4.2.4 追求實用 128
4.3 靈活與智能化地執(zhí)行測試 131
4.3.1 本地跨瀏覽器測試 131
4.3.2 云端跨瀏覽器測試 133
4.3.3 加快執(zhí)行速度 136
4.3.4 靈活地對測試進行分組 138
4.4 測試的自動化 140
4.4.1 需要一個7×24小時全年無休的“工人” 140
4.4.2 需要“工人”在完工后給出反饋 144
4.4.3 需要“工人”與“工人”之間緊密合作 146
4.5 本章小結 149
第5章 接口測試 150
5.1 引言 150
5.2 什么是接口 151
5.3 接口的類型 151
5.4 接口的本質和工作原理 151
5.5 接口測試的定義 152
5.6 接口測試的必要性 152
5.7 怎樣做接口測試 152
5.8 接口測試的測試點 153
5.9 做接口測試需要掌握的知識 156
5.10 本章小結 158
第6章 Python Requests接口測試實戰(zhàn) 159
6.1 API自動化測試任務 159
6.2 Python 3+unittest+HTMLReport+DDT框架 162
6.2.1 項目介紹 162
6.2.2 python_api_test_automation.py 164
6.2.3 public_func.py 176
6.2.4 run_test.py 180
6.3 本章小結 185
附錄A JMeter接口測試實戰(zhàn) 187
附錄B 移動端網絡抓包 199