自動化測試實戰寶典:RobotFramework + Python 從小工到專家

周金劍(狂師)

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

商品描述

《自動化測試實戰寶典:Robot Framework + Python從小工到專家》以自動化測試技術為主線,循序漸進地介紹了自動化測試所涉及的知識體系,通過不同端的實戰項目,綜合運用了所介紹的技術,旨在提高測試人員的綜合技術能力並擴展知識體系。《自動化測試實戰寶典:Robot Framework + Python從小工到專家》從對測試行業現狀及未來幾年趨勢的分析開始,呼籲大家在時不我待的當今社會中,找準定位並建立自身的職場核心競爭力。然後圍繞自動化測試技術應用結合多端(後端、Web端、Android端、iOS端、H5端、小程序端)實例來引導讀者快速上手。本書涵蓋了絕大部分自動化測試知識,不但內容充實、邏輯嚴密,且圖文並茂、語言生動。對Robot Framework使用者來說,本書更是一部難得的工具寶典。《自動化測試實戰寶典:Robot Framework + Python從小工到專家》適合對測試技術感興趣或者正在從事測試工作的人(不限於手工測試、自動化測試、測試開發、測試管理等)閱讀。希望讀者在學習完本書的內容後能提高綜合的技術水平,成為一名新時代的優秀測試工程師。

作者簡介

周金劍,筆名:狂師,行業ID:mikezhou。

目前就職於國內一家互聯網醫療公司,擔任研發中心測試總監,負責管理、建設研發中心產品質量體系。之前從事過研發團隊建設、團隊管理、測試開發、研發效率提升、DevOps建設等工作。曾就職於國內一家移動互聯網金融公司,擔任資深測試開發工程師,負責主導測試平台開發、研發效率提升等工作,並曾在酷狗音樂主導過後端接口自動化測試、App UI自動化測試、持續集成等項目。

2017年開通個人技術公眾號:測試開發技術(mikezhou_talk),該公眾號專注於軟件測試開發領域開源技術、Python編程應用、主流工具(性能、自動化、安全、CI/CD)、經驗、落地實踐、解決方案分享,以及職場進階和個人發展等。

目錄大綱

 

第1部分入門篇

 

第1章大話測試行業\t2

1.1測試行業現狀分析\t2

1.2未來發展趨勢\t4

1.3測試工程師的核心競爭力\t8

1.4測試知識體系\t12

1.5測試發展能力圖譜及推薦書單\t23

1.6本章總結\t25

 

第2章認識自動化測試\t26

2.1為什麼自動化測試是必要的\t26

2.2手工測試與自動化測試的區別\t28

2.3自動化測試常見誤區\t29

2.4自動化測試的優劣分析\t31

2.5提倡分層自動化測試\t32

2.6什麼項目適合做自動化測試\t33

2.6.1什麼樣的項目或團隊適合做自動化測試\t34

2.6.2不適合做自動化測試的項目有什麼特點\t35

2.7做好自動化測試需要具備哪些能力\t36

2.8自動化測試引入時機和適用場景\t37

2.9常用主流工具有哪些\t38

2.10自動化測試面臨的挑戰\t41

2.11本章總結\t41

 

第2部分基礎學習篇

 

第3章ROBOT FRAMEWORK框架準備\t44

3.1 ROBOT FRAMEWORK框架介紹\t44

3.1.1優勢和亮點\t44

3.1.2不足\ t45

3.1.3 Robot Framework生態系統\t45

3.2 WINDOWS平台環境搭建\t47

3.2.1 Python的安裝與配置\t47

3.2.2 pip的安裝與升級\t49

3.2.3 Robot Framework框架的安裝\t50

3.2.4 wxPython框架的安裝\t50

3.2.5 Robot Framework RIDE的安裝\t51

3.3 MAC平台環境搭建\t52

3.3.1 Python的安裝與配置\t52

3.3.2 pip的安裝\t53

3.3.3 Robot Framework框架的安裝\t54

3.3.4 Mac OS X無法啟動RIDE的解決方案\t54

3.4 LINUX平台環境搭建\t57

3.4.1 Python的安裝與配置\t57

3.4.2 pip的安裝與配置\t58

3.4.3 Robot Framework框架的安裝\t58

3.4.4 wxPython框架的安裝\t59

3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3\t59

3.5.1 Robot Framework RIDE 1.7.3的新特性\t59

3.5.2 Robot Framework RIDE 1.7.3的安裝與升級\t60

