最近因爲在工做中須要經過Web端的功能進行一次大批量的操做,數據量大概在5000左右,若是手動處理,
完成一條數據的操做用時在20秒左右的話,大概須要4-5個人/天
的工做量(假設一天8小時的工做裏除去休息時間,我能在6個小時裏像機器人同樣保證每20秒處理一條數據)。
顯然,做爲一個程序員,我是不可能讓這樣機械化的操做浪費我寶貴的生命的。第一反應是想到了若干年前被我用來作Web前端測試和寫頁遊外掛的神器Selemium
(當時頁遊真的很火,我用本身寫的腳本,在只花了不多錢的狀況下,用了不到3周時間就已是大神排行榜前10了)。但在我印象中,Selemium
須要編寫大量的代碼來完成一個腳本,調試過程也較爲繁瑣,這麼多年過去了,我在想會不會有更新更好用的工具出現呢?因而Google了一下以後,發現了Katalon
。前端
Katalon
是在Selemium
相同的內核上構建起來的一個自動化測試工具。官方給出的二者的對比文檔:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/。程序員
我綜合本身這兩天使用的狀況,大概能夠總結爲以下幾點:web
Katalon
的用戶羣體範圍更廣,用戶甚至不須要任何編程基礎,只須要知道本身想作什麼便可,而Selemium
的用戶羣體是開發或者測試人員數據庫
Katalon
是一個很是易用的圖形化的工具,但它居然是免費的(官方說法是Completely free • Built with Heart
),而且是免安裝版本,下載解壓就能直接使用。而Selemium
須要安裝運行環境、語言驅動等等較爲繁瑣的步驟編程
使用Selemium
的時候,可能須要常常查詢API文檔以找到本身想要實現的功能,而Katalon
大部分時候不須要(固然自己也是有很是完善的API文檔的)瀏覽器
專業人員經過Selemium
能夠完成各類複雜的功能,Katalon
也能夠,Katalon
用的是Java
和Apache Groovy
做爲其腳本開發語言less
性能方面,Katalon
比Selemium
差一點工具
Katalon
提供了Spy
和Record
兩個讓構建測試變得異常簡單的神級
功能,以及不少內建的很是實用的功能(好比從文件、數據庫等數據源獲取數據填充到測試變量中)性能
爲了更直觀,我作了一張動圖,完成了Spy的基本演示,其中包含了以下步驟:測試
打開百度搜索首頁
定位搜索框,將其捕獲(按組合鍵Shift + `
)
確認捕獲的元素
將搜索框保存到對象倉庫中
查看捕獲的全部信息
Spy
的做用是能夠在較爲複雜的頁面上或者當操做人員不會寫代碼的時候,須要操做元素時,用Spy
能夠很是方便的作到。上述全部步驟的動圖以下:
這個設計的步驟很簡單:
打開百度首頁
在輸入框裏輸入katalon
確認搜索
展現搜索結果
過程動圖以下(整個過程當中並無對Chrome作任何人工操做):
上面的方法,相對於初學者來講,已是「複雜」的了,畢竟咱們先手動Spy
出咱們想操做的元素。其實,若是隻是簡單的經過百度搜索某個關鍵字這樣的簡單流程,徹底能夠用Katalon
自帶的Record Web
功能,詳見以下動圖:
Record Web
功能會把你對瀏覽器作的全部操做,全程錄製並保存起來,固然若是有須要,也能夠按本身的需求對錄製好的步驟作一些調整。
若是你是個專業用戶,你能夠能夠直接經過編輯腳原本寫測試用例。好比在上述用例的基礎上,我有以下需求變動:
我但願用戶點擊搜索
按鈕,而不是直接經過敲擊回車
完成搜索
我但願在搜索結果出來以後,自動打開搜索結果的第一項
過程如動圖所示:
具體過程以下:
手動建立按鈕對象btnSearch
替換searchByRecord
實驗中的回車事件,將其變爲點擊btnSearch
點擊一個搜索結果,可是此時我不知道第一個搜索結果的元素是什麼,所以經過Spy
找到元素的XPath
值
用XPath
值建立搜索結果的連接對象
在腳本代碼中加入WebUI.click
觸發點擊事件
Katalon
在使用上仍是很是簡單的,效率也很是高,使人眼前一亮。本文中的例子仍是比較簡單的,在實際場景中確定還要複雜的多。好比我在本文開頭說的那個工做中的任務,我用腳本跑花了5-6個小時。在此過程當中,我只要時不時看一下進程是否是出現卡死或者異常的狀況,其他時間徹底能夠作本身的事(若是不想打開真實的瀏覽器運行代碼,也能夠直接使用Chrome(Headless)
或者Firefox(Headless)
菜單)。
關於一些高級和實用功能,我將在後續補充。