自動化測試工具分析和總結-實時更新
目錄
JUnit
簡介
JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源於Kent Beck的sUnit的xUnit家族中最為成功的一個JUnit有它自己的JUnit擴充套件生態圈。多數Java的開發環境都已經整合了JUnit作為單元測試的工具。通常我們寫完程式碼想要測試這段程式碼的正確性,那麼必須新建一個類,然後建立一個 main() 方法,然後編寫測試程式碼。如果需要測試的程式碼很多呢?那麼要麼就會建很多main() 方法來測試,要麼將其全部寫在一個 main() 方法裡面。這也會大大的增加測試的複雜度,降低程式設計師的測試積極性。而 Junit 能很好的解決這個問題,簡化單元測試,寫一點測一點,在編寫以後的程式碼中如果發現問題可以較快的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
目前主流的版本時JUnit4
Mockito
簡介
Mockito是根據MIT許可證釋出的Java開源測試框架。 Mockito通過允許開發人員預先確定被測系統(SUT)的行為來區別於其他測試框架。
Mockito是GitHub上使用最廣泛的Mock框架,並與JUnit結合使用.Mockito框架可以建立和配置mock物件.使用Mockito簡化了具有外部依賴的類的測試開發!
步驟
一般使用Mockito的步驟:
- 模擬任何外部依賴並將這些模擬物件插入測試程式碼中
- 執行測試中的程式碼
- 驗證程式碼是否按照預期執行
Robolectric
簡介
Robolectric可以非常方便的模擬Android環境進行單元測試,JUnit只能進行java的單元測試。在Android裝置上跑測試用例太慢了,編譯、部署、啟動app要花費很多時間。Robolectric是一個單元測試框架,測試是執行在jvm上的,只需要幾秒鐘。它的設計思路便是通過實現一套JVM能執行的Android程式碼,從而做到脫離Android環境進行測試。
測試驅動android開發
在安卓模擬器或者真機上跑測試用例速度很慢。構建、部署、啟動app,通常需要花費一分鐘或者更久。這不是TDD(測試驅動開發)模式.Robolectric提供一種更好的方式。
可能你一直嘗試在java IDE中使用junit或者testng直接跑測試用例,但是一直報java.lang.RuntimeException: Stub!異常。
這個異常是因為在jdk中沒有android執行環境。而現在Robolectric這款android單元測試工具,模擬了android sdk中的jar包,可以直接在jvm中執行測試用例,這樣就大大節省了時間。
SDK,Resource和Native Method模擬
Robolectric可以處理控制元件展示、資源載入和很多使用native C實現的真機上的其他功能。所以我們可以使用Robolectric來模擬真機上的大部分操作。我們可以很方便地獲取Robolectric的原始碼,直接檢視它的模擬機制,所以使用Robolectric,我們也可以模擬錯誤條件和一些真實的感測器訊號。
脫離模擬器執行測試用例
Robolectric允許我們在專案工程中或者持續整合(CI如hudson、jenkins)中使用jvm來執行測試用例,所以就省掉了打包、安裝的過程,將測試用例的執行時間由分鐘級降到秒級。
對比:
Selenium
簡介
Selenium`是開源的自動化測試工具,它主要是用於Web 應用程式的自動化測試,不只侷限於此,同時支援所有基於web 的管理任務自動化。它是一款用於執行端到端功能測試的超強工具。您可以使用多個程式語言編寫測試,並且 Selenium能夠在一個或多個瀏覽器中執行這些測試。
Selenium is a suite of tools to automate web browsers across many platforms.runs in many browsers and operating systems
can be controlled by many programming languages and testing frameworks.
Selenium 官網:http://seleniumhq.org/
Selenium Github 主頁:https://github.com/SeleniumHQ/selenium
Selenium 是用於測試 Web 應用程式使用者介面 (UI) 的常用框架。它是一款用於執行端到端功能測試的超強工具。您可以使用多個程式語言編寫測試,並且 Selenium 能夠在一個或多個瀏覽器中執行這些測試。
Selenium共包括三個版本:Selenium1.0 Selenium2.0 Selenium3.0
Selenium 1.0 = Selenium IDE + Selenium Grid + SeleniumRC
Selenium 2.0 = Selenium 1.0 + WebDriver
Selenium 3.0 = Selenium 2.0 + Selenium RC(Remote Control)
Selenium3現狀
- 去掉了對selenium rc的支援。
- 全面擁抱java 8。
- 支援macOS (Sierra or later),支援官方的safaridriver。
- 通過ms官方的webdriverserver支援Edge瀏覽器。
- 只支援ie 9.0版本以上。
- 通過Mozilla官方的geckodriver來支援firefox。
- 儘管firefox driver非常的穩定高效,但firefoxdriver畢竟是google實現的。geckodriver的出現是必然的結果,因為最新版本的firefox換引擎了,老的firefox driver應該是不支援新引擎的。
WebDriver意義
- •webdriver協議現在已經成為業內公認的瀏覽器ui測試的標準實現。webdriver協議是google對開源測試領域的重要貢獻。
- •各種官方支援意味著以後的瀏覽器ui測試的速度和穩定性會有較大的提升。
- •瀏覽器ui自動化測試已經成為了行業標配。
- • selenium專注web測試。
簡單來說,我們總是從建立WebDriver開始的,並通過WebDriver導航頁面和視窗,以及查詢元素等等
參考:Selenium全知 Selenium用法 Selenium3筆記
相關文章
- 自動化測試實踐總結
- 全鏈路效能壓測工具分析和總結-實時更新
- Android 下的自動化測試工具總結Android
- 自動化測試總結(二)
- Web前端自動化測試Cypress實踐總結Web前端
- APP UI自動化測試思路總結APPUI
- 介面自動化測試框架搭建總結框架
- 國產自動化測試工具
- 自動化測試工具QTPQT
- 漫談前端自動化測試演進之路及測試工具分析前端
- python自動化測試(一)--uiautomator總結PythonUI
- 自動化測試 RobotFramework自定義靜態測試類庫總結Framework
- 手工測試和自動化測試 BattleBAT
- Android自動化測試工具實現簡述Android
- 自動化測試:Monkey工具實踐應用~
- 關於介面測試自動化的總結與思考
- iOS自動化測試驅動工具探索iOS
- 自動化測試系列 —— UI自動化測試UI
- bats-Bash自動化測試工具BAT
- 微軟自動化測試工具palywright微軟
- Linux GUI自動化測試工具LinuxGUI
- 自動化測試工具縮小開發和交付差距
- 【自動化測試】移動端測試輔助工具 - adb
- Playwright自動化測試工具之元素定位實戰
- 自動化測試 RobotFramework-ride使用相關總結FrameworkIDE
- UI自動化測試實戰UI
- API自動化測試實踐API
- airtest自動化測試工具快速入門AI
- 效能自動化測試工具Loadrunner篇
- 【自動化測試入門】自動化測試思維
- Docker與自動化測試及其測試實踐Docker
- 「UI 測試自動化selenium」彙總UI
- 介面自動化測試世界裡的“身份證”—測試工具Jmeter實踐篇JMeter
- API自動化測試平臺,高效實現對API的自動化測試API
- AutoRunner 功能自動化測試專案實訓之自動化測試原理(一)
- 滲透測試與自動化安全測試工具比較
- Airtest結合tidevice實現IOS自動化測試AIIDEdeviOS
- Facebook推出JavaScript單元測試和自動化Mock工具JestJavaScriptMock