3.6本章總結\t60

 

第4章PYTHON測試編程\t62

4.1語法規範\t62

4.1.1代碼編排\t63

4.1.2文檔編排\t63

4.1.3空格的使用\t64

4.1.4註釋及文檔描述\t64

4.1.5命名規範\t65

4.1.6編碼建議\t66

4.2 PYTHON 2和PYTHON 3如何選擇\t67

4.2.1為什麼Python 2和Python 3都要學\t67

4.2.2 Python 2和Python 3的主要特性區別\t68

4.2.3 Python 2和Python 3同時兼容的技巧\t73

4.3快速入門\t75

4.3.1 Python變量和賦值\t75

4.3.2 Python字符串\t77

4.3.3 Python列表和元組\t78

4.3.4 Python字典\t79

4.3. 5 Python if分支條件\t80

4.3.6 Python while循環\t81

4.3.7 Python for循環\t81

4.3.8 Python range內建函數\t82

4.3.9 Python列表解析\t83

4.3.10 Python open函數\t85

4.3 .11 Python錯誤和異常\t88

4.3.12 Python函數\t93

4.3.13 Python類\t102

4.3.14 Python模塊與包\t110

4.3.15 Python常用內置函數\t115

4.4 PYTHON編程常用技巧\t116

4.4.1 Python拼接字符串的7種方式\t116

4.4.2 Python列表推導、字典推導、集合推導\t118

4.4.3 Python三元操作符用來進行條件賦值\t119

4.4.4 Python同時迭代兩個列表\t120

4.4.5 Python帶索引的列表迭代\t120

4.4.6 Python迭代列表組合\t120

4.4.7 Python統計元素出現次數\t121

4.4.8 Python找出列表中出現次數最多的元素\t121

4.4. 9 Python一鍵啟用文件服務器\t122

4.4.10 Python快速拼接構造列表\t122

4.4.11 Python一行代碼搜索字符串的多個前後綴\t122

4.4.12 Python實現真正的switch-case語句\t123

4.4. 13 Python實例方法、靜態方法、類方法\t123

4.4.14 Python求集合併集、交集、差集\t124

4.4.15 Python去除列表重複元素的幾種方法\t125

 

第5章ROBOT FRAMEWORK功能的使用\ t127

5.1 RIDE兩種啟動方式\t127

5.2 RIDE功能介紹\t128

5.2.1菜單欄\t128

5.2.2工具欄\t131

5.2.3案例區\t131

5.2.4工作區\t131

5.2.5常用快捷鍵\t132

5.3常用ROBOT FRAMEWORK編輯器工具\t133

5.3.1 PyCharm\t133

5.3.2 Sublime Text\t138

5.3.3其他工具\ t140

5.4測試項目、測試套件和測試用例\t141

5.4.1測試項目\t141

5.4.2測試套件\t141

5.4.3測試用例\t142

5.5資源文件\t143

5.5.1內部資源文件\t143

5.5.2外部資源文件\t143

5.6常量和變量\t144

5.6.1變量與常量介紹\t144

5.6.2變量作用域\t145

5.6.3 Robot Framework內置變量\t146

5.6.4標量變量的定義和使用\t147

5.6.5列表變量的定義和使用\t149

5.6.6字典變量的定義和使用\t151

5.6.7變量知識補充\t153

5.7用戶關鍵字\t153

5.7.1關鍵字Arguments\t154

5.7.2關鍵字Teardown\t160

5.7.3關鍵字Return\t161

5.8 EDIT選項卡\t162

5.8.1測試項目Edit選項卡\t162

5.8.2測試套件Edit選項卡\t163

5.8.3測試用例Edit選項卡\t165

5.8.4小結\t166

5.9 TEXT EDIT選項卡\t167

5.10 RUN選項卡\t168

5.10.1自動保存\t168

5.10.2失敗暫停\t168

5.10.3 Arguments參數配置\t169

5.10.4 Only run tests with these tags\t170

5.10.5 Skip tests with these tags\t171

5.10.6查看測試報告和測試日誌\t172

5.11 ROBOT FRAMEWORK常用技巧\t173

5.11.1 If分支結構\t173

5.11.2 For循環結構\t174

5.11. 3列表變量的用法和元素獲取\t176

5.11.4變量使用方法補充\t177

5.11.5搜索關鍵字\t178

5.11.6測試用例執行六大技巧\t179

5.11.7測試標籤技巧\t181

