一文教你使用Jenkins集成Junit自動化測試,超簡單!

2020-12-16 51Testing軟體測試網

隨著技術的發展,Devops的概念越來越深入人心,Devops使得構建、測試、發布軟體能夠更加地快捷、頻繁和可靠。DevOps對應用程式發布的有著重要影響,具備DevOps能力則發布軟體產品時風險更低,其中一個重要的原因就是自動化,減少了人工幹預,強大的部署自動化手段確保部署任務的可重複性、減少部署出錯的可能性。而實現軟體發布自動化的一個重要工具就是Jenkins。

Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,主要用於持續、自動的構建/測試軟體項目。Jenkins通常與版本管理工具(SCM)、構建工具結合使用。常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。

然而Jenkins只負責軟體產品的發布,本身並不負責軟體的測試工作。怎樣才能在Jenkins集成測試功能,使軟體發布時自動進行一些測試工作,減少人工測試成本呢?比如Jenkins集成Junit。而說到Junit,則無需過多介紹,其是一個被廣泛使用的Java語言的單元測試框架。Junit以前一般需要程式設計師手動執行,不符合Devops的標準,本文就探討了Jenkins集成Junit自動測試的方法。

二 Jenkins集成Junit自動測試

筆者使用GIT進行版本管理,構建工具為Maven,spring boot工程。前期已實現了使用Jenkins進行程序自動構建與發布,這裡不再具體闡述,僅以一張圖做闡述。

本章具體講述如何在Jenkins集成Junit進行自動測試。

首先使用maven創建一個項目,這裡以eclipse為例,單擊New Maven Project

簡要填寫下相關GroupID和Artifact ID並以pom包的形式創建父文件。

創建完成後,在test父文件的基礎上創建maven module,右鍵新的maven工程。

選擇Maven Module

填寫一個工程名稱。

創建完工程後,我們簡要編寫下相關業務邏輯代碼,業務邏輯的代碼全部寫在src/main/java下,如圖所示

之後,我們需要在java工程中引入相關依賴,以maven為例,pom文件增加如下部分:

spring-boot-starter-test這個依賴在spring boot框架中集成了單元測試所需要的各種註解和功能。

其次,在src/main/test的目錄下創建測試案例,maven會自動選擇這個目錄下的類來進行測試案例的執行。

編寫測試程序,主要需要用到幾個註解:@RunWith,@SpringBootTest,@Before,@Test。

其中@RunWith是Junit4提供的註解,將Spring和Junit連結了起來。假如使用Junit5,不再需要使用@ExtendWith註解,@SpringBootTest和其它@Test默認已經包含了該註解。

@SpringBootTest替代了spring-test中的@ContextConfiguration註解,目的是加載ApplicationContext,啟動spring容器。使用@SpringBootTest時並沒有像@ContextConfiguration一樣顯示指定locations或classes屬性,原因在於@SpringBootTest註解會自動檢索程序的配置文件,檢索順序是從當前包開始,逐級向上查找被@SpringBootApplication或@SpringBootConfiguration註解的類。

@Before,@Test則是Junit的註解,before下的方法一般負責一些準備工作,比如登錄操作等,test下則是具體的測試方法。代碼示例如下:

在測試程序中,一般一個test方法對應一個需要測試的後臺方法,並需要根據實際情況即使修改優化。

最後,我們需要在Jenkins配置一下,將maven的test指令加入到配置項中具體如下:

通過上述操作後,我們每次發布程序時,Jenkins除了自動構建發布程序外,還會通過maven命令自動執行對應的Junit測試程序,並在每次構建的任務顯示測試結果。測試結果圖示例如下:

通過郵件配置,可將測試結果等情況以郵件形式發送給相關技術人員,配置信息如下。

三、小結

通過本文,我們了解了如何在Jenkins集成Junit單元測試並自動執行。通過集成,使單元測試工作自動化,減少了測試人員的工作量,極大地方便了測試工作。不過,我們需要及時維護相應的測試程序,才能更加準確地體現測試結果。

