最近准備把公司的系統搞上UI自動化,先是自己用Python+selenium+pytest寫了一個框架,開始寫case的時候發現效率極其慢。原因為:
(1)開發為提高前端響應時間,使用前端路由技術,一個頁面一次加載多個TAB,后台的TAB雖然不可見,但已加載並可定位到;亦或是前台的TAB雖然可見,但實際其中的元素不可見或不是在最上層,導致click失敗;
(2)前端使用VUE框架,element的tag、class、name等屬性帶有隨機的數字,不便於定位;
(3)自己寫的xpath或css定位有時會定位到多個相同element或是一個也定位不到,單是編寫定位就很耗時。
於是想到了selenium IDE錄制自動抓取xpath,同時搜到了katalon Recorder更好用,再然后發現其還有Studio,使用錄制+修改腳本的方法,效率還是比較高的,而且Katalon Studio也是支持PO模式的。想寫個系列把自己遇到的問題記錄下來,也方便大家學習。第一篇Katalon Studio介紹已經有人寫的很棒了,就不重復造輪子了。
katalon官網:https://www.katalon.com/
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.Katalon VS Selemium
Katalon是在Selemium相同的內核上構建起來的一個自動化測試工具。官方給出的兩者的對比文檔:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/。
我綜合自己這兩天使用的情況,大概可以總結為如下幾點:
- Katalon的用戶群體范圍更廣,用戶甚至不需要任何編程基礎,只需要知道自己想做什么即可,而Selemium的用戶群體是開發或者測試人員
- Katalon是一個非常易用的圖形化的工具,但它竟然是免費的(官方說法是Completely free • Built with Heart),並且是免安裝版本,下載解壓就能直接使用。而Selemium需要安裝運行環境、語言驅動等等較為繁瑣的步驟
- 使用Selemium的時候,可能需要經常查詢API文檔以找到自己想要實現的功能,而Katalon大部分時候不需要(當然本身也是有非常完善的API文檔的)
- 專業人員通過Selemium可以完成各種復雜的功能,Katalon也可以,Katalon用的是Java和Apache Groovy作為其腳本開發語言
- 性能方面,Katalon比Selemium差一點
- Katalon提供了Spy和Record兩個讓構建測試變得異常簡單的神級功能,以及很多內建的非常實用的功能(比如從文件、數據庫等數據源獲取數據填充到測試變量中)
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 可視化案例管理
1.支持手動和腳本兩種模式編寫案例

2.提供豐富的關鍵字
對於Web、Mobile、API,katalon 提供了豐富的關鍵字,比如點擊、獲取焦點、輸入文本、滑屏、解鎖、等待頁面元素出現等等,幾乎覆蓋了測試中用到的所有操作,在使用時直接調用即可,無需再次封裝。另外還支持自定義關鍵字,實現特殊功能。關鍵字管理如下圖。

3.頁面對象管理庫
Katalon Studio 提供了單獨的頁面對象管理庫。

可以使用錄制腳本自動生成頁面對象,也可以使用頁面對象探測器(Spy Web, Spy Mobile) 手動存儲頁面對象。頁面對象和測試案例分開,便於后續測試腳本維護。
4.測試數據管理
Katalon Studio 提供了單獨的數據管理模塊。

數據源支持多種格式: Excel、csv、database等。腳本中的數據可以以參數的形式調用數據源中數據,便於腳本維護。
5.檢查點管理
Katalon中檢查點的來源同測試數據,可以是Excel、csv、 database 格式的數據,豐富的檢查點校驗功能可以幫助我們更准確的驗證案例是否成功。
6.提供TestSuit 管理TestCase

TestSuit 中可以添加刪除 TestCase,並選擇TestCase的執行順序。TestSuit中的案例執行完成后,可以在Reports中查看測試報告,也可以在Log Viewer 視圖中查看執行日志。
2.2.6 支持擴展和自定義功能
Katalon 允許用戶自定義Method,Test Listeners、KeyWord,也可以導入導入外部jar包以實現更復雜的功能。
2.2.7 版本更新快
Katalon Studio 幾乎是一個月更新一次版本,使用過程中遇到的問題可以在官方論壇中提問。
3 Katalon 幫我們解決了哪些難題
1.編碼能力弱
無論使用Selenium 還是 Appium, 我們需要結合其他測試框架編寫測試腳本,需要自定義腳本的管理模式,比如PageFactory 模式或者關鍵字驅動模式,還需要自己封裝關鍵字並且需要處理測試過程中遇到的異常。這樣會花費很多時間學習開發技能,並且復雜的腳本也不易於在項目中推廣,而katalon支持錄制腳本,對不能錄制的腳本,我們也可以使用已經封裝好的關鍵字,借助頁面元素探測器編寫腳本,並且katalon也提供了可視化的編程視圖,只需一些編碼基礎,都可以很好的使用katalon。
2.安裝環境困難
Selenium 和 Appium 安裝時需要依賴一些其他的工具,特別是Appium,安裝之前需要安裝Java環境,需要安裝Android Sdk,需要更新很多東西。在 安裝Appium 的過程中,會遇到不少的坑,而Katalon Studio 只需雙擊運行 katalon.exe 即可運行,大大節省了安裝時間。
3.定位元素困難
測試App的時候定位元素需要使用uiautomatorviewer 或者Chrome的擴展功能,在使用使用Chrome的擴展功能時需要翻牆,這在一定程度上增加了查找元素的復雜性。使用Katalon 的 Spy Mobile 功能基本能獲取 App 的所有元素,而且使用此方式查找元素比較穩定。
4.其他工具錄制腳本可讀性差
使用 Selenium 或者 Appium 錄制的腳本可讀性非常差,特別是 Appium,錄下的腳本可用的信息特別少,而Katalon 錄制的腳本非常簡潔,可讀性也很好。
4. Katalon 存在的不足
相關中文文檔少
目前國內 Katalon 的用戶非常少,相關的使用文檔也很少,但官方的文檔還是很詳細的,遇到問提可以查閱用戶手冊。
不支持中文
Katalon 目前不支持使用中文命名文件夾、頁面對象、案例名稱等,測試報告也不支持中文。
靈活性欠佳
相對於Appium 或者 Selenium,katalon 的使用門檻降低不少,但是可視化的工作方式使其在處理一些復雜的工作流上不夠靈活,這時需要我們自定義keywords 或者 method 來實現相關功能。
轉自:https://blog.csdn.net/xuecancan/article/details/79529155
https://www.cnblogs.com/wushangjue/p/8406258.html
---------------------------------------------------------------------------------
關注微信公眾號即可在手機上查閱,並可接收更多測試分享~

