自動的自動化:EvoSuite 自動生成JUnit的測試用例
EvoSuite簡介
EvoSuite是由Sheffield等大學聯合開發的一種開源工具,用於自動生成測試用例集,生成的測試用例均符合Junit的標準,可直接在Junit中執行。得到了Google和Yourkit的支援。
intelliJ IDEA外掛
開啟IDE,進入setting(mac版本是Preferences),選擇plugins,點選Browse repositories,搜尋EvoSuite Plugin,然後選擇Install plugin。
Maven 外掛引入
當前支援Maven3.1以上版本。
Maven工程可以通過引入EvoSuite的Maven外掛來生成新的測試用例。使用Maven外掛有如下好處:
1、可以和Jenkins結合,方便快速的執行EvoSuite
2、測試用例生成在pom.xml檔案約定好的工程目錄下
3、通過Maven的依賴引入EvoSuite,無需單獨下載獨立的jar檔案。
外掛的引入如下:
<pluginManagement>
<plugins>
<plugin>
<groupId>
org.evosuite.plugins
</groupId>
<artifactId>
evosuite-maven-plugin
</artifactId>
<version>
${evosuiteVersion}
</version>
<executions><execution>
<goals>
<goal>
prepare
</goal>
</goals>
<phase>
process-test-classes
</phase>
</execution></executions>
</plugin>
</plugins>
</pluginManagement>
引入依賴:
<dependency>
<groupId>
org.evosuite
</groupId>
<artifactId>
evosuite-standalone-runtime
</artifactId>
<version>
${evosuiteVersion}
</version>
<scope>
test
</scope>
</dependency>
設定版本的變數(最新版可以在http://www.evosuite.org/downloads/查詢):
<properties>
<evosuiteVersion>
1.0.6
</evosuiteVersion>
</properties>
由於EvoSuite是生成的JUnit的檔案,因此需要引入Junit的依賴。
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
4.12
</version>
<scope>
test
</scope>
</dependency>
EvoSuite的使用
EvoSuite的外掛將會對對應的子模組的所有的類進行測試用例生成分析,再分析前需要保證對應程式碼是build過的。通過外掛選取或者mvn compile evosuite:generate 開始分析。
預設情況下會在模組目錄下生成.evosuite目錄,目錄裡面是測試用例,如果想要修改那麼可以通過如下外掛進行配置
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
build-helper-maven-plugin
</artifactId>
<version>
1.8
</version>
<executions>
<execution>
<id>
add-test-source
</id>
<phase>
generate-test-sources
</phase>
<goals>
<goal>
add-test-source
</goal>
</goals>
<configuration>
<sources>
<source>
${customFolder}
</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
特別提醒:如果上面的變數${customFolder}是.evosuite/evosuite-tests,那麼不需要再次執行evosuite:export
詳情參見官方文件:http://www.evosuite.org/documentation/
結語:
最後跟大家推薦一個學習資料分享群:175317069,裡面大牛已經為我們整理好了許多的學習資料,有自動化,介面,效能等等的學習資料!
人生是一個逆水行舟的過程,不進則退,我們們一起加油吧!
相關文章
- 測者的測試技術手冊:自動的自動化EvoSuite 自動生成JUnit的測試用例UI
- Junit測試Android自動化測試Android
- Ant+junit的測試自動化 (轉)
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 自動化測試系列 —— UI自動化測試UI
- 手工測試用例與自動化測試用例的區別
- 基於 LangChain 的自動化測試用例的生成與執行LangChain
- 自動化裝置測試與自動化測試的區別
- 【自動化測試入門】自動化測試思維
- Jmeter 介面自動化連載 (13) - 自動生成測試報告JMeter測試報告
- 基於LangChain手工測試用例轉Web自動化測試生成工具LangChainWeb
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 基於LangChain手工測試用例轉App自動化測試生成工具LangChainAPP
- 利用tox打造自動自動化測試框架框架
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- API自動化測試平臺,高效實現對API的自動化測試API
- 自動化測試理解
- 自動化測試思路
- airTest自動化測試AI
- 介面自動化測試
- API自動化測試API
- 自動化測試框架框架
- 自動化元件測試元件
- 測試開發之自動化篇-自動化測試框架設計框架
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 測試資料之自動生成
- 利用 OpenAI 的文字生成模型,自動生成測試用例的幾個場景示例OpenAI模型
- 介面自動化使用requests生成測試報告測試報告
- 自動化測試的理想境界:AppCrawler自動遍歷工具APP
- 淺談自動化測試
- python自動化測試Python
- 音訊自動化測試音訊
- 加速Web自動化測試Web
- 自動化測試框架思路框架
- 前端自動化測試探索前端
- 國產自動化測試工具
- 軟體測試自動化