關注我,每天分享軟體測試技術乾貨和求職技巧

相關焦點

  • 微服務下的持續集成-Jenkins自動化部署GitHub項目
    附圖一張我們的Jenkins:二、DevOps概念DevOps 一詞的來自於 Development 和 Operations 的組合,突出重視軟體開發人員和運維人員的溝通合作,通過自動化流程來使得軟體構建、測試、發布更加快捷、頻繁和可靠。
  • Jenkins持續集成
    4、測試人員發現bug,提交bug、開發人員修改bug5、bug修改完畢再次集成、測試。問題描述:1、模塊之間依賴關係複雜,在集成時發現大量bug2、測試人員等待測試時間過長3、軟體交付無法保障解決上述問題的思考:1、能否把集成測試時間提前?
  • 利用tox打造自動自動化測試框架
    什麼是toxtox官方文檔的第一句話 standardize testing in Python,意思就是說標準化python中的測試,那是不是很適合測試人員來使用呢,我們來看看他究竟是什麼?根據官方文檔的解釋,tox是一個管理測試虛擬環境的命令行工具,可以支持穿件隔離的python環境,在裡面可以安裝不同版本的python解釋器和項目的各種依賴庫,可以進行自動化測試、打包以及持續集成。
  • SpringBoot+GitLab+Docker+Jenkins實現持續集成下
    該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。接下來我們來編寫一個最簡單的SpringBoot入門項目。<?
  • 使用Kubernetes 和 Jenkins 創建一個 CI/CD 流水線
    每個人從一開始只是關心項目中自己的那部分工作而忽視了共同的目標。CI/CD 通過引入自動化來解決上述的問題。代碼中的每次改動一旦推送至版本控制系統,進行測試,然後在部署到用戶使用的生產環境之前部署至預生產/UAT 環境進行進一步的測試。自動化確保了整體流程的快速,可信賴,可重複,以及不容易出錯。
  • 手把手教你在Linux下搭建Jenkins實現自動部署
    Jenkins是一個開源的自動化伺服器,可以用來輕鬆地建立持續集成和持續交付(CI/CD)管道。持續集成(CI)是一種DevOps實踐,在這種實踐中,團隊成員定期將他們的代碼更改提交到版本控制存儲庫,然後運行自動化的構建和測試。
  • Docker+jenkins小知識,講解通俗易懂,有必要收藏
    持續集成是軟體開發中一個非常重要的環節,我們都知道持續集成的這種方式,不僅僅是影響軟體開發的效率,實際上還會對我們軟體開發的流程會產生一定的影響,例如:我們所選擇的構建的方式,那麼你的應用程式的部署的方式,軟體開發與測試需要不斷地對應用進行持續構建,這些都會受我們持續集成的構建的方案所影響。
  • Docker安裝Jenkins+Shell腳本自動化部署項目
    Jenkins是一款開源的CI&CD軟體, 提供超過1000個插件來支持構建、部署、自動化, 滿足任何項目的需要。Jenkins基於Java環境,可以部署在windows/Mac OS/linux上,通過其網頁可視化界面可以輕鬆操作Jenkins。
  • 如何在 Kubernetes 上配置 Jenkins?
    作為一款被廣泛使用的開源CI伺服器,Jenkins提供了數百個插件,能夠為我們項目的構建、部署和自動化提供有力支持。接下來,我們將:1.使用minikube創建一個Kubernetes集群(這步不是必須的,如果你已經有Kubernetes集群了的話,可以跳過這一步)。2.為Jenkins創建命名空間和持久卷。
  • 測試員,你遇到過哪些自動化致命難題?3步教你搬走這些絆腳石
    在自動化測試的過程中,你是否遇到過以下問題?1、一個人做自動化的時候挺和諧的,啥毛病沒有,多人自動化的時候就發現有很多衝突。2、腳本到底是拆分好,還是合在一起好,如果拆,要怎麼拆?3、具體的框架出來後,接下來就是各位自動化測試的工程師們按照既定的規則進行填充用例,覆蓋更多的場景。千萬不要零散的寫腳本,你一腳本我一個腳本,沒有規範,這樣其實對做持續集成來說會是一個非常難的事情,你可能會花很多的時間去調整腳本,所以一開始就要先搭設框架。
  • Jenkins Pipeline實例
    Jenkins 多分支流水線 Jenkins 流水線是一套插件,它支持實現和集成持續交付流水線到 Jenkins。流水線提供了一組可擴展的工具,用於通過流水線 DSL 將簡單到複雜的交付流水線建模為「代碼」。
  • 分布式測試系統建設
    原創:張少華背景隨著自動化測試用例的增長,模塊持續集成中的驗證環節時間也隨之增長。如果使用單臺機器,可能需要幾個小時的時間才能完成一次所有用例的運行。這裡我們能想到的最直接的方法,就是增加機器資源,並行運行測試用例。
  • LuckyFrame V3.3 Beta 發布,一站式自動化測試平臺
    LuckyFrame  V3.3 Beta 版本發布了,這是集自動化測試以及質量管理的統一平臺,自動化測試支持接口自動化& UI 自動化 & 移動自動化,兼容全平臺部署 (Windows
  • Jenkins 多環境 CI/CD 架構設計
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫來源:https://url.cn/5VKO1Gu自動化部署主要是為了解決項目多、環境多、持續集成慢、部署操作麻煩、手動操作易出錯、自動化運維等問題。
  • 觀點 傳統銀行敏捷自動化測試探索
    ,工具對於開展自動化測試的重要性自不待言,對自動化測試人員有三方面的要求:一是提升編程技巧。做為測試工程師要掌握一些高級語言,腳本語言,類似以java為重點phython等,如果常用web自動化測試,則考慮jsp、php等是必須掌握的。二是具備系統與資料庫經驗。
  • SpringBoot+GitLab+Docker+Jenkins實現持續集成上
    >測試人員發現bug,提交bug、開發人員修改bugbug修改完畢再次集成、測試但是這樣就出現了如下問題:模塊之間依賴關係複雜,在集成時發現大量bug測試人員等待測試時間過長可以採用持續集成來解決上述問題,那持續集成又是什麼呢?大師Martin Fowler對 持續集成 是這樣定義的:持續集成是一種軟體開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而儘快地發現集成錯誤。
  • Jenkins之聲明式pipeline基礎
    精華推薦:重磅發布 - 自動化框架基礎指南pdf介紹Jenkins 2.0的到來,pipline進入了視野,jenkins2.0的核心特性。也是最適合持續交付的feature。簡單的來說,就是把Jenkins1.0版本中,Project中的相關配置信息,如SVN/Git的配置,Parameter的配置等都變成Code,即Pipeline as Code。隨著pipeline交付流水線在團隊中的推廣,使用pipeline腳本的job也迅速增加。優勢1.
  • 12個可以替代jenkins的CI/CD工具
    但是,與當前的用戶界面趨勢相比,它的界面已經過時,用戶界面也不夠友好(苦葉子推薦你用script pipeline:Jenkins之jenkinsfile基礎)。此外,Jenkin配置可能比較複雜,而且它還有許多其他缺點。這裡列出了幾種可以替代Jenkins的工具。這個列表折衷了具有流行特性和最新下載連結的商業和開源的continuos集成工具。
  • Jenkins 從持續交付基金會畢業
    與之密切相關的是「持續集成(CI)」,持續集成是一種軟體開發實踐,開發團隊成員經常集成他們的工作,每次集成都通過自動化的構建(包括編譯、發布與自動化測試)來驗證,從而儘快發現集成錯誤。去年 3 月份,Linux 基金會成立了持續交付基金會(Continuous Delivery Foundation,CDF),以為重要的開源項目提供持續交付和規範,加快發布管道流程。
  • 一、jenkins安裝
    /redhat/jenkins-ci.org.key# 安裝jenkins#`-y`參數:回答全部問題為是 sudo yum -y install jenkins# 更新jenkinsyum update jenkins二、熟悉jenkins配置