5.11.8 Setup和Teardown\t183

5.11.9 Pybot和Robot命令\t183

5.11.10 Jybot模式安裝與運行\t185

 

第6章ROBOT FRAMEWORK常用函數庫\t189

6.1內置庫介紹\ t189

6.1.1標準庫\t189

6.1.2擴展庫\t190

6.2 EVALUATE萬能關鍵字\t191

6.3類型轉換\t194

6.3.1 Convert To String:轉換成字符串\t194

6.3.2 Convert To Integer:轉換成整數\t194

6.3.3 Convert To Number:轉換成符點數\t194

6.3.4 Convert To Boolean:轉換成布爾值\t195

6.3.5 Encode String To Bytes:字符編碼\t196

6.4變量操作\t196

6.4.1 Log Variables :打印變量\t196

6.4.2 Import Variables:導入變量\t196

6.4.3 Set Variable:設置變量\t197

6.4.4 Set Global Variable:設置全局變量\t197

6.4.5 Set Suite Variable:設置測試套件變量\t198

6.4.6 Set Test Variable:設置測試用例變量\t198

6.4.7 Set Variable If:當條件滿足時設置變量\t199

6.4.8 Get Variables:獲取所有變量\t199

6.4.9 Get Variable Value:獲取變量值\t199

6.4.10 Get Environment Variables:獲取所有環境變量\t200

6.4.11 Get Environment Variable:獲取環境變量值\t200

6.4.12 Set Environment Variable:設置環境變量\t200

6.5關鍵字操作\t201

6.5.1 Run Keyword:運行關鍵字\t201

6.5.2 Run Keyword If:當條件滿足時運行關鍵字\t201

6.5.3 Run Keyword Unless:當條件不滿足時運行關鍵字\t201

6.5.4 Repeat Keyword:重複運行某關鍵字\t202

6.5.5 Run Keywords:運行多個關鍵字\t202

6.5.6 Run Keyword And Return:運行關鍵字並返回結果\t202

6.5.7 Run Keyword And Return If:當條件滿足時運行關鍵字並返回結果\t203

6.5.8 Run Keyword And Continue On Failure:失敗後仍運行指定關鍵字\t203

6.5.9 Run Keyword And Ignore Error:運行關鍵字並忽略錯誤\t203

6.5.10 Run Keyword If All Tests Passed:所有測試用例通過後運行關鍵字\t203

6.5.11 Run Keyword If Any Tests Failed:任一測試用例失敗後運行關鍵字\t204

6.5.12 Run Keyword If Test Passed:測試用例通過後運行關鍵字\t204

6.5.13 Run Keyword If Test Failed:測試用例失敗後運行關鍵字\t204

6.5.14 Run Keyword If Timeout Occurred:測試用例超時後運行關鍵字\t204

6.6條件與循環\t205

6.6.1 Continue For Loop:直接繼續下一次循環\ t205

6.6.2 Continue For Loop If:當條件滿足時繼續下一次循環\t205

6.6.3 Exit For Loop:立即退出循環\t205

6.6.4 Exit For Loop If:當條件滿足時退出循環\t206

6.7斷言操作\t206

6.7.1 Should (Not) Be Empty:斷言是否為空\t206

6.7.2 Should (Not) Be Equal:斷言是否相等\t207

6.7.3 Should (Not) Be Equal As Strings:斷言作為字符串是否相等\t207

6.7.4 Should (Not) Be Equal As Integers:斷言作為整數是否相等\t208

6.7.5 Should (Not) Be True:斷言是否為真\t208

6.7.6 Should (Not) Contain:斷言是否包含某元素\t209

6.7.7 Should (Not) Contain Any:斷言是否包含任一元素\t210

6.7.8 Should Contain X Times:斷言某元素是否被包含指定次數\t210

6.7.9 Should (Not) Start With:斷言是否以某某開頭\t210

6.7.10 Should (Not) End With:斷言是否以某某結尾\t211

6.7.11 Should (Not) Match Regexp:斷言是否匹配正則表達式\t211

6.7.12 Length Should Be:斷言長度是否相等\t212

6.7.13 Keyword Should Exist:斷言關鍵字是否存在\t213

6.7.14 List Should (Not) Contain Value:斷言列表是否包含某值\t213

6.7.15 Lists Should Be Equal:斷言兩個列表是否相等\t213

6.7.16 List Should Not Contain Duplicates:斷言列表不包含重複項\t214

6.7.17 Dictionary Should