title = "盤點2021年最值得學習的自動化測試框架"
description = ""
author = "乙醇"
tags = []
魔幻的2020年馬上就要過去了,竟然有一點點猝不及防。
我們還是要向前看,戴着口罩繼續前行,這里就簡單盤點一下2021年最值得學習的自動化測試框架吧。
selenium
毫無疑問,selenium仍然是目前市面上最值得測試同學學習的ui自動化測試框架。
selenium擁有穩定的api,這意味着你每次的selenium版本升級都相當安全。
selenium官方支持java/python/ruby等主流語言,另外由於webdriver協議具有很強的擴展性,因此你幾乎可以找到大部分主流語言的selenium binding,比如go/javascript等,這無疑使得selenium在真實項目中的應用變得相對容易。
selenium支持所有的主流瀏覽器,而且是官方支持,這使得selenium在做兼容性測試上有着天然的優勢。
selenium擁有活躍的社區,穩定的核心開發者,廣泛的使用人群,這使得你可以非常容易的找到各種文檔,資料,教程以及解決你實際遇到問題的各種線索。有時候我們放棄使用一個框架往往是因為我們遇到問題以后嘗試各種方法都無法解決,這點在selenium上可能不會成立。
selenium背后的webdriver協議基本上定義了各種ui自動化框架的開發規范,比如怎么開啟session,如何定位元素和表示元素等等,這也孕育了一些流行的ui測試框架,比如appium等。
想象這樣一種情形:你們公司需要將web的ui自動化測試跑起來,但是測試人員對自動化測試的了解非常有限,希望盡快開始動手嘗試,頭緒不多,選擇卻很多,這時候其實就可以無腦選擇python+selenium,哪怕用例最終沒辦法穩定跑起來,但整個學習的過程都會讓團隊及公司收益。這就跟我們練習跑步一樣,盡管最終不是人人都可以去跑馬拉松,但練習的工程卻能讓我們的身體受益。
總之selenium對於測試同學來說是性價比最高的測試工具,並且除了測試,selenium在爬蟲,自動化效率提升上面也有天然獨特的優勢。
推薦程度:🌟🌟🌟🌟🌟,五顆星。
puppeteer
selenium在無界面的瀏覽器領域一直表現的都很掙扎,比如多年前的headless模式在面對稍微復雜的js頁面時就一籌莫展,puppeterr的出現正好彌補了這一遺憾。
關於puppteer我之前有過詳細介紹,其實就是無界面的chrome瀏覽器,這里就不過多解釋了,相對於有界面的瀏覽器,puppeteer有着獨特的優勢。
- google官方出品,chrome團隊維護,穩定性相對可以得到保證
- 相對簡單高效的api,使用方便
- 沒有界面,資源占用相對可控,並且可以在瀏覽器端運行,天生有着雲瀏覽器的潛力和屬性
- 用戶眾多,資料豐富,遇到一般問題都可以搜索解決;
- js語言調用,前端開發者基本沒有太大的學習成本
- 生態豐富
不過原生的pupetter在調試上相對於selenium就沒有那么方便了,好在一些第三方擴展可以緩解這些問題。
peppeteer適合這樣的場景:對web頁面進行持續的性能統計,一些不需要很高效但卻要行為真實的爬蟲,以及簡單持續以及穩定的自動化驗證用例。
推薦程度:🌟🌟🌟🌟,四顆星,適合有高級需求的同學
appium
appium是移動端自動化測試的領導者,是webdriver協議瓜熟蒂落的產物,它的出現看起來在意料之外,但其實也在情理之中。如果你想在andorid/ios以及移動web上都使用同一套框架的話,appium大概是目前的最佳選擇。
appium的設計思想來源於selenium,所以有着跟selenium相似的優勢
- 支持多種語言
- api簡單而且接近selenium
- 相對活躍的社區以及使用者
如果你對移動端自動化一無所知而且需要快速開始進行自動化測試工作的化,那么閉着眼睛用appium就可以了。 如果你對測試框架的性能以及其他方面有定制性的需求,那么你可能需要花更多的時間研究其他的框架。
推薦程度:🌟 🌟 🌟 🌟 四顆星
cypress
cypress是一款易用性很強的測試工具,其宣傳的口徑是下一代的自動化測試工具,從其提供的時間穿梭和實時刷新等功能來看,確實是目前自動化測試領域的game chagers。
cypress是用javascript實現,很好的結合了可視化和專業性,並且提供了強大的debug能力,對於新手來說是非常友好的。
針對selenium的一些祖傳問題,比如調試困難,所見並非所得,生態完善但工具鏈不完善等問題,cypress很好的給出了自己的答案,那就是all in one。只要你用了cypress,那么所有的一切cypress都幫你搞定,如果說用selenium是拼樂高的話,那么cypress就是直接玩拼好的成品,可玩性雖然低了一點,但是所見即所得,這對很多新人來說應該就是正義吧。
推薦程度:🌟🌟🌟 三顆星,生態目前看來還很新,不過潛力巨大
各種語言自帶的單元測試框架
比如python的unittest框架,java的junit框架(嚴格來說junit框架並不是java自帶的)等,這些基本的框架就像是蓋房子過程中的地基和承重牆,基礎打的牢固了,才能萬丈高樓平地起。
這些框架其實並不是特別適合對於編程一無所知的純小白,推薦大家在有一定的語言基礎之后進行學習。
推薦程度:🌟🌟🌟🌟🌟 五顆星