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

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

《自動化測試實戰寶典:Robot Framework + Python從小工到專家》是2020年1月電子工業出版社出版的圖書,作者是周金劍(狂師)。

基本介紹

  • 中文名:自動化測試實戰寶典:Robot Framework + Python從小工到專家
  • 作者:周金劍(狂師)
  • 出版社:電子工業出版社
  • 出版時間:2020年1月
  • 頁數:540 頁
  • 定價:109 元
  • 開本:16 開
  • ISBN:9787121363207
內容簡介,目錄,

內容簡介

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

目錄

第1部分 入門篇
第1章 大話測試行業 2
1.1 測試行業現狀分析 2
1.2 未來發展趨勢 4
1.3 測試工程師的核心競爭力 8
1.4 測試知識體系 12
1.5 測試發展能力圖譜及推薦書單 23
1.6 本章總結 25
第2章 認識自動化測試 26
2.1 為什麼自動化測試是必要的 26
2.2 手工測試與自動化測試的區別 28
2.3 自動化測試常見誤區 29
2.4 自動化測試的優劣分析 31
2.5 提倡分層自動化測試 32
2.6 什麼項目適合做自動化測試 33
2.6.1 什麼樣的項目或團隊適合做自動化測試 34
2.6.2 不適合做自動化測試的項目有什麼特點 35
2.7 做好自動化測試需要具備哪些能力 36
2.8 自動化測試引入時機和適用場景 37
2.9 常用主流工具有哪些 38
2.10 自動化測試面臨的挑戰 41
2.11 本章總結 41
第2部分 基礎學習篇
第3章 ROBOT FRAMEWORK框架準備 44
3.1 ROBOT FRAMEWORK框架介紹 44
3.1.1 優勢和亮點 44
3.1.2 不足 45
3.1.3 Robot Framework生態系統 45
3.2 WINDOWS平台環境搭建 47
3.2.1 Python的安裝與配置 47
3.2.2 pip的安裝與升級 49
3.2.3 Robot Framework框架的安裝 50
3.2.4 wxPython框架的安裝 50
3.2.5 Robot Framework RIDE的安裝 51
3.3 MAC平台環境搭建 52
3.3.1 Python的安裝與配置 52
3.3.2 pip的安裝 53
3.3.3 Robot Framework框架的安裝 54
3.3.4 Mac OS X無法啟動RIDE的解決方案 54
3.4 LINUX平台環境搭建 57
3.4.1 Python的安裝與配置 57
3.4.2 pip的安裝與配置 58
3.4.3 Robot Framework框架的安裝 58
3.4.4 wxPython框架的安旋講裝 59
3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3 59
3.5.1 Robot Framework RIDE 1.7.3的新特性 59
3.5.2 Robot Framework RIDE 1.7.3的安裝與升級 60
3.6 本章總結 60
第4章 PYTHON測試編程 62
4.1 語法規範 62
4.1.1 代碼編排 63
4.1.2 文檔編排 63
4.1.3 空格的使用 64
4.1.4 注釋及文檔描述 64
4.1.5 命名規範 65
4.1.6 編碼建議 66
4.2 PYTHON 2和PYTHON 3如何選擇 67
4.2.1 為什麼Python 2和Python 3都要學 67
4.2.2 Python 2和Python 3的主要特性區別 68
4.2.3 Python 2和Python 3同時兼容的技巧 73
4.3 快速入門 75
4.3.1 Python變數和賦值 75
4.3.2 Python字元串 77
4.3.3 Python列表和元組 78
4.3.4 Python字典 79
4.3.5 Python if分支條件 80
4.3.6 Python while循環 81
4.3.7 Python for循環 81
4.3.8 Python range內建函式 82
4.3.9 Python列表解析 83
4.3.10 Python open函式 85
4.3.11 Python錯誤和異常 88
4.3.12 Python函式 93
4.3.13 Python類 102
4.3.14 Python模組與包 110
4.3.15 Python常用內置函式 115
4.4 PYTHON編程常用技巧 116
4.4.1 Python拼接字元串的7種方式 116
4.4.2 Python列表推導、字典推導、集合推導 118
4.4.3 Python三元操作符用來進行條件賦值 119
4.4.4 Python同時疊代兩個列表 120
4.4.5 Python帶索引的列表疊代 120
4.4.6 Python 疊代列表組合 120
4.4.7 Python 統計元素出現次數 121
4.4.8 Python 找出列表中出現次數最多的元素 121
4.4.9 Python一鍵啟用檔案伺服器 122
4.4.10 Python 快速拼接構造列表 122
4.4.11 Python 一行代碼搜尋字元串的多個前後綴 122
4.4.12 Python實現真正的switch-case語句 123
4.4.13 Python實例方法、靜態方法、類方法 123
4.4.14 Python求集合併集、交集、差集 124
4.4.15 Python去除列表重複元素的幾種方法 125
第5章 ROBOT FRAMEWORK功能的使用 127
5.1 RIDE兩種啟動方式 127
5.2 RIDE功能介紹 128
5.2.1 選單欄 128
5.2.2 工具列 131
5.2.3 案例區 131
5.2.4 工作區 131
5.2.5 常用快捷鍵 132
5.3 常用ROBOT FRAMEWORK編輯器工具 133
5.3.1 PyCharm 133
5.3.2 Sublime Text 138
5.3.3 其他工具 140
5.4 測試項目、測試套件和測試用例 141
5.4.1 測試項目 141
5.4.2 測試套件 141
5.4.3 測試用例 142
5.5 資源檔案 143
5.5.1 內部資源檔案 143
5.5.2 外部資源檔案 143
5.6 常量和變數 144
5.6.1 變數與常量介紹 144
5.6.2 變數作用域 145
5.6.3 Robot Framework內置變數 146
5.6.4 標量變數的定義和使用 147
5.6.5 列表變數的定義和使用 149
5.6.6 字典變數的定義和使用 151
5.6.7 變數知識補充 153
5.7 用戶關鍵字 153
5.7.1 關鍵字Arguments 154
5.7.2 關鍵字Teardown 160
5.7.3 關鍵字Return 161
5.8 EDIT選項卡 162
5.8.1 測試項目Edit選項卡 162
5.8.2 測試套件Edit選項卡 163
5.8.3 測試用例Edit選項卡 165
5.8.4 小結 166
5.9 TEXT EDIT選項卡 167
5.10 RUN選項卡 168
5.10.1 自動保存 168
5.10.2 失敗暫停 168
5.10.3 Arguments參數配置 169
5.10.4 Only run tests with these tags 170
5.10.5 Skip tests with these tags 171
5.10.6 查看測試報告和測試日誌 172
5.11 ROBOT FRAMEWORK常用技巧 173
5.11.1 If分支結構 173
5.11.2 For循環結構 174
5.11.3 列表變數的用法和元素獲取 176
5.11.4 變數使用方法補充 177
5.11.5 搜尋關鍵字 178
5.11.6 測試用例執行六大技巧 179
5.11.7 測試標籤技巧 181
5.11.8 Setup和Teardown 183
5.11.9 Pybot和Robot命令 183
5.11.10 Jybot模式安裝與運行 185
第6章 ROBOT FRAMEWORK常用函式館 189
6.1 內置庫介紹 189
6.1.1 標準庫 189
6.1.2 擴展庫 190
6.2 EVALUATE萬能關鍵字 191
6.3 類型轉換 194
6.3.1 Convert To String:轉換成字元串 194
6.3.2 Convert To Integer:轉換成整數 194
6.3.3 Convert To Number:轉換成符點數 194
6.3.4 Convert To Boolean:轉換成布爾值 195
6.3.5 Encode String To Bytes:字元編碼 196
6.4 變數操作 196
6.4.1 Log Variables:列印變數 196
6.4.2 Import Variables:導入變數 196
6.4.3 Set Variable:設定變數 197
6.4.4 Set Global Variable:設定全局變數 197
6.4.5 Set Suite Variable:設定測試套件變數 198
6.4.6 Set Test Variable:設定測試用例變數 198
6.4.7 Set Variable If:當條件滿足時設定變數 199
6.4.8 Get Variables:獲取所有變數 199
6.4.9 Get Variable Value:獲取變數值 199
6.4.10 Get Environment Variables:獲取所有環境變數 200
6.4.11 Get Environment Variable:獲取環境變數值 200
6.4.12 Set Environment Variable:設定環境變數 200
6.5 關鍵字操作 201
6.5.1 Run Keyword:運行關鍵字 201
6.5.2 Run Keyword If:當條件滿足時運行關鍵字 201
6.5.3 Run Keyword Unless:當條件不滿足時運行關鍵字 201
6.5.4 Repeat Keyword:重複運行某關鍵字 202
6.5.5 Run Keywords:運行多個關鍵字 202
6.5.6 Run Keyword And Return:運行關鍵字並返回結果 202
6.5.7 Run Keyword And Return If:當條件滿足時運行關鍵字並返回結果 203
6.5.8 Run Keyword And Continue On Failure:失敗後仍運行指定關鍵字 203
6.5.9 Run Keyword And Ignore Error:運行關鍵字並忽略錯誤 203
6.5.10 Run Keyword If All Tests Passed:所有測試用例通過後運行關鍵字 203
6.5.11 Run Keyword If Any Tests Failed:任一測試用例失敗後運行關鍵字 204
6.5.12 Run Keyword If Test Passed:測試用例通過後運行關鍵字 204
6.5.13 Run Keyword If Test Failed:測試用例失敗後運行關鍵字 204
6.5.14 Run Keyword If Timeout Occurred:測試用例逾時後運行關鍵字 204
6.6 條件與循環 205
6.6.1 Continue For Loop:直接繼續下一次循環 205
6.6.2 Continue For Loop If:當條件滿足時繼續下一次循環 205
6.6.3 Exit For Loop:立即退出循環 205
6.6.4 Exit For Loop If:當條件滿足時退出循環 206
6.7 斷言操作 206
6.7.1 Should (Not) Be Empty:斷言是否為空 206
6.7.2 Should (Not) Be Equal:斷言是否相等 207
6.7.3 Should (Not) Be Equal As Strings:斷言作為字元串是否相等 207
6.7.4 Should (Not) Be Equal As Integers:斷言作為整數是否相等 208
6.7.5 Should (Not) Be True:斷言是否為真 208
6.7.6 Should (Not) Contain:斷言是否包含某元素 209
6.7.7 Should (Not) Contain Any:斷言是否包含任一元素 210
6.7.8 Should Contain X Times:斷言某元素是否被包含指定次數 210
6.7.9 Should (Not) Start With:斷言是否以某某開頭 210
6.7.10 Should (Not) End With:斷言是否以某某結尾 211
6.7.11 Should (Not) Match Regexp:斷言是否匹配正則表達式 211
6.7.12 Length Should Be:斷言長度是否相等 212
6.7.13 Keyword Should Exist:斷言關鍵字是否存在 213
6.7.14 List Should (Not) Contain Value:斷言列表是否包含某值 213
6.7.15 Lists Should Be Equal:斷言兩個列表是否相等 213
6.7.16 List Should Not Contain Duplicates:斷言列表不包含重複項 214
6.7.17 Dictionary Should Contain Item:斷言字典是否包含某鍵值對 214
6.7.18 Dictionary Should (Not) Contain Key:斷言字典是否包含某Key值 214
6.7.19 Dictionary Should (Not) Contain Value:斷言字典是否包含某Value值 215
6.7.20 Dictionaries Should Be Equal:斷言給定的字典是否相等 215
6.8 集合操作 215
6.8.1 Create List:創建列表 215
6.8.2 Log List:列印輸出列表中的值 216
6.8.3 Append To List:添加元素到列表 216
6.8.4 Insert Into List:插入元素到列表 216
6.8.5 Copy List:複製列表 217
6.8.6 Get From List:從列表中取值 217
6.8.7 Get Index From List:獲取列表值對應的索引位置 217
6.8.8 Reverse List:反轉列表 218
6.8.9 Set List Value:設定列表值 218
6.8.10 Sort List:排序列表 219
6.8.11 Remove From List:移除列表中指定位置的元素 219
6.8.12 Remove Values From List:從列表中移除給定的所有值 219
6.8.13 Remove Duplicates:從列表中移除重複項 220
6.8.14 Create Dictionary:創建字典 220
6.8.15 Log Dictionary:列印字典 220
6.8.16 Set To Dictionary:添加元素到字典 221
6.8.17 Copy Dictionary:複製字典 221
6.8.18 Get Dictionary Items:獲取字典中的所有元素 221
6.8.19 Get Dictionary Keys:獲取字典中的所有Key值 222
6.8.20 Get Dictionary Values:獲取字典中的所有Value值 222
6.8.21 Get From Dictionary:獲取字典中的指定Key值 222
6.8.22 Pop From Dictionary:刪除並返回字典中的指定Key值 222
6.8.23 Remove From Dictionary:刪除字典中的指定Key值 223
6.9 常用關鍵字 223
6.9.1 Log:列印輸出 223
6.9.2 Log Many:列印各元素值 224
6.9.3 Log To Console:列印到控制台 225
6.9.4 Sleep:延時等待 225
6.9.5 Comment:添加注釋 226
6.9.6 Call Method:調用方法 226
6.9.7 Get Count:獲取數量 227
6.9.8 Get Length:獲取長度 227
6.9.9 Get Time:獲取時間 227
6.9.10 Pass Execution:標記測試用例執行成功 229
6.9.11 Pass Execution If:當條件滿足時標記測試用例執行成功 229
6.9.12 Fail:標記當前測試用例失敗 229
6.9.13 Fatal Error:停止執行所有測試用例 230
6.9.14 Import Library:導入測試庫 230
第3部分 項目實戰篇
第7章 基於HTTP接口的自動化測試 234
7.1 接口測試掃盲 234
7.1.1 接口的本質 234
7.1.2 接口有哪些類別 235
7.1.3 什麼是接口測試 236
7.1.4 接口測試的重要性 236
7.1.5 接口測試的關注點 237
7.1.6 接口測試的介入時機 238
7.1.7 接口測試的根本目標 238
7.2 開展接口測試的基本流程 239
7.3 接口測試用例設計 240
7.3.1 三類對象抽象模型 240
7.3.2 接口測試三層模型 240
7.3.3 接口輸入用例設計 241
7.3.4 接口邏輯用例設計 243
7.3.5 接口輸出用例設計 245
7.3.6 其他部分用例設計 246
7.3.7 一個完整的例子 247
7.3.8 小結 250
7.4 環境依賴安裝 250
7.4.1 所需第三方庫列表 250
7.4.2 安裝Requests依賴庫 251
7.4.3 安裝RequestsLibrary依賴庫 251
7.4.4 安裝HttpLibrary.HTTP依賴庫 251
7.5 接口測試設計規範 252
7.5.1 接口測試整體分層結構 252
7.5.2 接口測試功能劃分原則 254
7.5.3 接口測試套件命名約定 255
7.5.4 接口測試用例命名與分類 255
7.6 接口測試項目實戰:最佳實踐 257
7.6.1 實戰項目接口分析 257
7.6.2 實戰項目框架設計 260
7.6.3 實戰項目業務分層 262
7.6.4 實戰項目模組劃分 264
7.6.5 公共請求方法 265
7.6.6 業務資源檔案 271
7.7 接口測試項目實戰:用例設計 273
7.7.1 實戰一:登錄型接口功能測試設計 274
7.7.2 實戰二:列表型接口功能測試設計 286
7.7.3 實戰三:信息型接口功能測試設計 295
7.7.4 實戰四:基於業務場景下的接口組合測試設計 301
7.8 接口測試項目實戰:成果展示 307
7.9 ROBOT FRAMEWORK實戰常用技巧 308
7.9.1 一套測試用例支持多個環境運行 309
7.9.2 測試用例標籤分類策略 311
7.9.3 測試套件和測試用例Hook 313
7.9.4 動態構造測試數據 315
7.9.5 自定義Python方法 317
7.10 ROBOT FRAMEWORK開發系統關鍵字 319
7.11 ROBOT FRAMEWORK+GITLAB代碼管理 323
7.12 ROBOT FRAMEWORK+JENKINS構建持續集成 324
7.12.1 Jenkins環境搭建 325
7.12.2 Robot Framework Jenkins外掛程式安裝 327
7.12.3 添加運行節點Slave 328
7.12.4 Robot Framework+Job接口自動化測試配置 332
7.12.5 Robot Framework+Job測試構建及結果查看 336
第8章 基於SELENIUM的WEB UI自動化測試 339
8.1 SELENIUM框架介紹 339
8.1.1 Selenium是什麼 339
8.1.2 Selenium與Robot Framework的關係 339
8.2 環境安裝 340
8.2.1 安裝依賴庫 340
8.2.2 查看庫版本 340
8.3 第一個示例 340
8.3.1 打開RIDE 341
8.3.2 創建項目 341
8.3.3 創建測試套件 342
8.3.4 創建測試用例 342
8.3.5 編寫測試用例 343
8.3.6 運行及查看結果 344
8.4 常用關鍵字 346
8.4.1 瀏覽器操作 346
8.4.2 iFrame操作 347
8.4.3 輸入操作 347
8.4.4 單擊元素操作 348
8.4.5 屬性獲取 349
8.4.6 元素等待操作 349
8.4.7 預期結果校驗 350
8.4.8 Cookie操作 351
8.4.9 其他常用關鍵字 352
8.4.10 小結 352
8.5 元素定位 353
8.5.1 常用定位工具 353
8.5.2 常用定位方法 355
8.6 多瀏覽器處理 357
8.6.1 Chrome瀏覽器 357
8.6.2 Firefox瀏覽器 358
8.6.3 Safari瀏覽器 360
8.6.4 PhantomJS 瀏覽器 362
8.7 ROBOT FRAMEWORK+SELENIUM WEB UI自動化測試項目實戰 363
8.7.1 實戰項目背景說明 363
8.7.2 Web UI項目分層設計 365
8.7.3 實戰一:Web UI登錄類測試設計 367
8.7.4 實戰二:Web UI套用類測試設計 372
8.7.5 實戰三:Web UI列表類測試設計 376
8.7.6 小結 379
第9章 基於APPIUM的移動端自動化測試 381
9.1 APPIUM框架介紹 381
9.1.1 Appium是什麼 381
9.1.2 Appium常見概念 382
9.1.3 Appium工作原理 383
9.1.4 Appium與Robot Framework的關係 385
9.2 環境搭建 385
9.2.1 Android自動化測試所需環境搭建 385
9.2.2 Appium框架所需環境搭建 388
9.2.3 iOS自動化測試所需環境搭建 391
9.3 APPIUM DESKTOP使用介紹 393
9.3.1 Appium Desktop的安裝 393
9.3.2 Appium Desktop的功能介紹 393
9.4 ROBOT FRAMEWORK+ APPIUM開展ANDROID自動化測試 400
9.4.1 需要了解的ADB知識 400
9.4.2 獲取Android設備序列號 402
9.4.3 獲取App包名和Activity名 403
9.4.4 第一個Appium Android自動化測試示例 406
9.4.5 獲取Android App控制項元素的方法 408
9.4.6 Android App元素常用定位方式 411
9.4.7 Appium Library常用關鍵字 413
9.4.8 Android自動化測試實戰:前期準備 414
9.4.9 Android自動化測試實戰:項目結構設計 416
9.4.10 Android自動化測試實戰:公共關鍵字設計 418
9.4.11 實戰一:實現Android App自動登錄測試 420
9.4.12 實戰二:測試Android App同頁面的多個同類型元素 423
9.4.13 實戰三:獲取並斷言Android App Toast提示信息 427
9.4.14 小結 428
9.5 ROBOT FRAMEWORK+APPIUM開展IOS自動化測試 429
9.5.1 iOS開發證書、描述檔案與Bundle ID的關係 430
9.5.2 iOS產出物的幾種格式 431
9.5.3 獲取iOS設備的UDID和App Bundle ID 432
9.5.4 iOS常用命令 434
9.5.5 iOS模擬器的安裝和使用 435
9.5.6 iOS模擬器simctl常用命令 437
9.5.7 Appium安裝配置WebDriverAgent 439
9.5.8 獲取iOS App控制項元素的三種方法 444
9.5.9 iOS App元素常用定位方式 448
9.5.10 第一個Appium iOS模擬器自動化測試示例 450
9.5.11 第一個Appium iOS真機自動化測試示例 452
9.5.12 Robot Framework + Appium實現iOS模擬器自動化測試 454
9.5.13 Robot Framework + Appium實現iOS真機自動化測試 459
9.5.14 小結 464
9.6 APPIUM+PYTHON開展H5混合套用自動化測試 465
9.6.1 在混合套用中識別H5頁面的幾種方法 465
9.6.2 混合套用元素定位整體思路 467
9.6.3 App WebView調試模式的檢查和開啟 467
9.6.4 利用DevTools遠程調試WebView 468
9.6.5 一個Appium+Python H5自動化測試示例 469
9.6.6 小結 475
9.7 ROBOT FRAMEWORK+ APPIUM開展小程式自動化測試 476
9.7.1 小程式和H5的區別 476
9.7.2 一個Appium+Python 小程式自動化測試示例 477
9.7.3 Robot Framework+ Appium實現小程式自動化測試 480
9.8 本章總結 486
第4部分 擴展篇
第10章 ROBOT FRAMEWORK框架部分源碼解析 490
10.1 ROBOT FRAMEWORK框架目錄結構 490
10.1.1 Robot Framework源碼位置 490
10.1.2 Robot Framework源碼目錄結構 492
10.2 ROBOT FRAMEWORK執行用例邏輯分析 500
10.3 ROBOT FRAMEWORK二次開發—命令行實時顯示日誌 511,第1部分 入門篇
第1章 大話測試行業 2
1.1 測試行業現狀分析 2
1.2 未來發展趨勢 4
1.3 測試工程師的核心競爭力 8
1.4 測試知識體系 12
1.5 測試發展能力圖譜及推薦書單 23
1.6 本章總結 25
第2章 認識自動化測試 26
2.1 為什麼自動化測試是必要的 26
2.2 手工測試與自動化測試的區別 28
2.3 自動化測試常見誤區 29
2.4 自動化測試的優劣分析 31
2.5 提倡分層自動化測試 32
2.6 什麼項目適合做自動化測試 33
2.6.1 什麼樣的項目或團隊適合做自動化測試 34
2.6.2 不適合做自動化測試的項目有什麼特點 35
2.7 做好自動化測試需要具備哪些能力 36
2.8 自動化測試引入時機和適用場景 37
2.9 常用主流工具有哪些 38
2.10 自動化測試面臨的挑戰 41
2.11 本章總結 41
第2部分 基礎學習篇
第3章 ROBOT FRAMEWORK框架準備 44
3.1 ROBOT FRAMEWORK框架介紹 44
3.1.1 優勢和亮點 44
3.1.2 不足 45
3.1.3 Robot Framework生態系統 45
3.2 WINDOWS平台環境搭建 47
3.2.1 Python的安裝與配置 47
3.2.2 pip的安裝與升級 49
3.2.3 Robot Framework框架的安裝 50
3.2.4 wxPython框架的安裝 50
3.2.5 Robot Framework RIDE的安裝 51
3.3 MAC平台環境搭建 52
3.3.1 Python的安裝與配置 52
3.3.2 pip的安裝 53
3.3.3 Robot Framework框架的安裝 54
3.3.4 Mac OS X無法啟動RIDE的解決方案 54
3.4 LINUX平台環境搭建 57
3.4.1 Python的安裝與配置 57
3.4.2 pip的安裝與配置 58
3.4.3 Robot Framework框架的安裝 58
3.4.4 wxPython框架的安裝 59
3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3 59
3.5.1 Robot Framework RIDE 1.7.3的新特性 59
3.5.2 Robot Framework RIDE 1.7.3的安裝與升級 60
3.6 本章總結 60
第4章 PYTHON測試編程 62
4.1 語法規範 62
4.1.1 代碼編排 63
4.1.2 文檔編排 63
4.1.3 空格的使用 64
4.1.4 注釋及文檔描述 64
4.1.5 命名規範 65
4.1.6 編碼建議 66
4.2 PYTHON 2和PYTHON 3如何選擇 67
4.2.1 為什麼Python 2和Python 3都要學 67
4.2.2 Python 2和Python 3的主要特性區別 68
4.2.3 Python 2和Python 3同時兼容的技巧 73
4.3 快速入門 75
4.3.1 Python變數和賦值 75
4.3.2 Python字元串 77
4.3.3 Python列表和元組 78
4.3.4 Python字典 79
4.3.5 Python if分支條件 80
4.3.6 Python while循環 81
4.3.7 Python for循環 81
4.3.8 Python range內建函式 82
4.3.9 Python列表解析 83
4.3.10 Python open函式 85
4.3.11 Python錯誤和異常 88
4.3.12 Python函式 93
4.3.13 Python類 102
4.3.14 Python模組與包 110
4.3.15 Python常用內置函式 115
4.4 PYTHON編程常用技巧 116
4.4.1 Python拼接字元串的7種方式 116
4.4.2 Python列表推導、字典推導、集合推導 118
4.4.3 Python三元操作符用來進行條件賦值 119
4.4.4 Python同時疊代兩個列表 120
4.4.5 Python帶索引的列表疊代 120
4.4.6 Python 疊代列表組合 120
4.4.7 Python 統計元素出現次數 121
4.4.8 Python 找出列表中出現次數最多的元素 121
4.4.9 Python一鍵啟用檔案伺服器 122
4.4.10 Python 快速拼接構造列表 122
4.4.11 Python 一行代碼搜尋字元串的多個前後綴 122
4.4.12 Python實現真正的switch-case語句 123
4.4.13 Python實例方法、靜態方法、類方法 123
4.4.14 Python求集合併集、交集、差集 124
4.4.15 Python去除列表重複元素的幾種方法 125
第5章 ROBOT FRAMEWORK功能的使用 127
5.1 RIDE兩種啟動方式 127
5.2 RIDE功能介紹 128
5.2.1 選單欄 128
5.2.2 工具列 131
5.2.3 案例區 131
5.2.4 工作區 131
5.2.5 常用快捷鍵 132
5.3 常用ROBOT FRAMEWORK編輯器工具 133
5.3.1 PyCharm 133
5.3.2 Sublime Text 138
5.3.3 其他工具 140
5.4 測試項目、測試套件和測試用例 141
5.4.1 測試項目 141
5.4.2 測試套件 141
5.4.3 測試用例 142
5.5 資源檔案 143
5.5.1 內部資源檔案 143
5.5.2 外部資源檔案 143
5.6 常量和變數 144
5.6.1 變數與常量介紹 144
5.6.2 變數作用域 145
5.6.3 Robot Framework內置變數 146
5.6.4 標量變數的定義和使用 147
5.6.5 列表變數的定義和使用 149
5.6.6 字典變數的定義和使用 151
5.6.7 變數知識補充 153
5.7 用戶關鍵字 153
5.7.1 關鍵字Arguments 154
5.7.2 關鍵字Teardown 160
5.7.3 關鍵字Return 161
5.8 EDIT選項卡 162
5.8.1 測試項目Edit選項卡 162
5.8.2 測試套件Edit選項卡 163
5.8.3 測試用例Edit選項卡 165
5.8.4 小結 166
5.9 TEXT EDIT選項卡 167
5.10 RUN選項卡 168
5.10.1 自動保存 168
5.10.2 失敗暫停 168
5.10.3 Arguments參數配置 169
5.10.4 Only run tests with these tags 170
5.10.5 Skip tests with these tags 171
5.10.6 查看測試報告和測試日誌 172
5.11 ROBOT FRAMEWORK常用技巧 173
5.11.1 If分支結構 173
5.11.2 For循環結構 174
5.11.3 列表變數的用法和元素獲取 176
5.11.4 變數使用方法補充 177
5.11.5 搜尋關鍵字 178
5.11.6 測試用例執行六大技巧 179
5.11.7 測試標籤技巧 181
5.11.8 Setup和Teardown 183
5.11.9 Pybot和Robot命令 183
5.11.10 Jybot模式安裝與運行 185
第6章 ROBOT FRAMEWORK常用函式館 189
6.1 內置庫介紹 189
6.1.1 標準庫 189
6.1.2 擴展庫 190
6.2 EVALUATE萬能關鍵字 191
6.3 類型轉換 194
6.3.1 Convert To String:轉換成字元串 194
6.3.2 Convert To Integer:轉換成整數 194
6.3.3 Convert To Number:轉換成符點數 194
6.3.4 Convert To Boolean:轉換成布爾值 195
6.3.5 Encode String To Bytes:字元編碼 196
6.4 變數操作 196
6.4.1 Log Variables:列印變數 196
6.4.2 Import Variables:導入變數 196
6.4.3 Set Variable:設定變數 197
6.4.4 Set Global Variable:設定全局變數 197
6.4.5 Set Suite Variable:設定測試套件變數 198
6.4.6 Set Test Variable:設定測試用例變數 198
6.4.7 Set Variable If:當條件滿足時設定變數 199
6.4.8 Get Variables:獲取所有變數 199
6.4.9 Get Variable Value:獲取變數值 199
6.4.10 Get Environment Variables:獲取所有環境變數 200
6.4.11 Get Environment Variable:獲取環境變數值 200
6.4.12 Set Environment Variable:設定環境變數 200
6.5 關鍵字操作 201
6.5.1 Run Keyword:運行關鍵字 201
6.5.2 Run Keyword If:當條件滿足時運行關鍵字 201
6.5.3 Run Keyword Unless:當條件不滿足時運行關鍵字 201
6.5.4 Repeat Keyword:重複運行某關鍵字 202
6.5.5 Run Keywords:運行多個關鍵字 202
6.5.6 Run Keyword And Return:運行關鍵字並返回結果 202
6.5.7 Run Keyword And Return If:當條件滿足時運行關鍵字並返回結果 203
6.5.8 Run Keyword And Continue On Failure:失敗後仍運行指定關鍵字 203
6.5.9 Run Keyword And Ignore Error:運行關鍵字並忽略錯誤 203
6.5.10 Run Keyword If All Tests Passed:所有測試用例通過後運行關鍵字 203
6.5.11 Run Keyword If Any Tests Failed:任一測試用例失敗後運行關鍵字 204
6.5.12 Run Keyword If Test Passed:測試用例通過後運行關鍵字 204
6.5.13 Run Keyword If Test Failed:測試用例失敗後運行關鍵字 204
6.5.14 Run Keyword If Timeout Occurred:測試用例逾時後運行關鍵字 204
6.6 條件與循環 205
6.6.1 Continue For Loop:直接繼續下一次循環 205
6.6.2 Continue For Loop If:當條件滿足時繼續下一次循環 205
6.6.3 Exit For Loop:立即退出循環 205
6.6.4 Exit For Loop If:當條件滿足時退出循環 206
6.7 斷言操作 206
6.7.1 Should (Not) Be Empty:斷言是否為空 206
6.7.2 Should (Not) Be Equal:斷言是否相等 207
6.7.3 Should (Not) Be Equal As Strings:斷言作為字元串是否相等 207
6.7.4 Should (Not) Be Equal As Integers:斷言作為整數是否相等 208
6.7.5 Should (Not) Be True:斷言是否為真 208
6.7.6 Should (Not) Contain:斷言是否包含某元素 209
6.7.7 Should (Not) Contain Any:斷言是否包含任一元素 210
6.7.8 Should Contain X Times:斷言某元素是否被包含指定次數 210
6.7.9 Should (Not) Start With:斷言是否以某某開頭 210
6.7.10 Should (Not) End With:斷言是否以某某結尾 211
6.7.11 Should (Not) Match Regexp:斷言是否匹配正則表達式 211
6.7.12 Length Should Be:斷言長度是否相等 212
6.7.13 Keyword Should Exist:斷言關鍵字是否存在 213
6.7.14 List Should (Not) Contain Value:斷言列表是否包含某值 213
6.7.15 Lists Should Be Equal:斷言兩個列表是否相等 213
6.7.16 List Should Not Contain Duplicates:斷言列表不包含重複項 214
6.7.17 Dictionary Should Contain Item:斷言字典是否包含某鍵值對 214
6.7.18 Dictionary Should (Not) Contain Key:斷言字典是否包含某Key值 214
6.7.19 Dictionary Should (Not) Contain Value:斷言字典是否包含某Value值 215
6.7.20 Dictionaries Should Be Equal:斷言給定的字典是否相等 215
6.8 集合操作 215
6.8.1 Create List:創建列表 215
6.8.2 Log List:列印輸出列表中的值 216
6.8.3 Append To List:添加元素到列表 216
6.8.4 Insert Into List:插入元素到列表 216
6.8.5 Copy List:複製列表 217
6.8.6 Get From List:從列表中取值 217
6.8.7 Get Index From List:獲取列表值對應的索引位置 217
6.8.8 Reverse List:反轉列表 218
6.8.9 Set List Value:設定列表值 218
6.8.10 Sort List:排序列表 219
6.8.11 Remove From List:移除列表中指定位置的元素 219
6.8.12 Remove Values From List:從列表中移除給定的所有值 219
6.8.13 Remove Duplicates:從列表中移除重複項 220
6.8.14 Create Dictionary:創建字典 220
6.8.15 Log Dictionary:列印字典 220
6.8.16 Set To Dictionary:添加元素到字典 221
6.8.17 Copy Dictionary:複製字典 221
6.8.18 Get Dictionary Items:獲取字典中的所有元素 221
6.8.19 Get Dictionary Keys:獲取字典中的所有Key值 222
6.8.20 Get Dictionary Values:獲取字典中的所有Value值 222
6.8.21 Get From Dictionary:獲取字典中的指定Key值 222
6.8.22 Pop From Dictionary:刪除並返回字典中的指定Key值 222
6.8.23 Remove From Dictionary:刪除字典中的指定Key值 223
6.9 常用關鍵字 223
6.9.1 Log:列印輸出 223
6.9.2 Log Many:列印各元素值 224
6.9.3 Log To Console:列印到控制台 225
6.9.4 Sleep:延時等待 225
6.9.5 Comment:添加注釋 226
6.9.6 Call Method:調用方法 226
6.9.7 Get Count:獲取數量 227
6.9.8 Get Length:獲取長度 227
6.9.9 Get Time:獲取時間 227
6.9.10 Pass Execution:標記測試用例執行成功 229
6.9.11 Pass Execution If:當條件滿足時標記測試用例執行成功 229
6.9.12 Fail:標記當前測試用例失敗 229
6.9.13 Fatal Error:停止執行所有測試用例 230
6.9.14 Import Library:導入測試庫 230
第3部分 項目實戰篇
第7章 基於HTTP接口的自動化測試 234
7.1 接口測試掃盲 234
7.1.1 接口的本質 234
7.1.2 接口有哪些類別 235
7.1.3 什麼是接口測試 236
7.1.4 接口測試的重要性 236
7.1.5 接口測試的關注點 237
7.1.6 接口測試的介入時機 238
7.1.7 接口測試的根本目標 238
7.2 開展接口測試的基本流程 239
7.3 接口測試用例設計 240
7.3.1 三類對象抽象模型 240
7.3.2 接口測試三層模型 240
7.3.3 接口輸入用例設計 241
7.3.4 接口邏輯用例設計 243
7.3.5 接口輸出用例設計 245
7.3.6 其他部分用例設計 246
7.3.7 一個完整的例子 247
7.3.8 小結 250
7.4 環境依賴安裝 250
7.4.1 所需第三方庫列表 250
7.4.2 安裝Requests依賴庫 251
7.4.3 安裝RequestsLibrary依賴庫 251
7.4.4 安裝HttpLibrary.HTTP依賴庫 251
7.5 接口測試設計規範 252
7.5.1 接口測試整體分層結構 252
7.5.2 接口測試功能劃分原則 254
7.5.3 接口測試套件命名約定 255
7.5.4 接口測試用例命名與分類 255
7.6 接口測試項目實戰:最佳實踐 257
7.6.1 實戰項目接口分析 257
7.6.2 實戰項目框架設計 260
7.6.3 實戰項目業務分層 262
7.6.4 實戰項目模組劃分 264
7.6.5 公共請求方法 265
7.6.6 業務資源檔案 271
7.7 接口測試項目實戰:用例設計 273
7.7.1 實戰一:登錄型接口功能測試設計 274
7.7.2 實戰二:列表型接口功能測試設計 286
7.7.3 實戰三:信息型接口功能測試設計 295
7.7.4 實戰四:基於業務場景下的接口組合測試設計 301
7.8 接口測試項目實戰:成果展示 307
7.9 ROBOT FRAMEWORK實戰常用技巧 308
7.9.1 一套測試用例支持多個環境運行 309
7.9.2 測試用例標籤分類策略 311
7.9.3 測試套件和測試用例Hook 313
7.9.4 動態構造測試數據 315
7.9.5 自定義Python方法 317
7.10 ROBOT FRAMEWORK開發系統關鍵字 319
7.11 ROBOT FRAMEWORK+GITLAB代碼管理 323
7.12 ROBOT FRAMEWORK+JENKINS構建持續集成 324
7.12.1 Jenkins環境搭建 325
7.12.2 Robot Framework Jenkins外掛程式安裝 327
7.12.3 添加運行節點Slave 328
7.12.4 Robot Framework+Job接口自動化測試配置 332
7.12.5 Robot Framework+Job測試構建及結果查看 336
第8章 基於SELENIUM的WEB UI自動化測試 339
8.1 SELENIUM框架介紹 339
8.1.1 Selenium是什麼 339
8.1.2 Selenium與Robot Framework的關係 339
8.2 環境安裝 340
8.2.1 安裝依賴庫 340
8.2.2 查看庫版本 340
8.3 第一個示例 340
8.3.1 打開RIDE 341
8.3.2 創建項目 341
8.3.3 創建測試套件 342
8.3.4 創建測試用例 342
8.3.5 編寫測試用例 343
8.3.6 運行及查看結果 344
8.4 常用關鍵字 346
8.4.1 瀏覽器操作 346
8.4.2 iFrame操作 347
8.4.3 輸入操作 347
8.4.4 單擊元素操作 348
8.4.5 屬性獲取 349
8.4.6 元素等待操作 349
8.4.7 預期結果校驗 350
8.4.8 Cookie操作 351
8.4.9 其他常用關鍵字 352
8.4.10 小結 352
8.5 元素定位 353
8.5.1 常用定位工具 353
8.5.2 常用定位方法 355
8.6 多瀏覽器處理 357
8.6.1 Chrome瀏覽器 357
8.6.2 Firefox瀏覽器 358
8.6.3 Safari瀏覽器 360
8.6.4 PhantomJS 瀏覽器 362
8.7 ROBOT FRAMEWORK+SELENIUM WEB UI自動化測試項目實戰 363
8.7.1 實戰項目背景說明 363
8.7.2 Web UI項目分層設計 365
8.7.3 實戰一:Web UI登錄類測試設計 367
8.7.4 實戰二:Web UI套用類測試設計 372
8.7.5 實戰三:Web UI列表類測試設計 376
8.7.6 小結 379
第9章 基於APPIUM的移動端自動化測試 381
9.1 APPIUM框架介紹 381
9.1.1 Appium是什麼 381
9.1.2 Appium常見概念 382
9.1.3 Appium工作原理 383
9.1.4 Appium與Robot Framework的關係 385
9.2 環境搭建 385
9.2.1 Android自動化測試所需環境搭建 385
9.2.2 Appium框架所需環境搭建 388
9.2.3 iOS自動化測試所需環境搭建 391
9.3 APPIUM DESKTOP使用介紹 393
9.3.1 Appium Desktop的安裝 393
9.3.2 Appium Desktop的功能介紹 393
9.4 ROBOT FRAMEWORK+ APPIUM開展ANDROID自動化測試 400
9.4.1 需要了解的ADB知識 400
9.4.2 獲取Android設備序列號 402
9.4.3 獲取App包名和Activity名 403
9.4.4 第一個Appium Android自動化測試示例 406
9.4.5 獲取Android App控制項元素的方法 408
9.4.6 Android App元素常用定位方式 411
9.4.7 Appium Library常用關鍵字 413
9.4.8 Android自動化測試實戰:前期準備 414
9.4.9 Android自動化測試實戰:項目結構設計 416
9.4.10 Android自動化測試實戰:公共關鍵字設計 418
9.4.11 實戰一:實現Android App自動登錄測試 420
9.4.12 實戰二:測試Android App同頁面的多個同類型元素 423
9.4.13 實戰三:獲取並斷言Android App Toast提示信息 427
9.4.14 小結 428
9.5 ROBOT FRAMEWORK+APPIUM開展IOS自動化測試 429
9.5.1 iOS開發證書、描述檔案與Bundle ID的關係 430
9.5.2 iOS產出物的幾種格式 431
9.5.3 獲取iOS設備的UDID和App Bundle ID 432
9.5.4 iOS常用命令 434
9.5.5 iOS模擬器的安裝和使用 435
9.5.6 iOS模擬器simctl常用命令 437
9.5.7 Appium安裝配置WebDriverAgent 439
9.5.8 獲取iOS App控制項元素的三種方法 444
9.5.9 iOS App元素常用定位方式 448
9.5.10 第一個Appium iOS模擬器自動化測試示例 450
9.5.11 第一個Appium iOS真機自動化測試示例 452
9.5.12 Robot Framework + Appium實現iOS模擬器自動化測試 454
9.5.13 Robot Framework + Appium實現iOS真機自動化測試 459
9.5.14 小結 464
9.6 APPIUM+PYTHON開展H5混合套用自動化測試 465
9.6.1 在混合套用中識別H5頁面的幾種方法 465
9.6.2 混合套用元素定位整體思路 467
9.6.3 App WebView調試模式的檢查和開啟 467
9.6.4 利用DevTools遠程調試WebView 468
9.6.5 一個Appium+Python H5自動化測試示例 469
9.6.6 小結 475
9.7 ROBOT FRAMEWORK+ APPIUM開展小程式自動化測試 476
9.7.1 小程式和H5的區別 476
9.7.2 一個Appium+Python 小程式自動化測試示例 477
9.7.3 Robot Framework+ Appium實現小程式自動化測試 480
9.8 本章總結 486
第4部分 擴展篇
第10章 ROBOT FRAMEWORK框架部分源碼解析 490
10.1 ROBOT FRAMEWORK框架目錄結構 490
10.1.1 Robot Framework源碼位置 490
10.1.2 Robot Framework源碼目錄結構 492
10.2 ROBOT FRAMEWORK執行用例邏輯分析 500
10.3 ROBOT FRAMEWORK二次開發—命令行實時顯示日誌 511"
3.1.1 優勢和亮點 44
3.1.2 不足 45
3.1.3 Robot Framework生態系統 45
3.2 WINDOWS平台環境搭建 47
3.2.1 Python的安裝與配置 47
3.2.2 pip的安裝與升級 49
3.2.3 Robot Framework框架的安裝 50
3.2.4 wxPython框架的安裝 50
3.2.5 Robot Framework RIDE的安裝 51
3.3 MAC平台環境搭建 52
3.3.1 Python的安裝與配置 52
3.3.2 pip的安裝 53
3.3.3 Robot Framework框架的安裝 54
3.3.4 Mac OS X無法啟動RIDE的解決方案 54
3.4 LINUX平台環境搭建 57
3.4.1 Python的安裝與配置 57
3.4.2 pip的安裝與配置 58
3.4.3 Robot Framework框架的安裝 58
3.4.4 wxPython框架的安裝 59
3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3 59
3.5.1 Robot Framework RIDE 1.7.3的新特性 59
3.5.2 Robot Framework RIDE 1.7.3的安裝與升級 60
3.6 本章總結 60
第4章 PYTHON測試編程 62
4.1 語法規範 62
4.1.1 代碼編排 63
4.1.2 文檔編排 63
4.1.3 空格的使用 64
4.1.4 注釋及文檔描述 64
4.1.5 命名規範 65
4.1.6 編碼建議 66
4.2 PYTHON 2和PYTHON 3如何選擇 67
4.2.1 為什麼Python 2和Python 3都要學 67
4.2.2 Python 2和Python 3的主要特性區別 68
4.2.3 Python 2和Python 3同時兼容的技巧 73
4.3 快速入門 75
4.3.1 Python變數和賦值 75
4.3.2 Python字元串 77
4.3.3 Python列表和元組 78
4.3.4 Python字典 79
4.3.5 Python if分支條件 80
4.3.6 Python while循環 81
4.3.7 Python for循環 81
4.3.8 Python range內建函式 82
4.3.9 Python列表解析 83
4.3.10 Python open函式 85
4.3.11 Python錯誤和異常 88
4.3.12 Python函式 93
4.3.13 Python類 102
4.3.14 Python模組與包 110
4.3.15 Python常用內置函式 115
4.4 PYTHON編程常用技巧 116
4.4.1 Python拼接字元串的7種方式 116
4.4.2 Python列表推導、字典推導、集合推導 118
4.4.3 Python三元操作符用來進行條件賦值 119
4.4.4 Python同時疊代兩個列表 120
4.4.5 Python帶索引的列表疊代 120
4.4.6 Python 疊代列表組合 120
4.4.7 Python 統計元素出現次數 121
4.4.8 Python 找出列表中出現次數最多的元素 121
4.4.9 Python一鍵啟用檔案伺服器 122
4.4.10 Python 快速拼接構造列表 122
4.4.11 Python 一行代碼搜尋字元串的多個前後綴 122
4.4.12 Python實現真正的switch-case語句 123
4.4.13 Python實例方法、靜態方法、類方法 123
4.4.14 Python求集合併集、交集、差集 124
4.4.15 Python去除列表重複元素的幾種方法 125
第5章 ROBOT FRAMEWORK功能的使用 127
5.1 RIDE兩種啟動方式 127
5.2 RIDE功能介紹 128
5.2.1 選單欄 128
5.2.2 工具列 131
5.2.3 案例區 131
5.2.4 工作區 131
5.2.5 常用快捷鍵 132
5.3 常用ROBOT FRAMEWORK編輯器工具 133
5.3.1 PyCharm 133
5.3.2 Sublime Text 138
5.3.3 其他工具 140
5.4 測試項目、測試套件和測試用例 141
5.4.1 測試項目 141
5.4.2 測試套件 141
5.4.3 測試用例 142
5.5 資源檔案 143
5.5.1 內部資源檔案 143
5.5.2 外部資源檔案 143
5.6 常量和變數 144
5.6.1 變數與常量介紹 144
5.6.2 變數作用域 145
5.6.3 Robot Framework內置變數 146
5.6.4 標量變數的定義和使用 147
5.6.5 列表變數的定義和使用 149
5.6.6 字典變數的定義和使用 151
5.6.7 變數知識補充 153
5.7 用戶關鍵字 153
5.7.1 關鍵字Arguments 154
5.7.2 關鍵字Teardown 160
5.7.3 關鍵字Return 161
5.8 EDIT選項卡 162
5.8.1 測試項目Edit選項卡 162
5.8.2 測試套件Edit選項卡 163
5.8.3 測試用例Edit選項卡 165
5.8.4 小結 166
5.9 TEXT EDIT選項卡 167
5.10 RUN選項卡 168
5.10.1 自動保存 168
5.10.2 失敗暫停 168
5.10.3 Arguments參數配置 169
5.10.4 Only run tests with these tags 170
5.10.5 Skip tests with these tags 171
5.10.6 查看測試報告和測試日誌 172
5.11 ROBOT FRAMEWORK常用技巧 173
5.11.1 If分支結構 173
5.11.2 For循環結構 174
5.11.3 列表變數的用法和元素獲取 176
5.11.4 變數使用方法補充 177
5.11.5 搜尋關鍵字 178
5.11.6 測試用例執行六大技巧 179
5.11.7 測試標籤技巧 181
5.11.8 Setup和Teardown 183
5.11.9 Pybot和Robot命令 183
5.11.10 Jybot模式安裝與運行 185
第6章 ROBOT FRAMEWORK常用函式館 189
6.1 內置庫介紹 189
6.1.1 標準庫 189
6.1.2 擴展庫 190
6.2 EVALUATE萬能關鍵字 191
6.3 類型轉換 194
6.3.1 Convert To String:轉換成字元串 194
6.3.2 Convert To Integer:轉換成整數 194
6.3.3 Convert To Number:轉換成符點數 194
6.3.4 Convert To Boolean:轉換成布爾值 195
6.3.5 Encode String To Bytes:字元編碼 196
6.4 變數操作 196
6.4.1 Log Variables:列印變數 196
6.4.2 Import Variables:導入變數 196
6.4.3 Set Variable:設定變數 197
6.4.4 Set Global Variable:設定全局變數 197
6.4.5 Set Suite Variable:設定測試套件變數 198
6.4.6 Set Test Variable:設定測試用例變數 198
6.4.7 Set Variable If:當條件滿足時設定變數 199
6.4.8 Get Variables:獲取所有變數 199
6.4.9 Get Variable Value:獲取變數值 199
6.4.10 Get Environment Variables:獲取所有環境變數 200
6.4.11 Get Environment Variable:獲取環境變數值 200
6.4.12 Set Environment Variable:設定環境變數 200
6.5 關鍵字操作 201
6.5.1 Run Keyword:運行關鍵字 201
6.5.2 Run Keyword If:當條件滿足時運行關鍵字 201
6.5.3 Run Keyword Unless:當條件不滿足時運行關鍵字 201
6.5.4 Repeat Keyword:重複運行某關鍵字 202
6.5.5 Run Keywords:運行多個關鍵字 202
6.5.6 Run Keyword And Return:運行關鍵字並返回結果 202
6.5.7 Run Keyword And Return If:當條件滿足時運行關鍵字並返回結果 203
6.5.8 Run Keyword And Continue On Failure:失敗後仍運行指定關鍵字 203
6.5.9 Run Keyword And Ignore Error:運行關鍵字並忽略錯誤 203
6.5.10 Run Keyword If All Tests Passed:所有測試用例通過後運行關鍵字 203
6.5.11 Run Keyword If Any Tests Failed:任一測試用例失敗後運行關鍵字 204
6.5.12 Run Keyword If Test Passed:測試用例通過後運行關鍵字 204
6.5.13 Run Keyword If Test Failed:測試用例失敗後運行關鍵字 204
6.5.14 Run Keyword If Timeout Occurred:測試用例逾時後運行關鍵字 204
6.6 條件與循環 205
6.6.1 Continue For Loop:直接繼續下一次循環 205
6.6.2 Continue For Loop If:當條件滿足時繼續下一次循環 205
6.6.3 Exit For Loop:立即退出循環 205
6.6.4 Exit For Loop If:當條件滿足時退出循環 206
6.7 斷言操作 206
6.7.1 Should (Not) Be Empty:斷言是否為空 206
6.7.2 Should (Not) Be Equal:斷言是否相等 207
6.7.3 Should (Not) Be Equal As Strings:斷言作為字元串是否相等 207
6.7.4 Should (Not) Be Equal As Integers:斷言作為整數是否相等 208
6.7.5 Should (Not) Be True:斷言是否為真 208
6.7.6 Should (Not) Contain:斷言是否包含某元素 209
6.7.7 Should (Not) Contain Any:斷言是否包含任一元素 210
6.7.8 Should Contain X Times:斷言某元素是否被包含指定次數 210
6.7.9 Should (Not) Start With:斷言是否以某某開頭 210
6.7.10 Should (Not) End With:斷言是否以某某結尾 211
6.7.11 Should (Not) Match Regexp:斷言是否匹配正則表達式 211
6.7.12 Length Should Be:斷言長度是否相等 212
6.7.13 Keyword Should Exist:斷言關鍵字是否存在 213
6.7.14 List Should (Not) Contain Value:斷言列表是否包含某值 213
6.7.15 Lists Should Be Equal:斷言兩個列表是否相等 213
6.7.16 List Should Not Contain Duplicates:斷言列表不包含重複項 214
6.7.17 Dictionary Should Contain Item:斷言字典是否包含某鍵值對 214
6.7.18 Dictionary Should (Not) Contain Key:斷言字典是否包含某Key值 214
6.7.19 Dictionary Should (Not) Contain Value:斷言字典是否包含某Value值 215
6.7.20 Dictionaries Should Be Equal:斷言給定的字典是否相等 215
6.8 集合操作 215
6.8.1 Create List:創建列表 215
6.8.2 Log List:列印輸出列表中的值 216
6.8.3 Append To List:添加元素到列表 216
6.8.4 Insert Into List:插入元素到列表 216
6.8.5 Copy List:複製列表 217
6.8.6 Get From List:從列表中取值 217
6.8.7 Get Index From List:獲取列表值對應的索引位置 217
6.8.8 Reverse List:反轉列表 218
6.8.9 Set List Value:設定列表值 218
6.8.10 Sort List:排序列表 219
6.8.11 Remove From List:移除列表中指定位置的元素 219
6.8.12 Remove Values From List:從列表中移除給定的所有值 219
6.8.13 Remove Duplicates:從列表中移除重複項 220
6.8.14 Create Dictionary:創建字典 220
6.8.15 Log Dictionary:列印字典 220
6.8.16 Set To Dictionary:添加元素到字典 221
6.8.17 Copy Dictionary:複製字典 221
6.8.18 Get Dictionary Items:獲取字典中的所有元素 221
6.8.19 Get Dictionary Keys:獲取字典中的所有Key值 222
6.8.20 Get Dictionary Values:獲取字典中的所有Value值 222
6.8.21 Get From Dictionary:獲取字典中的指定Key值 222
6.8.22 Pop From Dictionary:刪除並返回字典中的指定Key值 222
6.8.23 Remove From Dictionary:刪除字典中的指定Key值 223
6.9 常用關鍵字 223
6.9.1 Log:列印輸出 223
6.9.2 Log Many:列印各元素值 224
6.9.3 Log To Console:列印到控制台 225
6.9.4 Sleep:延時等待 225
6.9.5 Comment:添加注釋 226
6.9.6 Call Method:調用方法 226
6.9.7 Get Count:獲取數量 227
6.9.8 Get Length:獲取長度 227
6.9.9 Get Time:獲取時間 227
6.9.10 Pass Execution:標記測試用例執行成功 229
6.9.11 Pass Execution If:當條件滿足時標記測試用例執行成功 229
6.9.12 Fail:標記當前測試用例失敗 229
6.9.13 Fatal Error:停止執行所有測試用例 230
6.9.14 Import Library:導入測試庫 230
第3部分 項目實戰篇
第7章 基於HTTP接口的自動化測試 234
7.1 接口測試掃盲 234
7.1.1 接口的本質 234
7.1.2 接口有哪些類別 235
7.1.3 什麼是接口測試 236
7.1.4 接口測試的重要性 236
7.1.5 接口測試的關注點 237
7.1.6 接口測試的介入時機 238
7.1.7 接口測試的根本目標 238
7.2 開展接口測試的基本流程 239
7.3 接口測試用例設計 240
7.3.1 三類對象抽象模型 240
7.3.2 接口測試三層模型 240
7.3.3 接口輸入用例設計 241
7.3.4 接口邏輯用例設計 243
7.3.5 接口輸出用例設計 245
7.3.6 其他部分用例設計 246
7.3.7 一個完整的例子 247
7.3.8 小結 250
7.4 環境依賴安裝 250
7.4.1 所需第三方庫列表 250
7.4.2 安裝Requests依賴庫 251
7.4.3 安裝RequestsLibrary依賴庫 251
7.4.4 安裝HttpLibrary.HTTP依賴庫 251
7.5 接口測試設計規範 252
7.5.1 接口測試整體分層結構 252
7.5.2 接口測試功能劃分原則 254
7.5.3 接口測試套件命名約定 255
7.5.4 接口測試用例命名與分類 255
7.6 接口測試項目實戰:最佳實踐 257
7.6.1 實戰項目接口分析 257
7.6.2 實戰項目框架設計 260
7.6.3 實戰項目業務分層 262
7.6.4 實戰項目模組劃分 264
7.6.5 公共請求方法 265
7.6.6 業務資源檔案 271
7.7 接口測試項目實戰:用例設計 273
7.7.1 實戰一:登錄型接口功能測試設計 274
7.7.2 實戰二:列表型接口功能測試設計 286
7.7.3 實戰三:信息型接口功能測試設計 295
7.7.4 實戰四:基於業務場景下的接口組合測試設計 301
7.8 接口測試項目實戰:成果展示 307
7.9 ROBOT FRAMEWORK實戰常用技巧 308
7.9.1 一套測試用例支持多個環境運行 309
7.9.2 測試用例標籤分類策略 311
7.9.3 測試套件和測試用例Hook 313
7.9.4 動態構造測試數據 315
7.9.5 自定義Python方法 317
7.10 ROBOT FRAMEWORK開發系統關鍵字 319
7.11 ROBOT FRAMEWORK+GITLAB代碼管理 323
7.12 ROBOT FRAMEWORK+JENKINS構建持續集成 324
7.12.1 Jenkins環境搭建 325
7.12.2 Robot Framework Jenkins外掛程式安裝 327
7.12.3 添加運行節點Slave 328
7.12.4 Robot Framework+Job接口自動化測試配置 332
7.12.5 Robot Framework+Job測試構建及結果查看 336
第8章 基於SELENIUM的WEB UI自動化測試 339
8.1 SELENIUM框架介紹 339
8.1.1 Selenium是什麼 339
8.1.2 Selenium與Robot Framework的關係 339
8.2 環境安裝 340
8.2.1 安裝依賴庫 340
8.2.2 查看庫版本 340
8.3 第一個示例 340
8.3.1 打開RIDE 341
8.3.2 創建項目 341
8.3.3 創建測試套件 342
8.3.4 創建測試用例 342
8.3.5 編寫測試用例 343
8.3.6 運行及查看結果 344
8.4 常用關鍵字 346
8.4.1 瀏覽器操作 346
8.4.2 iFrame操作 347
8.4.3 輸入操作 347
8.4.4 單擊元素操作 348
8.4.5 屬性獲取 349
8.4.6 元素等待操作 349
8.4.7 預期結果校驗 350
8.4.8 Cookie操作 351
8.4.9 其他常用關鍵字 352
8.4.10 小結 352
8.5 元素定位 353
8.5.1 常用定位工具 353
8.5.2 常用定位方法 355
8.6 多瀏覽器處理 357
8.6.1 Chrome瀏覽器 357
8.6.2 Firefox瀏覽器 358
8.6.3 Safari瀏覽器 360
8.6.4 PhantomJS 瀏覽器 362
8.7 ROBOT FRAMEWORK+SELENIUM WEB UI自動化測試項目實戰 363
8.7.1 實戰項目背景說明 363
8.7.2 Web UI項目分層設計 365
8.7.3 實戰一:Web UI登錄類測試設計 367
8.7.4 實戰二:Web UI套用類測試設計 372
8.7.5 實戰三:Web UI列表類測試設計 376
8.7.6 小結 379
第9章 基於APPIUM的移動端自動化測試 381
9.1 APPIUM框架介紹 381
9.1.1 Appium是什麼 381
9.1.2 Appium常見概念 382
9.1.3 Appium工作原理 383
9.1.4 Appium與Robot Framework的關係 385
9.2 環境搭建 385
9.2.1 Android自動化測試所需環境搭建 385
9.2.2 Appium框架所需環境搭建 388
9.2.3 iOS自動化測試所需環境搭建 391
9.3 APPIUM DESKTOP使用介紹 393
9.3.1 Appium Desktop的安裝 393
9.3.2 Appium Desktop的功能介紹 393
9.4 ROBOT FRAMEWORK+ APPIUM開展ANDROID自動化測試 400
9.4.1 需要了解的ADB知識 400
9.4.2 獲取Android設備序列號 402
9.4.3 獲取App包名和Activity名 403
9.4.4 第一個Appium Android自動化測試示例 406
9.4.5 獲取Android App控制項元素的方法 408
9.4.6 Android App元素常用定位方式 411
9.4.7 Appium Library常用關鍵字 413
9.4.8 Android自動化測試實戰:前期準備 414
9.4.9 Android自動化測試實戰:項目結構設計 416
9.4.10 Android自動化測試實戰:公共關鍵字設計 418
9.4.11 實戰一:實現Android App自動登錄測試 420
9.4.12 實戰二:測試Android App同頁面的多個同類型元素 423
9.4.13 實戰三:獲取並斷言Android App Toast提示信息 427
9.4.14 小結 428
9.5 ROBOT FRAMEWORK+APPIUM開展IOS自動化測試 429
9.5.1 iOS開發證書、描述檔案與Bundle ID的關係 430
9.5.2 iOS產出物的幾種格式 431
9.5.3 獲取iOS設備的UDID和App Bundle ID 432
9.5.4 iOS常用命令 434
9.5.5 iOS模擬器的安裝和使用 435
9.5.6 iOS模擬器simctl常用命令 437
9.5.7 Appium安裝配置WebDriverAgent 439
9.5.8 獲取iOS App控制項元素的三種方法 444
9.5.9 iOS App元素常用定位方式 448
9.5.10 第一個Appium iOS模擬器自動化測試示例 450
9.5.11 第一個Appium iOS真機自動化測試示例 452
9.5.12 Robot Framework + Appium實現iOS模擬器自動化測試 454
9.5.13 Robot Framework + Appium實現iOS真機自動化測試 459
9.5.14 小結 464
9.6 APPIUM+PYTHON開展H5混合套用自動化測試 465
9.6.1 在混合套用中識別H5頁面的幾種方法 465
9.6.2 混合套用元素定位整體思路 467
9.6.3 App WebView調試模式的檢查和開啟 467
9.6.4 利用DevTools遠程調試WebView 468
9.6.5 一個Appium+Python H5自動化測試示例 469
9.6.6 小結 475
9.7 ROBOT FRAMEWORK+ APPIUM開展小程式自動化測試 476
9.7.1 小程式和H5的區別 476
9.7.2 一個Appium+Python 小程式自動化測試示例 477
9.7.3 Robot Framework+ Appium實現小程式自動化測試 480
9.8 本章總結 486
第4部分 擴展篇
第10章 ROBOT FRAMEWORK框架部分源碼解析 490
10.1 ROBOT FRAMEWORK框架目錄結構 490
10.1.1 Robot Framework源碼位置 490
10.1.2 Robot Framework源碼目錄結構 492
10.2 ROBOT FRAMEWORK執行用例邏輯分析 500
10.3 ROBOT FRAMEWORK二次開發—命令行實時顯示日誌 511,第1部分 入門篇
第1章 大話測試行業 2
1.1 測試行業現狀分析 2
1.2 未來發展趨勢 4
1.3 測試工程師的核心競爭力 8
1.4 測試知識體系 12
1.5 測試發展能力圖譜及推薦書單 23
1.6 本章總結 25
第2章 認識自動化測試 26
2.1 為什麼自動化測試是必要的 26
2.2 手工測試與自動化測試的區別 28
2.3 自動化測試常見誤區 29
2.4 自動化測試的優劣分析 31
2.5 提倡分層自動化測試 32
2.6 什麼項目適合做自動化測試 33
2.6.1 什麼樣的項目或團隊適合做自動化測試 34
2.6.2 不適合做自動化測試的項目有什麼特點 35
2.7 做好自動化測試需要具備哪些能力 36
2.8 自動化測試引入時機和適用場景 37
2.9 常用主流工具有哪些 38
2.10 自動化測試面臨的挑戰 41
2.11 本章總結 41
第2部分 基礎學習篇
第3章 ROBOT FRAMEWORK框架準備 44
3.1 ROBOT FRAMEWORK框架介紹 44
3.1.1 優勢和亮點 44
3.1.2 不足 45
3.1.3 Robot Framework生態系統 45
3.2 WINDOWS平台環境搭建 47
3.2.1 Python的安裝與配置 47
3.2.2 pip的安裝與升級 49
3.2.3 Robot Framework框架的安裝 50
3.2.4 wxPython框架的安裝 50
3.2.5 Robot Framework RIDE的安裝 51
3.3 MAC平台環境搭建 52
3.3.1 Python的安裝與配置 52
3.3.2 pip的安裝 53
3.3.3 Robot Framework框架的安裝 54
3.3.4 Mac OS X無法啟動RIDE的解決方案 54
3.4 LINUX平台環境搭建 57
3.4.1 Python的安裝與配置 57
3.4.2 pip的安裝與配置 58
3.4.3 Robot Framework框架的安裝 58
3.4.4 wxPython框架的安裝 59
3.5 ROBOT FRAMEWORK RIDE支持PYTHON 3 59
3.5.1 Robot Framework RIDE 1.7.3的新特性 59
3.5.2 Robot Framework RIDE 1.7.3的安裝與升級 60
3.6 本章總結 60
第4章 PYTHON測試編程 62
4.1 語法規範 62
4.1.1 代碼編排 63
4.1.2 文檔編排 63
4.1.3 空格的使用 64
4.1.4 注釋及文檔描述 64
4.1.5 命名規範 65
4.1.6 編碼建議 66
4.2 PYTHON 2和PYTHON 3如何選擇 67
4.2.1 為什麼Python 2和Python 3都要學 67
4.2.2 Python 2和Python 3的主要特性區別 68
4.2.3 Python 2和Python 3同時兼容的技巧 73
4.3 快速入門 75
4.3.1 Python變數和賦值 75
4.3.2 Python字元串 77
4.3.3 Python列表和元組 78
4.3.4 Python字典 79
4.3.5 Python if分支條件 80
4.3.6 Python while循環 81
4.3.7 Python for循環 81
4.3.8 Python range內建函式 82
4.3.9 Python列表解析 83
4.3.10 Python open函式 85
4.3.11 Python錯誤和異常 88
4.3.12 Python函式 93
4.3.13 Python類 102
4.3.14 Python模組與包 110
4.3.15 Python常用內置函式 115
4.4 PYTHON編程常用技巧 116
4.4.1 Python拼接字元串的7種方式 116
4.4.2 Python列表推導、字典推導、集合推導 118
4.4.3 Python三元操作符用來進行條件賦值 119
4.4.4 Python同時疊代兩個列表 120
4.4.5 Python帶索引的列表疊代 120
4.4.6 Python 疊代列表組合 120
4.4.7 Python 統計元素出現次數 121
4.4.8 Python 找出列表中出現次數最多的元素 121
4.4.9 Python一鍵啟用檔案伺服器 122
4.4.10 Python 快速拼接構造列表 122
4.4.11 Python 一行代碼搜尋字元串的多個前後綴 122
4.4.12 Python實現真正的switch-case語句 123
4.4.13 Python實例方法、靜態方法、類方法 123
4.4.14 Python求集合併集、交集、差集 124
4.4.15 Python去除列表重複元素的幾種方法 125
第5章 ROBOT FRAMEWORK功能的使用 127
5.1 RIDE兩種啟動方式 127
5.2 RIDE功能介紹 128
5.2.1 選單欄 128
5.2.2 工具列 131
5.2.3 案例區 131
5.2.4 工作區 131
5.2.5 常用快捷鍵 132
5.3 常用ROBOT FRAMEWORK編輯器工具 133
5.3.1 PyCharm 133
5.3.2 Sublime Text 138
5.3.3 其他工具 140
5.4 測試項目、測試套件和測試用例 141
5.4.1 測試項目 141
5.4.2 測試套件 141
5.4.3 測試用例 142
5.5 資源檔案 143
5.5.1 內部資源檔案 143
5.5.2 外部資源檔案 143
5.6 常量和變數 144
5.6.1 變數與常量介紹 144
5.6.2 變數作用域 145
5.6.3 Robot Framework內置變數 146
5.6.4 標量變數的定義和使用 147
5.6.5 列表變數的定義和使用 149
5.6.6 字典變數的定義和使用 151
5.6.7 變數知識補充 153
5.7 用戶關鍵字 153
5.7.1 關鍵字Arguments 154
5.7.2 關鍵字Teardown 160
5.7.3 關鍵字Return 161
5.8 EDIT選項卡 162
5.8.1 測試項目Edit選項卡 162
5.8.2 測試套件Edit選項卡 163
5.8.3 測試用例Edit選項卡 165
5.8.4 小結 166
5.9 TEXT EDIT選項卡 167
5.10 RUN選項卡 168
5.10.1 自動保存 168
5.10.2 失敗暫停 168
5.10.3 Arguments參數配置 169
5.10.4 Only run tests with these tags 170
5.10.5 Skip tests with these tags 171
5.10.6 查看測試報告和測試日誌 172
5.11 ROBOT FRAMEWORK常用技巧 173
5.11.1 If分支結構 173
5.11.2 For循環結構 174
5.11.3 列表變數的用法和元素獲取 176
5.11.4 變數使用方法補充 177
5.11.5 搜尋關鍵字 178
5.11.6 測試用例執行六大技巧 179
5.11.7 測試標籤技巧 181
5.11.8 Setup和Teardown 183
5.11.9 Pybot和Robot命令 183
5.11.10 Jybot模式安裝與運行 185
第6章 ROBOT FRAMEWORK常用函式館 189
6.1 內置庫介紹 189
6.1.1 標準庫 189
6.1.2 擴展庫 190
6.2 EVALUATE萬能關鍵字 191
6.3 類型轉換 194
6.3.1 Convert To String:轉換成字元串 194
6.3.2 Convert To Integer:轉換成整數 194
6.3.3 Convert To Number:轉換成符點數 194
6.3.4 Convert To Boolean:轉換成布爾值 195
6.3.5 Encode String To Bytes:字元編碼 196
6.4 變數操作 196
6.4.1 Log Variables:列印變數 196
6.4.2 Import Variables:導入變數 196
6.4.3 Set Variable:設定變數 197
6.4.4 Set Global Variable:設定全局變數 197
6.4.5 Set Suite Variable:設定測試套件變數 198
6.4.6 Set Test Variable:設定測試用例變數 198
6.4.7 Set Variable If:當條件滿足時設定變數 199
6.4.8 Get Variables:獲取所有變數 199
6.4.9 Get Variable Value:獲取變數值 199
6.4.10 Get Environment Variables:獲取所有環境變數 200
6.4.11 Get Environment Variable:獲取環境變數值 200
6.4.12 Set Environment Variable:設定環境變數 200
6.5 關鍵字操作 201
6.5.1 Run Keyword:運行關鍵字 201
6.5.2 Run Keyword If:當條件滿足時運行關鍵字 201
6.5.3 Run Keyword Unless:當條件不滿足時運行關鍵字 201
6.5.4 Repeat Keyword:重複運行某關鍵字 202
6.5.5 Run Keywords:運行多個關鍵字 202
6.5.6 Run Keyword And Return:運行關鍵字並返回結果 202
6.5.7 Run Keyword And Return If:當條件滿足時運行關鍵字並返回結果 203
6.5.8 Run Keyword And Continue On Failure:失敗後仍運行指定關鍵字 203
6.5.9 Run Keyword And Ignore Error:運行關鍵字並忽略錯誤 203
6.5.10 Run Keyword If All Tests Passed:所有測試用例通過後運行關鍵字 203
6.5.11 Run Keyword If Any Tests Failed:任一測試用例失敗後運行關鍵字 204
6.5.12 Run Keyword If Test Passed:測試用例通過後運行關鍵字 204
6.5.13 Run Keyword If Test Failed:測試用例失敗後運行關鍵字 204
6.5.14 Run Keyword If Timeout Occurred:測試用例逾時後運行關鍵字 204
6.6 條件與循環 205
6.6.1 Continue For Loop:直接繼續下一次循環 205
6.6.2 Continue For Loop If:當條件滿足時繼續下一次循環 205
6.6.3 Exit For Loop:立即退出循環 205
6.6.4 Exit For Loop If:當條件滿足時退出循環 206
6.7 斷言操作 206
6.7.1 Should (Not) Be Empty:斷言是否為空 206
6.7.2 Should (Not) Be Equal:斷言是否相等 207
6.7.3 Should (Not) Be Equal As Strings:斷言作為字元串是否相等 207
6.7.4 Should (Not) Be Equal As Integers:斷言作為整數是否相等 208
6.7.5 Should (Not) Be True:斷言是否為真 208
6.7.6 Should (Not) Contain:斷言是否包含某元素 209
6.7.7 Should (Not) Contain Any:斷言是否包含任一元素 210
6.7.8 Should Contain X Times:斷言某元素是否被包含指定次數 210
6.7.9 Should (Not) Start With:斷言是否以某某開頭 210
6.7.10 Should (Not) End With:斷言是否以某某結尾 211
6.7.11 Should (Not) Match Regexp:斷言是否匹配正則表達式 211
6.7.12 Length Should Be:斷言長度是否相等 212
6.7.13 Keyword Should Exist:斷言關鍵字是否存在 213
6.7.14 List Should (Not) Contain Value:斷言列表是否包含某值 213
6.7.15 Lists Should Be Equal:斷言兩個列表是否相等 213
6.7.16 List Should Not Contain Duplicates:斷言列表不包含重複項 214
6.7.17 Dictionary Should Contain Item:斷言字典是否包含某鍵值對 214
6.7.18 Dictionary Should (Not) Contain Key:斷言字典是否包含某Key值 214
6.7.19 Dictionary Should (Not) Contain Value:斷言字典是否包含某Value值 215
6.7.20 Dictionaries Should Be Equal:斷言給定的字典是否相等 215
6.8 集合操作 215
6.8.1 Create List:創建列表 215
6.8.2 Log List:列印輸出列表中的值 216
6.8.3 Append To List:添加元素到列表 216
6.8.4 Insert Into List:插入元素到列表 216
6.8.5 Copy List:複製列表 217
6.8.6 Get From List:從列表中取值 217
6.8.7 Get Index From List:獲取列表值對應的索引位置 217
6.8.8 Reverse List:反轉列表 218
6.8.9 Set List Value:設定列表值 218
6.8.10 Sort List:排序列表 219
6.8.11 Remove From List:移除列表中指定位置的元素 219
6.8.12 Remove Values From List:從列表中移除給定的所有值 219
6.8.13 Remove Duplicates:從列表中移除重複項 220
6.8.14 Create Dictionary:創建字典 220
6.8.15 Log Dictionary:列印字典 220
6.8.16 Set To Dictionary:添加元素到字典 221
6.8.17 Copy Dictionary:複製字典 221
6.8.18 Get Dictionary Items:獲取字典中的所有元素 221
6.8.19 Get Dictionary Keys:獲取字典中的所有Key值 222
6.8.20 Get Dictionary Values:獲取字典中的所有Value值 222
6.8.21 Get From Dictionary:獲取字典中的指定Key值 222
6.8.22 Pop From Dictionary:刪除並返回字典中的指定Key值 222
6.8.23 Remove From Dictionary:刪除字典中的指定Key值 223
6.9 常用關鍵字 223
6.9.1 Log:列印輸出 223
6.9.2 Log Many:列印各元素值 224
6.9.3 Log To Console:列印到控制台 225
6.9.4 Sleep:延時等待 225
6.9.5 Comment:添加注釋 226
6.9.6 Call Method:調用方法 226
6.9.7 Get Count:獲取數量 227
6.9.8 Get Length:獲取長度 227
6.9.9 Get Time:獲取時間 227
6.9.10 Pass Execution:標記測試用例執行成功 229
6.9.11 Pass Execution If:當條件滿足時標記測試用例執行成功 229
6.9.12 Fail:標記當前測試用例失敗 229
6.9.13 Fatal Error:停止執行所有測試用例 230
6.9.14 Import Library:導入測試庫 230
第3部分 項目實戰篇
第7章 基於HTTP接口的自動化測試 234
7.1 接口測試掃盲 234
7.1.1 接口的本質 234
7.1.2 接口有哪些類別 235
7.1.3 什麼是接口測試 236
7.1.4 接口測試的重要性 236
7.1.5 接口測試的關注點 237
7.1.6 接口測試的介入時機 238
7.1.7 接口測試的根本目標 238
7.2 開展接口測試的基本流程 239
7.3 接口測試用例設計 240
7.3.1 三類對象抽象模型 240
7.3.2 接口測試三層模型 240
7.3.3 接口輸入用例設計 241
7.3.4 接口邏輯用例設計 243
7.3.5 接口輸出用例設計 245
7.3.6 其他部分用例設計 246
7.3.7 一個完整的例子 247
7.3.8 小結 250
7.4 環境依賴安裝 250
7.4.1 所需第三方庫列表 250
7.4.2 安裝Requests依賴庫 251
7.4.3 安裝RequestsLibrary依賴庫 251
7.4.4 安裝HttpLibrary.HTTP依賴庫 251
7.5 接口測試設計規範 252
7.5.1 接口測試整體分層結構 252
7.5.2 接口測試功能劃分原則 254
7.5.3 接口測試套件命名約定 255
7.5.4 接口測試用例命名與分類 255
7.6 接口測試項目實戰:最佳實踐 257
7.6.1 實戰項目接口分析 257
7.6.2 實戰項目框架設計 260
7.6.3 實戰項目業務分層 262
7.6.4 實戰項目模組劃分 264
7.6.5 公共請求方法 265
7.6.6 業務資源檔案 271
7.7 接口測試項目實戰:用例設計 273
7.7.1 實戰一:登錄型接口功能測試設計 274
7.7.2 實戰二:列表型接口功能測試設計 286
7.7.3 實戰三:信息型接口功能測試設計 295
7.7.4 實戰四:基於業務場景下的接口組合測試設計 301
7.8 接口測試項目實戰:成果展示 307
7.9 ROBOT FRAMEWORK實戰常用技巧 308
7.9.1 一套測試用例支持多個環境運行 309
7.9.2 測試用例標籤分類策略 311
7.9.3 測試套件和測試用例Hook 313
7.9.4 動態構造測試數據 315
7.9.5 自定義Python方法 317
7.10 ROBOT FRAMEWORK開發系統關鍵字 319
7.11 ROBOT FRAMEWORK+GITLAB代碼管理 323
7.12 ROBOT FRAMEWORK+JENKINS構建持續集成 324
7.12.1 Jenkins環境搭建 325
7.12.2 Robot Framework Jenkins外掛程式安裝 327
7.12.3 添加運行節點Slave 328
7.12.4 Robot Framework+Job接口自動化測試配置 332
7.12.5 Robot Framework+Job測試構建及結果查看 336
第8章 基於SELENIUM的WEB UI自動化測試 339
8.1 SELENIUM框架介紹 339
8.1.1 Selenium是什麼 339
8.1.2 Selenium與Robot Framework的關係 339
8.2 環境安裝 340
8.2.1 安裝依賴庫 340
8.2.2 查看庫版本 340
8.3 第一個示例 340
8.3.1 打開RIDE 341
8.3.2 創建項目 341
8.3.3 創建測試套件 342
8.3.4 創建測試用例 342
8.3.5 編寫測試用例 343
8.3.6 運行及查看結果 344
8.4 常用關鍵字 346
8.4.1 瀏覽器操作 346
8.4.2 iFrame操作 347
8.4.3 輸入操作 347
8.4.4 單擊元素操作 348
8.4.5 屬性獲取 349
8.4.6 元素等待操作 349
8.4.7 預期結果校驗 350
8.4.8 Cookie操作 351
8.4.9 其他常用關鍵字 352
8.4.10 小結 352
8.5 元素定位 353
8.5.1 常用定位工具 353
8.5.2 常用定位方法 355
8.6 多瀏覽器處理 357
8.6.1 Chrome瀏覽器 357
8.6.2 Firefox瀏覽器 358
8.6.3 Safari瀏覽器 360
8.6.4 PhantomJS 瀏覽器 362
8.7 ROBOT FRAMEWORK+SELENIUM WEB UI自動化測試項目實戰 363
8.7.1 實戰項目背景說明 363
8.7.2 Web UI項目分層設計 365
8.7.3 實戰一:Web UI登錄類測試設計 367
8.7.4 實戰二:Web UI套用類測試設計 372
8.7.5 實戰三:Web UI列表類測試設計 376
8.7.6 小結 379
第9章 基於APPIUM的移動端自動化測試 381
9.1 APPIUM框架介紹 381
9.1.1 Appium是什麼 381
9.1.2 Appium常見概念 382
9.1.3 Appium工作原理 383
9.1.4 Appium與Robot Framework的關係 385
9.2 環境搭建 385
9.2.1 Android自動化測試所需環境搭建 385
9.2.2 Appium框架所需環境搭建 388
9.2.3 iOS自動化測試所需環境搭建 391
9.3 APPIUM DESKTOP使用介紹 393
9.3.1 Appium Desktop的安裝 393
9.3.2 Appium Desktop的功能介紹 393
9.4 ROBOT FRAMEWORK+ APPIUM開展ANDROID自動化測試 400
9.4.1 需要了解的ADB知識 400
9.4.2 獲取Android設備序列號 402
9.4.3 獲取App包名和Activity名 403
9.4.4 第一個Appium Android自動化測試示例 406
9.4.5 獲取Android App控制項元素的方法 408
9.4.6 Android App元素常用定位方式 411
9.4.7 Appium Library常用關鍵字 413
9.4.8 Android自動化測試實戰:前期準備 414
9.4.9 Android自動化測試實戰:項目結構設計 416
9.4.10 Android自動化測試實戰:公共關鍵字設計 418
9.4.11 實戰一:實現Android App自動登錄測試 420
9.4.12 實戰二:測試Android App同頁面的多個同類型元素 423
9.4.13 實戰三:獲取並斷言Android App Toast提示信息 427
9.4.14 小結 428
9.5 ROBOT FRAMEWORK+APPIUM開展IOS自動化測試 429
9.5.1 iOS開發證書、描述檔案與Bundle ID的關係 430
9.5.2 iOS產出物的幾種格式 431
9.5.3 獲取iOS設備的UDID和App Bundle ID 432
9.5.4 iOS常用命令 434
9.5.5 iOS模擬器的安裝和使用 435
9.5.6 iOS模擬器simctl常用命令 437
9.5.7 Appium安裝配置WebDriverAgent 439
9.5.8 獲取iOS App控制項元素的三種方法 444
9.5.9 iOS App元素常用定位方式 448
9.5.10 第一個Appium iOS模擬器自動化測試示例 450
9.5.11 第一個Appium iOS真機自動化測試示例 452
9.5.12 Robot Framework + Appium實現iOS模擬器自動化測試 454
9.5.13 Robot Framework + Appium實現iOS真機自動化測試 459
9.5.14 小結 464
9.6 APPIUM+PYTHON開展H5混合套用自動化測試 465
9.6.1 在混合套用中識別H5頁面的幾種方法 465
9.6.2 混合套用元素定位整體思路 467
9.6.3 App WebView調試模式的檢查和開啟 467
9.6.4 利用DevTools遠程調試WebView 468
9.6.5 一個Appium+Python H5自動化測試示例 469
9.6.6 小結 475
9.7 ROBOT FRAMEWORK+ APPIUM開展小程式自動化測試 476
9.7.1 小程式和H5的區別 476
9.7.2 一個Appium+Python 小程式自動化測試示例 477
9.7.3 Robot Framework+ Appium實現小程式自動化測試 480
9.8 本章總結 486
第4部分 擴展篇
第10章 ROBOT FRAMEWORK框架部分源碼解析 490
10.1 ROBOT FRAMEWORK框架目錄結構 490
10.1.1 Robot Framework源碼位置 490
10.1.2 Robot Framework源碼目錄結構 492
10.2 ROBOT FRAMEWORK執行用例邏輯分析 500
10.3 ROBOT FRAMEWORK二次開發—命令行實時顯示日誌 511"

熱門詞條

聯絡我們