二十五、爬取毛豆新車的數據
2817
2022-05-30
1?????????引言
對于當前的網絡應用來說,編寫和部署代碼的時間已經縮短到了幾秒鐘。在這種背景下,測試的大部分責任都放在了開發人員身上,他們主要是依靠許多基于代碼的測試自動化平臺來進行測試。
盡管這些工具很好,也很廣泛,但并不是所有的開發人員都在使用它們。
沒有編寫測試代碼的開發人員經常使用的借口有:
他們沒有時間,
學習曲線太陡峭,
他們已經嘗試過了,但沒有成功,
或者他們的管理層并不關心。
然而,這些借口并不足以成為開發人員避免編寫測試代碼的理由。
自動化測試有助于在開發過程中更早地發現缺陷和問題。自動化測試也可以為廣泛的應用場景編寫。而且一旦創建了一個測試套件,它可以被現有的測試場景和未來的場景重復使用。
通過適當的工具和框架,測試自動化的入門很容易。自動化測試比以往任何時候都要簡單。你需要做的就是選擇兩個框架:
一個是用于編寫和運行測試代碼的測試自動化框架,
一個是用于模擬Web瀏覽器的瀏覽器自動化框架。
通過本文我們就來了解一下這些框架的作用,哪些是最流行的選擇,并討論各自框架的優缺點。
2?????????瀏覽器自動化框架
瀏覽器自動化框架所做的事情遠不止是模擬一個網絡瀏覽器。
首先,這些框架可以啟動完整或無頭瀏覽器。無頭瀏覽器是一種沒有圖形用戶界面(GUI)的瀏覽器。無頭瀏覽器比完整的瀏覽器更輕更快,這使得它們成為自動化開發人員測試的理想工具。
這些框架還提供了一個API,可以在你的測試代碼中使用。這個API可以模擬用戶的瀏覽器交互,捕捉屏幕截圖,找出輸入字段的值,并執行其他自動化任務。不幸的是,選擇一個瀏覽器自動化框架將需要更多的工作。下面介紹三種最流行的選擇:
2.1????Selenium Webdriver
2.1.1????官網
https://www.selenium.dev/documentation/en/webdriver/
2.1.2????許可
Apache 2.0
2.1.3????特點
如果你正在尋找最安全的自動化框架,Selenium Webdriver是你的最佳選擇。在這里介紹的三個框架選項中,Selenium Webdriver存在的時間最長。它是一個開源項目,有一個非常活躍的開發者和支持社區。Selenium Webdriver最好的一點是它是更廣泛的Selenium生態系統的一部分。它不僅為JavaScript提供了開發者綁定,還為Java、C#、Python、Ruby、PHP和Perl等語言提供了綁定。
隨著時間的推移,Selenium Webdriver已經擁有了廣泛的功能,它是這里介紹的三個框架中唯一一個支持所有五個主要的網絡瀏覽器(Chrome、IE、Edge、Firefox和Safari)的框架。
Selenium Webdriver的構建器API可以讓你輕松配置和啟動你想要的瀏覽器實例,并設置相關的配置選項。它還可以讓你編寫代碼來模擬廣泛的瀏覽器用戶交互,例如在文本框中輸入文本或點擊按鈕。
雖然Selenium Webdriver具有很好的通用性、功能和集成性,但由于它的運行速度比競爭對手Puppeteer和Cypress.io慢得多,所以它正在流失一些客戶。
2.2????Puppeteer
2.2.1????官網
https://github.com/puppeteer/puppeteer
https://developers.google.com/web/tools/puppeteer/get-started
2.2.2????許可
Apache 2.0
2.2.3????特點
較新的框架之一是Puppeteer。Puppeteer對于模擬類似人類的瀏覽器交互行為非常出色。像Selenium Webdriver一樣,它可以模擬廣泛的瀏覽器用戶交互行為。
Puppeteer還具有Selenium Webdriver所缺乏的一系列功能。它可以捕獲屏幕截圖并生成特定屏幕的PDF。如果你想用它來進行可視化測試,這是一個很好的選擇。
它的高速度也是很多開發者選擇測試工具的一大考量。
Puppeteer的另一個主要賣點是,它與Chrome及其調試和開發者工具高度集成。這一點應該不奇怪,因為和Chrome一樣,Puppeteer也是由Google開發并支持的。因此,如果你只在Chrome中開發和測試你的應用程序,Puppeteer是一個很好的選擇。然而,如果你使用Firefox、Edge或Safari進行開發或測試,Puppeteer無法正常工作,你應該選擇Selenium Webdriver。
2.3????Cypress.io
2.3.1????官網
https://docs.cypress.io/
2.3.2????許可
MIT
2.3.3????特點
Cypress.io是一款免費、開源的前端測試工具。與前面兩個框架不同,它是一個完整的測試解決方案。它沒有宣稱自己是一個通用的測試自動化解決方案,因為它的主要重點是對Web應用的用戶體驗進行端到端測試。
Cypress.io最大的賣點是它的速度非常快。它通過在瀏覽器內部運行來實現這一速度優勢。這意味著它與你的應用程序的源代碼在同一個執行循環中運行,這一點與Puppeteer和Selenium相反,另外這兩個與渲染應用程序代碼的瀏覽器進程在不同的進程中運行。這意味著Cypress.io不需要支持進程間通信所需的控制協議。這也解決了任何拖慢發送和接收命令和響應的系統或網絡延遲。
當談到討論Cypress.io的任何缺點時,他們的文檔對產品的優點和權衡持開放態度,令人耳目一新。可能影響你決定的三個最重要的缺點與Cypress.io在瀏覽器內運行測試的方式有關。
首先,Cypress.io的方法使其更難與后端服務器進行通信,這將意味著你需要安裝額外的模塊。
其次,它不支持測試多個瀏覽器tab。
最后,它一次只能控制一個瀏覽器實例。
3?????????趨勢
在我們考察的瀏覽器自動化框架中,你需要在Selenium Webdriver和Puppeteer之間做出決定。如果你想要一個快速、一體化的解決方案,Cypress.io是最好的選擇。
4?????????參考
https://www.browserstack.com/guide/top-javascript-testing-frameworks
https://www.lambdatest.com/blog/top-javascript-automation-testing-framework/
https://applitools.com/blog/comparing-javascript-browser-automation-frameworks/
https://testguild.com/top-8-essential-javascript-automation-frameworks/
https://stackshare.io/stackups/cypress-vs-puppeteer
自動化測試
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。