盡管在很多情況下測試自動化是有意義的,但一些測試場景是不應(yīng)該使用自動化測試工具的,比如Selenium、WebDriver。
下面有10個示例,來解釋為什么自動化在這種情況下使用時沒有意義的,我還將為您提供每種方法的替代方法。
01
驗證碼
CAPTCHA是完全自動的公共的圖靈測試,以區(qū)分計算機和人類之間的區(qū)別的簡稱,它的存在是為了防止自動化,因此甚至不值得嘗試。
在測試過程中,有兩種主要策略可以解決CAPTCHA檢查問題。如下:
在測試環(huán)境中禁用CAPTCHA。這可能是被測軟件中的簡單配置?;蛘呱踔量梢栽跍y試的URL參數(shù)中配置;
添加一個掛鉤,以允許測試?yán)@過驗證碼。
02
外觀測試
視覺自動化測試意味著檢查頁面如何呈現(xiàn)和呈現(xiàn)給最終用戶。這對于檢查多種設(shè)備和屏幕分辨率非常有價值。我們中的許多人試圖通過使用代碼檢查單個頁面上是否存在數(shù)十個甚至數(shù)百個元素來做到這一點。WebDriver不是正確的工具。
03
雙因素認(rèn)證
您不應(yīng)該通過UI自動化的另一種情況是雙因素身份驗證(或2FA)。即使用“身份驗證器”移動應(yīng)用(例如Google Authenticator或Microsoft Authenticator)生成一次密碼,并通過SMS或電子郵件發(fā)送一次密碼的地方。
在Selenium中自動化它是一個巨大的挑戰(zhàn),但這并不意味著它無法完成。盡管可以自動化,但它是要添加的另一層,并不安全。因此,最好避免完全自動化。
解決2FA檢查的三個選項如下:
在測試環(huán)境中為某些用戶禁用2FA,因此您可以在自動化中使用這些用戶憑據(jù)。
在測試環(huán)境中禁用2FA。
如果您從某些IP登錄,請禁用2FA(通過這種方式,您可以配置測試計算機的IP來避免這種情況)。
04
文件下載
通過API自動執(zhí)行文件下載不是理想的方法,因為API不會公開下載進度。下載文件不被視為模擬用戶與Web平臺交互的必要方面。
因此,您應(yīng)該考慮完成此解決方法:
使用Selenium和任何必需的cookie查找鏈接,并將其傳遞給HTTP請求庫,例如REST保證 (Java),fetch (JavaScript)或 libcurl (跨平臺) 。
05
HTTP響應(yīng)代碼
HTTP狀態(tài)代碼是Internet上網(wǎng)站服務(wù)器給出的標(biāo)準(zhǔn)響應(yīng)代碼。當(dāng)網(wǎng)頁或其他資源無法正確加載時,這些代碼有助于確定問題的原因。在自動化功能測試中,檢查狀態(tài)碼不是測試失敗的特別重要的細(xì)節(jié);之前的步驟更為重要。
最好將API測試保留在這一層。WebDriver不是API測試工具。因此,您可以使用諸如 REST Assured(Java),fetch(JavaScript)和 RestSharp(.NET)之類的庫。
06
Gmail、電子郵件和Facebook登錄
您不應(yīng)該通過UI自動化的另一種情況是Gmail,電子郵件和Facebook登錄。不建議使用WebDriver登錄這些類型的網(wǎng)站。這違反了使用條款,而且速度慢且不可靠。
一般而言,較長的測試更加脆弱且不可靠,這使您面臨測試失敗的風(fēng)險。對超過20億次測試的研究證實,持續(xù)時間超過2分鐘的測試失敗的可能性是原來的兩倍。
相反,最好使用電子郵件提供商提供的API,或者對于Facebook,使用 公開顯示用于創(chuàng)建測試帳戶的API的開發(fā)人員工具服務(wù)(Gmail API在這里)。
使用API似乎有些額外的工作,但是您將獲得速度,可靠性和穩(wěn)定性的回報。API也不太可能更改。但是,網(wǎng)頁和HTML定位器經(jīng)常更改,并且需要您更新測試框架。
07
性能測試
通常不建議使用Selenium和WebDriver進行性能測試,因為它并未針對工作進行優(yōu)化,因此您不太可能獲得有價值的結(jié)果。WebDriver測試受到許多外部和內(nèi)部脆弱性的影響,而這超出了您的控制范圍。
其中包括瀏覽器的啟動速度,HTTP服務(wù)器的速度,托管JavaScript或CSS的第三方服務(wù)器的響應(yīng)以及WebDriver實現(xiàn)本身的檢測損失等。它將導(dǎo)致結(jié)果變化。您將獲得較慢的性能測試,其中包括后端和前端性能。
而是使用免費工具(例如 Google Lighthouse) 來提高前端性能。然后,使用免費工具(如Apache JMeter)執(zhí)行單獨的負(fù)載或壓力測試 。
為了發(fā)現(xiàn)需要改進的地方,您需要能夠獨立于環(huán)境差異來分析總體性能,識別不良的代碼實踐并分解單個資源(即CSS或JavaScript)的性能。
08
鏈接爬蟲
我不建議使用WebDriver進行鏈接爬蟲,換句話說,通過鏈接來爬網(wǎng)。您可以做到,但是WebDriver絕對不是此任務(wù)的理想工具,因為它需要一些時間才能啟動。這可能需要一分鐘的時間,具體取決于測試的編寫方式,只是要轉(zhuǎn)到頁面并遍歷文檔對象模型。
此外,編寫遍歷頁面和捕獲鏈接的邏輯只是浪費時間。
除了使用WebDriver,還有許多更簡單的方法??梢运阉鬟@兩個免費工具:
www.brokenlinkcheck.com,它在幾分鐘之內(nèi)就找到了我網(wǎng)站上所有斷開的鏈接。
www.deadlinkchecker.com 。
09
視頻流
如今,視頻流越來越流行,但是您可能不想通過UI對其進行自動化。Selenium通常無法識別視頻控件。JavaScript Executor和flex-ui-selenium可以在某種程度上起作用,但是它們并不完全可靠。
相反,請查看 StreamTest,它是一個免費工具,可以衡量最終用戶的體驗質(zhì)量。您甚至可以添加監(jiān)視。
10
崩潰恢復(fù)
恢復(fù)測試是一種軟件測試技術(shù),可驗證軟件從故障(例如軟件和硬件崩潰)中恢復(fù)的能力。您可能要測試應(yīng)用程序的崩潰恢復(fù)。最好手動測試。這并不是說您不能使用Selenium進行測試,但是這樣做并不可行或無益。
對于可靠性測試,從開發(fā)的各個階段(例如設(shè)計和操作階段)收集數(shù)據(jù)。由于成本和時間等限制,測試受到限制。
11
總結(jié)
以上是您不應(yīng)該通過UI自動化的十大場景。包括驗證碼測試、外觀測試、雙因素驗證、視頻、崩潰、鏈接爬蟲、性能測試、文件下載、http狀態(tài)碼、電子郵件登錄。
您可以在工作時參考它們,并嘗試在開發(fā),編碼和測試時確定最佳的方法。
盡管在某些情況下有變通辦法,但首先考慮為什么不應(yīng)該自動化這些特定元素的原因。
(責(zé)任編輯:代碼如詩) |