産品特色
編輯推薦
適讀人群 :本書適閤閱讀的人群很廣,基本上想做自動化測試的人都可以閱讀。本書希望用更多的實例來引導讀者上手,剛開始學習的讀者跟著做會比較好。本書涵蓋瞭在自動化測試中遇到的大部分場景,不但內容充實、邏輯嚴密,且圖文並茂、語言生動。對Robot Framework使用者來說,本書更是一部人人必備在案頭的工具書。 1、涵蓋自動化測試中的大部分場景,內容充實,邏輯嚴密;
2、作者是RF中文社區的核心力量之一,書中有其對自動化測試的很多思考;
3、《Robot Framework自動化測試修煉寶典》是一本測試實踐書,書中融入瞭大量的前綫測試經驗,是人人必備的案頭工具書。
推薦購買:
海報:
內容簡介
《Robot Framework自動化測試修煉寶典》分為3個部分進行介紹。在第1部分築基篇中,主要有自動化測試概述、Robot Framework兩章的內容;在第2部分小乘篇中,主要有Web自動化測試、C/S自動化測試、數據庫自動化測試、接口自動化測試、RF內置測試庫、持續集成自動化測試、移動自動化測試總共七章的內容;在第3部分大乘篇中,主要有自定義你的RF一章的內容。《Robot Framework自動化測試修煉寶典》的自動化測試主要指功能自動化測試。
《Robot Framework自動化測試修煉寶典》適閤閱讀的人群很廣,基本上想做自動化測試的人都可以閱讀。《Robot Framework自動化測試修煉寶典》希望用更多的實例來引導讀者上手,剛開始學習的讀者跟著做會比較好。《Robot Framework自動化測試修煉寶典》涵蓋瞭在自動化測試中遇到的大部分場景,不但內容充實、邏輯嚴密,且圖文並茂、語言生動。對Robot Framework使用者來說,《Robot Framework自動化測試修煉寶典》更是一部人人必備在案頭的工具書。
作者簡介
齊濤(網名:道長),__eol__行業ID:qitaos__eol__平安科技資深測試工程師、自動化測試工程師。目前負責平安科技任意門項目測試團隊管理和自動化測試技術方案調研及實施。2004年東北大學秦皇島分校市場營銷專業畢業,昏昏噩噩前兩年,後某日頓悟,轉行入測試,先後做過華為、飛利浦、平安科技等公司的測試外包,後轉入平安科技正式員工至今。期間經曆從手工測試,到QTP自動化測試,再到如今的Robotframework自動化測試。工作之餘會參加一些敏捷之旅或測試大會的活動,分享Robotframework自動化測試的使用方法或心得體會,同時創建瞭Robotframework的微信公眾號,陸續發布瞭一些Robotframework自動化測試的相關內容,後續也會持續更新下去。目前主要緻力於Robotframework自動化測試的深入研究和推廣,歡迎大傢與我溝通交流。
內頁插圖
精彩書評
本書作者是一位高水平的測試實踐傢,在工作和學習中深刻理解瞭Robot Framework在軟件測試中的應用,並總結瞭一套高效的學習理論和方法。這本書涵蓋瞭在自動化測試中遇到的大部分場景,不但內容充實、邏輯嚴密,且圖文並茂、語言生動。對Robot Framework使用者來說,本書更是一部人人必備在案頭的工具書。
——優酷土豆網搞基測試工程師 丁恒
Robot Framework(RF)是一款優秀的開源測試框架,它簡單易用、拓展性強,可以適用於各種各樣的被測物和測試場景。同時RF有著十分活躍的社區支持,從工具選型的角度來看,很值得花時間去研究。RF自身有著良好的設計,很多測試理念被巧妙地集成其中,因此測試開發工程師深入學習RF也會獲益良多。作者是RF中文社區的核心力量之一,也是RF的堅定實踐者。在本書裏,作者將多年一綫的測試經驗融入瞭對RF的詳盡介紹內容中。閱讀本書,讀者既可以快速掌握RF的具體知識,又可以學習到作者對自動化測試的很多思考。一舉兩得,何樂而不為呢?
——雪球直男測試工程師 劉曉光
在豆瓣的時候,也使用瞭一段時間的Robot Framework(RF)。記得剛入職豆瓣的時候,搭建RF的環境就坑瞭3天。搭建好以後就換瞭Mac,然後又是3天。看到道長把安裝過程寫得很詳細,於是覺得這本書的讀者好幸福呀,可以很輕鬆地安裝並且開始學習。RF的流行是因為很多人都為RF貢獻瞭力量,並且以Library的形式提供更加便捷的使用方式。本書還介紹瞭很多流行的Library,是一本業界良心的好書。
——豌豆莢資深測試工程師 羋峮
我在諾基亞網絡使用Robot Framework比作者早很多,但作者卻是編寫中文實用文章的很多人,同時積極普及知識、推動相關社區發展,如今更是將他的經驗總結成書,內容詳盡細緻,是初學者們非常適閤的入門書和參考書。
——大中華區敏捷及DevOps中心主管、IBM 徐毅
目錄
第一部分 築基篇
第1章 自動化測試概述 2
1.1 分層自動化測試 2
1.2 界麵自動化測試工具 3
1.3 自動化測試做到什麼樣算好 4
1.4 小結 5
第2章 Robot Framework 6
2.1 框架介紹 6
2.2 安裝指南 8
2.2.1 Windows平颱 8
2.2.2 Mac平颱(Linux平颱可參考) 15
2.2.3 pip安裝 19
2.3 第一個案例 19
2.3.1 打開RIDE 20
2.3.2 創建工程和測試套 21
2.3.3 創建案例 23
2.3.4 寫一行腳本 24
2.3.5 運行案例 25
2.3.6 查看運行結果 26
2.3.7 小結 28
2.4 RIDE工具 28
2.4.1 工具介紹 28
2.4.2 菜單欄&工具欄 29
2.4.3 工作區 45
2.5 工程、測試套件、測試案例 49
2.5.1 Project工程 49
2.5.2 Test Suite測試套件 53
2.5.3 Test Case測試案例 56
2.5.4 三者關係 58
2.6 測試庫 59
2.7 Resource資源文件 65
2.7.1 新建資源 65
2.7.2 快捷菜單 66
2.7.3 Settings設置項 66
2.7.4 加載資源 67
2.7.5 External Resources 外部資源 68
2.8 變量和常量 71
2.8.1 變量與常量基礎 72
2.8.2 Scalar變量 79
2.8.3 List變量 88
2.8.4 變量轉換 97
2.8.5 其他變量 104
2.8.6 變量文件 104
2.9 Keyword關鍵字 105
2.9.1 用戶關鍵字 105
2.9.2 傳入參數Arguments 108
2.9.3 Return Value返迴值 116
2.10 循環&分支 127
2.10.1 循環 127
2.10.2 分支 134
2.10.3 二者結閤 142
2.11 運行界麵 143
2.12 小結 149
第二部分 小乘篇
第3章 Web自動化測試 152
3.1 Selenium 152
3.2 Selenium2Library安裝 153
3.3 Selenium2Library常用關鍵字 155
3.3.1 browserManagement 155
3.3.2 Cookie 157
3.3.3 Elements 157
3.3.4 JavaScript 160
3.3.5 screenshot 160
3.3.6 waiting 160
3.4 測試案例設計 161
3.4.1 案例設計Step1 162
3.4.2 案例設計Step2 164
3.4.3 案例設計Step3 166
3.5 測試案例demo 168
3.5.1 使用demo前的準備 168
3.5.2 Selenium2Library-demo 170
3.6 常見問題 177
3.7 小結 178
第4章 C/S自動化測試 179
4.1 AutoIt 179
4.2 AutoItLibrary安裝 180
4.3 AutoItLibrary關鍵字 181
4.4 測試案例 182
4.4.1 計算器案例 182
4.4.2 結閤Selenium2Library處理對話框 183
4.4.3 結閤Selenium2Library處理上傳下載 185
4.5 小結 189
第5章 數據庫自動化測試 190
5.1 數據庫測試介紹 190
5.2 DatabaseLibrary和cx_Oracle安裝 191
5.3 DatabaseLibrary關鍵字 191
5.4 測試案例 191
5.4.1 Oracle數據庫 191
5.4.2 sqlite3數據庫 193
5.5 常見問題 194
5.6 小結 195
第6章 接口自動化測試 196
6.1 接口測試 196
6.2 requestsLibrary、requests安裝 197
6.3 requestsLibrary關鍵字 197
6.4 測試案例 197
6.5 小結 201
第7章 RF內置測試庫 202
7.1 測試庫介紹 202
7.2 BuiltIn 203
7.2.1 Convert 203
7.2.2 Verify 204
7.2.3 Variables 205
7.2.4 RunKeyword 206
7.2.5 Control 207
7.2.6 Misc 208
7.2.7 強大的Evaluate 208
7.3 String 212
7.3.1 Convert 213
7.3.2 Line 213
7.3.3 String 214
7.4 Collections 215
7.4.1 List 215
7.4.2 Dictionary 215
7.5 OperatingSystem 216
7.5.1 Env 216
7.5.2 File 217
7.5.3 Directory 217
7.5.4 Path 218
7.6 Process 218
7.7 XML 219
7.8 其他測試庫 220
7.9 小結 220
第8章 持續集成自動化測試 221
8.1 Jenkins安裝與配置 221
8.1.1 Jenkins簡介 221
8.1.2 安裝Jenkins 222
8.1.3 配置節點 223
8.1.4 安裝插件 228
8.2 Jenkins上執行RF自動化測試 230
8.2.1 創建Job 231
8.2.2 配置Job 232
8.2.3 控製Job 239
8.2.4 RF插件作用 240
8.2.5 多配置Job 241
8.3 小結 244
第9章 移動自動化測試 245
9.1 Appium介紹 245
9.2 Android自動化測試 250
9.2.1 模擬器安裝 250
9.2.2 測試案例 253
9.2.3 Android對象識彆 256
9.3 iOS自動化測試 257
9.3.1 測試案例 257
9.3.2 iOS對象識彆 260
9.4 小結 263
第三部分 大乘篇
第10章 自定義你的RF 266
10.1 修改Selenium2Library測試庫 266
10.2 編寫測試庫 270
10.2.1 測試庫分類 271
10.2.2 測試庫結構 271
10.2.3 測試庫命名 273
10.2.4 測試庫頭部 273
10.2.5 測試庫配置項 274
10.2.6 測試庫文檔 274
10.2.7 測試庫關鍵字命名 275
10.2.8 測試庫關鍵字參數 275
10.2.9 測試庫的參數 276
10.2.10 測試庫關鍵字返迴值 276
10.2.11 測試庫日誌打印 276
10.2.12 對測試庫做測試 277
10.2.13 發布測試庫 277
10.3 小結 279
結語 280
參考資料 282
精彩書摘
9.1 Appium介紹
Appium是Sauce Labs齣品的一個開源的自動化測試框架,可以用來測試iOS和Android平颱上的原生應用、移動Web應用和混閤應用。原生應用是指使用iOS和Android的SDK開發齣來的App;移動Web應用指的是使用移動瀏覽器訪問的應用,比如Appium支持iOS上的Safari和Android上的Chrome,或內置瀏覽器;混閤應用指的是通過WebView使得原生代碼內容和Web內容可以進行交互的App。
當然,最重要的是Appium是一個跨平颱的框架,它允許你在iOS和Android這兩個不同平颱上使用同樣的API來編寫自動化測試腳本,這樣提高瞭測試代碼的復用性。
前麵介紹Web測試底層用的是Selenium框架,其實Appium這裏也是封裝瞭Selenium的框架,其實就可以把移動App應用看作是一個網頁,然後通過Appium進行測試。
Appium結閤Robot Framework來做測試,需要先安裝好Appium。
有關Appium的安裝,如果你使用的是Mac平颱,可以參考如下網址中的文章的介紹:
https://testerhome.com/topics/1225
如果你使用的是Windows平颱,可以參考如下網址中的文章的介紹:
https://testerhome.com/topics/2376
這裏就不詳細介紹瞭。
安裝好Appium之後,需要再安裝兩個Python的測試庫,一個是Appium-Python-Client,另一個是robotframework-appiumlibrary。前者是用Python腳本來驅動Appium的,後者是基於Robot Framework實現的Appium庫,用到瞭前者實現的一些基礎框架。這兩個就類似於Selenium和Selenium2Library一樣。
相關下載地址:
https://pypi.python.org/pypi/Appium-Python-Client/
https://pypi.python.org/pypi/robotframework-appiumlibrary
推薦使用pip安裝。如果想要手動安裝,那就需要查看一下這個Library依賴哪些Library。查看方法是在下載地址把源碼包下載下來,解壓縮,通常會有一個目錄是“.egg-info”結尾的,它有可能在根目錄,也有可能在src裏麵,前麵的名字一般就是測試庫的名字瞭,比如Appium_Python_Client.egg-info。找到這個目錄後,目錄下麵會有一個requires.txt的文件,打開它就可以看到它依賴哪些Library及其版本瞭。
比如Appium-Python-Client依賴的是:
selenium>=2.41.0
enum34
而robotframework-appiumlibrary依賴的是:
decorator >= 3.3.2
robotframework >= 2.6.0, <= 2.8.7
docutils >= 0.8.1
Appium-Python-Client >= 0.5
mock >= 1.0.1
sauceclient >= 0.1.0
pytest-cov >= 1.8.1
pytest-xdist >= 1.11
pytest-pythonpath >= 0.4
當然,可能其中某個Library又會依賴其他Library,這就要具體地一個個看瞭,所以手動安裝是比較麻煩的事情,如果依賴比較少還可以,依賴多的時候就不如pip省心瞭。
在Appium安裝好之後,需要運行一下appium-doctor來檢查一下環境是否都配置好瞭。可以通過命令行運行,也可以通過單擊Appium客戶端界麵上的第3個按鈕(比較像醫生聽診器的那個),Mac版客戶端界麵,如圖9-1-1所示。
單擊此按鈕後,如果看到類似於下麵的信息,那就是配置正確瞭。如果有任何異常,會提示你要修復異常,比如缺少某些安裝包或者沒有配置環境變量等。
/Users/qitao >'/Applications/Appium.app/Contents/Resources/node/bin/node' '/Applications/ Appium.app/Contents/Resources/node_modules/appium/bin/appium-doctor.js'
Running iOS Checks
Xcode is installed at /Applications/Xcode-beta.app/Contents/Developer
Xcode Command Line Tools are installed.
DevToolsSecurity is enabled.
The Authorization DB is set up properly.
Node binary found at /usr/local/bin/node
iOS Checks were successful.
Running Android Checks
ANDROID_HOME is set to "/Users/qitao/Desktop/mobile/android/adt-bundle-mac- x86_64-20140321/sdk"
JAVA_HOME is set to "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/ Home."
ADB exists at /Users/qitao/Desktop/mobile/android/adt-bundle-mac-x86_64-20140321/ sdk/platform-tools/adb
Android exists at /Users/qitao/Desktop/mobile/android/adt-bundle-mac-x86_64-20140321/ sdk/tools/android
Emulator exists at /Users/qitao/Desktop/mobile/android/adt-bundle-mac-x86_64- 20140321/sdk/tools/emulator
Android Checks were successful.
All Checks were successful
都安裝好後,我們就直接用例子入手瞭。
……
前言/序言
推薦序一
我們已經進入瞭移動互聯網的時代,企業在市場、渠道、産品、服務各方麵都麵臨著新的挑戰,每個成功企業都在培養快速適應變化的能力,這就是我們時常說的企業敏捷性的重要組成因素。對於企業的IT部門來說,麵對著愈發不確定的客戶需求,快速並高質量地完成開發工作,使需求早日上綫,從而能夠盡早收集市場反饋,優化産品或服務,是必須著重解決的問題。在追求快速上綫的同時,質量底綫是我們必須堅守的紅綫,在此過程中,自動化迴歸測試技術是一種行之有效的保障手段。本書介紹的Robot Framework框架就是非常優秀的自動化迴歸測試框架,值得從事開發測試的同行仔細研究。
從2011年起,我以谘詢顧問的身份進入平安科技,幫助其進行敏捷轉型,在那時認識瞭本書作者。在一些試點項目中,我們要求開發團隊在提升交付速度的同時保證質量,但原有的QTP工具不能滿足要求。經過調研,我們選定瞭“Robot Framework + Selenium”的開源技術體係來替代QTP,完成界麵自動化迴歸測試工作,並在實踐中取得瞭非常良好的效果,得到瞭各方的肯定和贊譽。後來,我們用Robot Framework結閤Requests來進行HTTP接口的自動化迴歸測試,進一步夯實瞭分層自動化測試體係,為平安科技日後的全麵敏捷轉型打下瞭堅實的基礎。
在這一過程中,齊濤潛心鑽研,經過不懈努力逐步承擔起公司內部Robot Framework的支持和推廣工作,自己也成為瞭這方麵的專傢。本書是他的開山之作,具備很高的實操性,相信讀者可以從本書中學到諸多來自一綫的實踐經驗。最後,祝大傢閱讀愉快!
Agilean谘詢公司創始人、平安科技敏捷轉型總顧問 吳穹
推薦序二
移動互聯網發展到2015年,算是進入瞭一個白熱化階段,開發和測試的技術發展都已經突破瞭好幾次瓶頸,但現在依然在追求更高的技術和産品質量。而軟件測試人員算是在這個熱潮中比較辛苦的,正巧軟件測試在國內也處在快速發展和變化期,所以無論是測試技術,還是本書中提到的測試分層,都是對測試人員極大的挑戰。
我認識道長(本書作者)也有好多年瞭,道長為人非常謙遜,做事情比較踏實,不像我那麼高調,同時對技術也有很大的追求。我依舊秉持我做事的原則,就如同我要去測試一個産品,先要對這個産品的業務和技術架構有深入瞭解一樣,我是通讀瞭本書之後纔開始寫序的。我能體會到道長寫這本書的不容易,就如作者在書的最後提到的,Robot Framework本身在國內受眾不大,所以道長寫這本書在我看來一方麵是給用Robot Framework的同行一些自己的經驗,另一方麵真的就是自己對自己的一個總結。我在這裏呼籲大傢真要尊重寫書的人(當然那種純理論忽悠的不包括在內),因為一本書的背後都有不為人知的很多心酸,沒有一些壓力和自己的堅持是無法完成的。一本書的齣版對於作者而言就如同十月懷胎,如同自己的孩子一樣親切。
我還是迴過來說這本書吧。本書就如作者自身定義的,更像一本操作手冊,雖然說的是Robot Framework這樣一個工具,但其實涉及的麵非常廣。其中包括但不僅限於Web自動化測試、接口自動化測試,以及現在大傢很關心的移動無綫的自動化測試,書的最後一部分也提到瞭使用Robot Framework去做持續集成,以及如何結閤移動最新的框架Appium來做自動化測試。移動互聯網測試行業還是有蠻多人認識我的,也知道我的風格。首先這肯定不是一本“忽悠”的書,相反,這本書在每個章節都有大量的實踐,以及需要每個讀者去操作瞭纔能夠真正理解的內容。道長也非常貼心地在書中提供瞭知識點和案例,寫明瞭官方的下載地址以及自己的Github地址,讓大傢能夠更好地開展學習。不過我在這裏依然需要提醒讀者,移動互聯網的技術和知識迭代都是非常快的,而且技術棧會比較深,所以大傢在讀相關書籍的時候要自己學會Google相關技術的官方文檔,從而有一個全麵的理解,韆萬不要指望在書中找到所有的答案,在移動互聯網時代這是不現實的。
Robot Framework我覺得還是很有必要學習一下的,很多測試行業的同行其實會比較疑惑在項目中的自動化用例怎麼大批量編寫、管理等問題,我個人覺得Robot Framework就是一個不錯的粘閤劑。Robot Framework能夠結閤各種測試工具進行測試,同時也能夠更方便和有條理地管理我們的測試用例。Robot Framework本身在國內的中文資料很少,本書對於初學者來講會有非常大的幫助,同時也讓用過Robot Framework的同行們能夠對Robot Framework有一個更全麵的瞭解。
在互聯網行業做一名測試工程師很難,在移動互聯網行業做一名測試工程師更難。移動互聯網行業的測試工程師需要麵臨非常多的測試工具、框架和技術,不得不說在這其中,Robot Framework是個不錯的工具,相信它能夠幫助大傢在項目中將測試技術更好地落地。
最後要再次感謝道長對於本書的付齣,也預祝本書大賣,並且能夠幫助到更多的人。
寫於2015年
螞蟻金服資深測試開發工程師、Testerhome測試技術社區創始人之一、《大話移動App測試》作者 陳曄(Monkey)
前 言
寫這本書之前一定要先感謝一個人——吳穹博士,如果不是吳穹博士來平安科技做谘詢顧問,嚮我們推薦瞭Robot Framework(下麵簡稱RF)這個框架,我想或許我還在玩QTP呢,又或者用劉興翬的PLSA(這也是一個很棒的工具)。吳穹博士是我的引路人,他也是很多目前在用RF做自動化測試的同行們的引路人,非常感謝吳穹博士。
我不是“科班”齣身,也許大傢都想不到,我大學學習的專業是市場營銷,可惜專業課的知識都還給老師瞭,憑著對IT的喜愛,經曆瞭種種磨難,成功“混入”瞭IT圈,還做瞭測試。測試其實是一個“高危職業”,要比産品經理(或SA需求分析)想得全麵,要比開發懂需求,要有很強的發散思維,要能讀懂代碼,必要的時候還要會寫個代碼。說點做測試的同行不愛聽但卻是事實的話,很多人是因為覺得做測試比較簡單纔入的這行。說測試是一個“高危職業”,那是因為當生産上齣瞭問題,90%的人(領導)都會問:“測試的時候為什麼沒有發現?”(這是好的語氣,不好的語氣就是:“你們是怎麼測試的?這都沒發現?”)也不知道我怎麼當初就頭腦發熱地選擇瞭做測試,也不知道為什麼當初在華為做外包的時候,天天加班還覺得很充實。在這裏我奉勸各位,測試有風險,入行需謹慎!
我在2008年進入平安科技時,是以外包的身份進來的,進來之前“摸”瞭一個星期的QTP,進來以後就專職負責做QTP自動化測試案例。當時的組裏本身有一批QTP案例,都是錄製齣來的,那時候最痛苦的是由需求變更導緻的修改案例,每次發版本要跑迴歸,有時候要持續到淩晨兩三點,確保所有的自動化測試案例都沒問題瞭,纔能封版上綫。後來逐步改善案例,逐步拋棄掉瞭錄製迴訪,從描述式編程到後來用的Framework Manager框架,基本上可以說把QTP“玩”到極緻瞭吧,其實到現在我偶爾還在用QTP,比如可以用來幫我批量打開十幾個遠程桌麵什麼的。
後來經過朋友介紹進入瞭平安科技,從外包轉為瞭內部員工。那時候新進入的組裏基本上沒有什麼自動化測試案例,大部分時間其實也是在手工測試。到瞭2011年9月左右,藉著組內的一個項目,吳穹博士作為谘詢顧問,推薦Robot Framework給我們。當我學習瞭這個工具後,被它深深吸引住瞭,對於我這樣用慣瞭QTP的懶人來說,RF這種輕量又全麵的工具,基本上完勝QTP。也是差不多從那個時候開始,我在博客上斷斷續續地寫起瞭RF的相關博客,也相當於學習筆記吧。同時我也順便學起瞭Python,有需要的時候就會看RF的底層源代碼,到後來可以適當地改動一些代碼來擴展RF庫,寫代碼對我這樣的“門外漢”來說還是比較睏難的,改代碼就是我比較擅長的瞭,最不濟還可以“照貓畫虎”。
平安科技的自動化測試工具最早的時候基本上隻有QTP,後來增加瞭Robot Framework和劉興翬自己開發的PLSA,變成瞭“三足鼎立”。然後QTP直接被廢棄,變成“雙雄爭霸”瞭。其實我倒是覺得沒什麼爭的,RF和PLSA各有自己的特點,RF降低瞭大傢做自動化測試的門檻,人人都可以做自動化測試,我覺得這樣挺好的。從另一個角度刺激瞭專職的測試人員要提升自身的競爭力。而PLSA還是需要有些Java開發經驗的,當然它也可以零基礎入門,但是我覺得用Eclipse寫自動化腳本還是太重瞭。順帶提一句,劉興翬後來做瞭RF的PLSA測試庫,也就是在RF上也可以用PLSA,這算是共贏吧。
經曆瞭這些年的自動化測試,其實最頭疼的是領導的思維,被那些“大忽悠”給“忽悠”瞭。通常大佬們最容易被“忽悠”的有三點:第一點,自動化率。盲目地追求100%的自動化率,每年都把提高自動化率作為KPI之一;第二點,發現缺陷數。自動化測試案例能發現多少缺陷,自動化案例運行失敗不一定是缺陷導緻的,可能是執行的環境有問題、需求變更以及其他的一些情況。真正在失敗案例中能發現缺陷的,可能都不會超過10%;第三點,節省人力。認為多做自動化測試案例能節省人力,怎麼說呢,案例越多其實反而不節省人力,除非你的係統一年沒多少需求變更。
遇到這樣的領導你說怎麼辦?說服領導?換個公司?想辦法輕鬆地完成任務?對我這樣的懶人來說,我會先想辦法輕鬆地完成任務,順便提升一下技術實力。因為我一直堅信,懶人的存在促使科技進步,所以Robot Framework正好閤適,初級入門可以完成任務,深入研究可以提升技術。
本書適閤閱讀的人群很廣,基本上想做自動化測試的人都可以閱讀。本書的自動化測試主要指功能自動化測試。適閤初學者入門學習。對於最深入的進階部分,我隻會簡單提一下,因為我覺得到瞭那個層次,大傢已經可以自由發揮瞭,所以可能不太適閤“老鳥們”瞭,當然入手收藏也是不錯的。我不太擅長概念性的內容,所以涉及概念性的內容可能會比較少,或者很快帶過。我希望用更多的實例來引導大傢上手,剛開始學習的讀者跟著做會比較好,書裏麵的案例我也會與大傢分享。
本書第1章是一些自動化測試的概念性內容,並沒有深入探討;第2章是整個Robot Framework的基礎,建議初學者多花點時間學習;從第3章到第9章分彆介紹瞭不同類型的自動化測試、持續集成和移動自動化測試;最後第10章作為深入學習的部分,內容不是很多,主要是為瞭給大傢一個入門的方嚮,具體還要看大傢各自發揮。
特彆鳴謝本書的審稿人陳曄和徐毅,感謝兩位的辛苦付齣,提齣瞭不少修改意見。感謝百忙之中幫忙進行封麵設計的陳爭,也感謝齣版社的各位編輯幫忙進行排版設計。
齊濤
掌握效率精髓,開啓智能化變革:軟件測試的無限可能 在軟件開發日新月異的今天,效率與質量的平衡成為企業能否在激烈市場競爭中脫穎而齣的關鍵。每一次功能的迭代,每一次 Bug 的修復,都伴隨著漫長而重復的手動測試流程。這種模式不僅耗費瞭寶貴的開發資源,更潛藏著人為失誤帶來的風險,成為製約産品快速迭代與高質量交付的瓶頸。 想象一下,如果有一套係統,能夠以驚人的速度和精準度執行成百上韆項測試用例,並且能夠提供清晰、可讀的報告,讓你在項目進展的每個階段都能瞭然於胸。這並非科幻場景,而是真實可行的軟件工程實踐。本書將帶你深入探索這一領域,揭示如何通過先進的自動化技術,為你的軟件開發流程注入澎湃動力,從而實現前所未有的效率提升與質量保障。 告彆低效,擁抱智能:自動化測試的價值 傳統的手動測試,雖然直觀,但其固有的局限性不容忽視。重復性的操作極易導緻測試人員疲勞,進而增加齣錯的概率。隨著項目規模的不斷擴大,迴歸測試(Regression Testing)的復雜性和耗時性更是讓開發團隊不堪重負。每一次細微的代碼改動,都可能引發意想不到的連鎖反應,而手動驗證這一切,無異於大海撈針。 自動化測試的齣現,正是為瞭解決這些痛點。它通過腳本化的方式,模擬用戶的操作,自動執行預先設計的測試用例,並對預期結果進行校驗。這種模式的好處是顯而易見的: 效率飛躍: 自動化腳本可以 24/7 不間斷運行,在極短的時間內完成大量測試任務,遠超人力所能及。這意味著你可以更快地發現問題,更快地修復,從而加速産品的上綫周期。 精度提升: 腳本化的執行過程消除瞭人為的主觀因素和疲勞導緻的錯誤,保證瞭測試結果的穩定性和可靠性。每一次執行,都是對係統最嚴謹的審視。 成本優化: 雖然初期投入需要時間學習和構建自動化框架,但長期來看,自動化測試能顯著降低重復性測試的人力成本,並減少因 Bug 延誤上綫而産生的潛在經濟損失。 覆蓋率增強: 自動化測試可以輕鬆覆蓋更多的測試場景,包括那些手動測試難以觸及的邊界條件和復雜交互,從而提高整體的産品質量。 開發反饋加速: 自動化測試集成到持續集成/持續部署(CI/CD)流程中,能夠為開發團隊提供近乎實時的反饋,幫助他們及早發現並解決問題,避免 Bug 堆積到後期。 係統性思維,構建堅實基石:從理解到實踐 本書並非僅僅羅列工具的使用方法,而是緻力於構建一套係統性的自動化測試思維。我們將從自動化測試的核心概念入手,逐步深入到實際的應用層麵,讓你不僅知其然,更知其所以然。 第一部分:自動化測試的理論基石與戰略規劃 在動手編寫任何代碼之前,理解自動化測試的本質和戰略意義至關重要。這一部分將為你構建堅實的理論基礎: 自動化測試的定位與價值: 深入剖析自動化測試在整個軟件生命周期中的角色,探討它如何賦能敏捷開發、DevOps 文化,並最終提升企業競爭力。理解“為什麼要做自動化”是“如何做好自動化”的前提。 自動化測試類型深度解析: 我們將詳細介紹單元測試、集成測試、端到端(E2E)測試、性能測試、安全測試等多種自動化測試類型,並分析它們各自的應用場景、優缺點以及在項目中的閤適定位。理解不同類型的測試如何協同工作,纔能構建全麵的質量保障體係。 選擇閤適的自動化工具與技術棧: 市場上自動化測試工具琳琅滿目,如何根據項目需求、團隊技術棧、預算等因素做齣明智的選擇?本書將引導你梳理選擇標準,並介紹一些主流的自動化測試框架及其特點,幫助你規避盲目選擇的風險。 自動化測試策略的製定: 一個成功的自動化測試項目離不開周密的戰略規劃。我們將探討如何根據項目特性、風險點、迭代周期等因素,設計一套切實可行的自動化測試策略,明確測試範圍、優先級、執行頻率以及報告機製。 第二部分:自動化測試的實踐落地與高級技巧 理論指導實踐,實踐升華理論。在掌握瞭基本原理後,我們將帶領你進入自動化測試的實操環節,從零開始構建你的自動化測試體係,並深入探索高級應用技巧: 核心自動化框架的構建與設計: 學習如何設計和實現一個健壯、可維護、可擴展的自動化測試框架。這包括測試數據的管理、頁麵對象模型(POM)的應用、關鍵字驅動(Keyword-Driven)、數據驅動(Data-Driven)、行為驅動(BDD)等設計模式的講解與實踐,讓你能夠構建齣易於維護和擴展的自動化腳本。 Web 應用自動化實戰: 掌握主流 Web 自動化工具(例如 Selenium WebDriver)的應用,學習如何定位 Web 元素、執行各種 UI 操作、處理等待機製、捕獲屏幕截圖、以及進行斷言(Assertions)驗證。我們將通過大量的實戰案例,讓你掌握 Web 自動化測試的核心技能。 API 接口自動化測試: API 接口是現代軟件架構的基石,其穩定性和性能直接影響整個係統的運行。我們將深入講解如何使用 Postman、RestAssured 等工具,實現 RESTful API 和 SOAP API 的自動化測試,包括請求構建、參數傳遞、響應解析、狀態碼校驗以及性能指標監控。 移動端應用自動化測試: 隨著移動互聯網的普及,移動端應用測試的重要性不言而喻。本書將介紹 Appium 等跨平颱移動端自動化測試工具,講解如何針對 Android 和 iOS 應用進行功能測試、UI 測試以及性能測試。 自動化測試與 CI/CD 的集成: 將自動化測試無縫集成到持續集成/持續部署(CI/CD)流程中,是實現快速迭代與高質量交付的關鍵。我們將講解 Jenkins、GitLab CI 等 CI/CD 工具與自動化測試框架的集成方法,實現自動化測試的自動化觸發和報告生成。 測試報告與數據可視化: 優質的測試報告是自動化測試價值的體現。我們將學習如何生成清晰、直觀、易於理解的測試報告,並探討如何利用數據可視化技術,將測試結果以圖錶等形式呈現,幫助團隊成員快速瞭解測試覆蓋率、Bug 趨勢、性能瓶頸等關鍵信息。 自動化測試的維護與優化: 自動化測試並非一勞永逸,腳本的維護和優化是長期工作的一部分。我們將探討如何應對前端 UI 的頻繁變化、如何進行腳本重構、如何處理自動化測試中的常見問題(如 Flaky Tests),以及如何持續改進測試效率和效果。 開啓高效之路,釋放無限潛能 本書將是你探索軟件自動化測試世界的得力助手。無論你是初涉此領域的測試新手,還是希望提升自動化測試技能的資深測試工程師,亦或是希望為團隊引入自動化解決方案的技術領導者,都能從中獲益匪淺。 我們相信,通過掌握本書介紹的知識與技能,你將能夠: 顯著提升軟件開發效率,縮短産品上綫周期。 大幅降低軟件質量風險,提升用戶滿意度。 優化測試資源配置,降低運營成本。 構建更具競爭力的産品,贏得市場先機。 擁抱現代化軟件開發模式,走在技術前沿。 讓我們一起踏上這場激動人心的自動化測試之旅,解鎖軟件工程的無限可能,為你的事業注入新的活力!