初識 Katalon Studio 自動化測試工具
1.Selenium/Appium 自動化工具概述
實施自動化測試之前,我們總會調研哪些工具易用,免費,容易和其他工具或者框架整合。做 Web 自動化測試我們經常選擇Selenium,因為它開源免費,支援不同的開發語言,還有錄製功能,從一定程度上減少了測試人員開發指令碼的成本;做App自動化測試我們通常選擇 Appium,它也是開源免費,同時支援 Android 和 IOS 兩大作業系統,支援不同的語言開發指令碼,同時能測試原生和混合應用。但這兩種工具需要結合其他的測試框架來管理我們的測試案例,比如Jnuit、unittes、NUnit 等,這就要求測試人員有較高的編碼技能。
2. 關於Katalon Studio
2.1 Katalon 是什麼
Katalon Studio 是一款免費的自動化測試工具,可以安裝在windows、macOS、linux作業系統上,基於selenium 和 Appium 測試框架,並集成了這些框架的優點。這個工具支援不同層次技能的測試開發人員使用,有很少編碼經驗的測試人員也可以很快的上手一個自動化測試專案,編碼經驗豐富的測試人員可以基於該工具做擴充套件,靈活的實現所需功能。
2.2 Katalon 特色
Katalon Stuion 是一款可安裝的測試工具,集成了 Eclipse 的部分功能,又支援介面化編碼,無論是經驗豐富的測試開發人員還是測試新手,都能以自己熟悉的方式完成測試指令碼的開發。Katalon Stuidio 的特點主要體現在以下幾個方面。
2.2.1 提供一個完整的自動化測試解決方案
Katalon Studio 支援Web,Mobile,API 型別的自動化測試,它同時可以管理頁面元素、測試資料、測試案例、生成自動化測試報告,可以整合到 CI/CD 過程中,相容流行的質量處理工具,包括qTest,JIRA等,只需要使用 Katalon Studio 一個測試工具,就可以完成整個自動化測試流程。
2.2.2 環境安裝簡單
下載Katalon Studio後,在 windows 或者 mac 系統上只需雙擊 katalon.exe 即可執行環境,輸入使用者名稱和密碼註冊或者登入之後就可以使用了;在linux作業系統上,安裝openjdk後,直接解壓下載的安裝包,使用命令列即可執行案例。
2.2.3 支援錄製指令碼
對於 Web 和 Mobile, katalon 提供了錄製的功能,不同於selenium 或者 Appium 的錄製功能,katalon 錄製的指令碼可讀性很強,一個操作動作會生成一條語句,由 WebUI/Mobile + 關鍵字 + 頁面元素構成,下圖是一個錄製的App登入指令碼的Manual 模式:
下圖是該指令碼的 Script 模式:
2.2.4 視覺化查詢頁面元素
除了支援錄製指令碼外,Katalon 還提供了 “Spy Web” 和 “Spy Mobile” 的功能,可以視覺化的將頁面元素儲存在物件頁面物件庫中,方便寫指令碼時呼叫。
2.2.5 視覺化案例管理
支援手動和指令碼兩種模式編寫案例
提供豐富的關鍵字
對於Web、Mobile、API,katalon 提供了豐富的關鍵字,比如點選、獲取焦點、輸入文字、滑屏、解鎖、等待頁面元素出現等等,幾乎覆蓋了測試中用到的所有操作,在使用時直接呼叫即可,無需再次封裝。另外還支援自定義關鍵字,實現特殊功能。關鍵字管理如下圖。
頁面物件管理庫
Katalon Studio 提供了單獨的頁面物件管理庫。
可以使用錄製指令碼自動生成頁面物件,也可以使用頁面物件探測器(Spy Web, Spy Mobile) 手動儲存頁面物件。頁面物件和測試案例分開,便於後續測試指令碼維護。測試資料管理
Katalon Studio 提供了單獨的資料管理模組。
資料來源支援多種格式: Excel、csv、database等。指令碼中的資料可以以引數的形式呼叫資料來源中資料,便於指令碼維護。檢查點管理
Katalon中檢查點的來源同測試資料,可以是Excel、csv、 database 格式的資料,豐富的檢查點校驗功能可以幫助我們更準確的驗證案例是否成功。提供TestSuit 管理TestCase
TestSuit 中可以新增刪除 TestCase,並選擇TestCase的執行順序。TestSuit中的案例執行完成後,可以在Reports中檢視測試報告,也可以在Log Viewer 檢視中檢視執行日誌。
2.2.6 支援擴充套件和自定義功能
Katalon 允許使用者自定義Method,Test Listeners、KeyWord,也可以匯入匯入外部jar包以實現更復雜的功能。
2.2.7 版本更新快
Katalon Studio 幾乎是一個月更新一次版本,使用過程中遇到的問題可以在官方論壇中提問。
2.3 Katalon 幫我們解決了哪些難題
- 編碼能力弱
無論使用Selenium 還是 Appium, 我們需要結合其他測試框架編寫測試指令碼,需要自定義指令碼的管理模式,比如PageFactory 模式或者關鍵字驅動模式,還需要自己封裝關鍵字並且需要處理測試過程中遇到的異常。這樣會花費很多時間學習開發技能,並且複雜的指令碼也不易於在專案中推廣,而katalon支援錄製指令碼,對不能錄製的指令碼,我們也可以使用已經封裝好的關鍵字,藉助頁面元素探測器編寫指令碼,並且katalon也提供了視覺化的程式設計檢視,只需一些編碼基礎,都可以很好的使用katalon。 - 安裝環境困難
Selenium 和 Appium 安裝時需要依賴一些其他的工具,特別是Appium,安裝之前需要安裝Java環境,需要安裝Android Sdk,需要更新很多東西。在 安裝Appium 的過程中,會遇到不少的坑,而Katalon Studio 只需雙擊執行 katalon.exe 即可執行,大大節省了安裝時間。 - 定位元素困難
測試App的時候定位元素需要使用uiautomatorviewer 或者Chrome的擴充套件功能,在使用使用Chrome的擴充套件功能時需要翻牆,這在一定程度上增加了查詢元素的複雜性。使用Katalon 的 Spy Mobile 功能基本能獲取 App 的所有元素,而且使用此方式查詢元素比較穩定。 - 其他工具錄製指令碼可讀性差
使用 Selenium 或者 Appium 錄製的指令碼可讀性非常差,特別是 Appium,錄下的指令碼可用的資訊特別少,而Katalon 錄製的指令碼非常簡潔,可讀性也很好。
4. Katalon 存在的不足
相關中文文件少
目前國內 Katalon 的使用者非常少,相關的使用文件也很少,但官方的文件還是很詳細的,遇到問提可以查閱使用者手冊。不支援中文
Katalon 目前不支援使用中文命名資料夾、頁面物件、案例名稱等,測試報告也不支援中文。靈活性欠佳
相對於Appium 或者 Selenium,katalon 的使用門檻降低不少,但是視覺化的工作方式使其在處理一些複雜的工作流上不夠靈活,這時需要我們自定義keywords 或者 method 來實現相關功能。
5. TODO
- 使用命令列執行 katalon 案例
- katalon 和 jenkins的整合