小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

超詳細(xì),自動(dòng)化測(cè)試接入Jenkins+Sonar質(zhì)量門禁實(shí)踐

 測(cè)試開發(fā)技術(shù) 2022-06-18 發(fā)布于廣東

干貨技術(shù),第一時(shí)間送達(dá)!

大家好,我叫董鑫,一名在測(cè)試開發(fā)道路上的新手,是狂師老師全棧測(cè)開訓(xùn)練營(yíng)上一期的學(xué)員。第一階段的學(xué)習(xí)已然結(jié)束,收獲頗多,了解了很多在自己平時(shí)測(cè)試工作無(wú)法接觸到的新知識(shí),比如這次在這里分享的Sonarqube進(jìn)行靜態(tài)代碼掃描并集成Jenkins的知識(shí),是分享也是自我學(xué)習(xí)的總結(jié)。若有不對(duì)的地方,還請(qǐng)各位同行,同學(xué),老師及時(shí)指正。

之前在公眾號(hào)也分享過(guò)一篇文章:測(cè)開新手:從0到1,自動(dòng)化測(cè)試接入Jenkins學(xué)習(xí)

1. 什么是SonarQube

SonarQube是一個(gè)開源的代碼質(zhì)量管理系統(tǒng),用于檢測(cè)代碼中的錯(cuò)誤,漏洞和代碼規(guī)范,通過(guò)插件的機(jī)制,

可以基于現(xiàn)有的Gitlab、Jenkins 集成、以便在項(xiàng)目拉取后進(jìn)行連續(xù)的代碼檢查。

優(yōu)點(diǎn):

◆ 支持眾多計(jì)算機(jī)編程語(yǔ)言

◆ 通過(guò)插件機(jī)制能集成IDE、Jenkins、Git等

◆ 內(nèi)置大量常用代碼檢查規(guī)則

◆ 支持定制開發(fā)規(guī)則

◆ 可視化界面

◆ 支持從可靠性、安全性、可維護(hù)性、覆蓋率、重復(fù)率等 方面分析項(xiàng)目

具體的配置及文檔可以訪問(wèn)下面的鏈接查看:

https://www./downloads/ 
https://docs./latest/analysis/scan/sonarscanner/ 

2. Jenkins插件安裝及配置

Sonarqube想要與Jenkins集成,需要安裝相應(yīng)的插件來(lái)支持。

在插件管理中搜索名為Sonarqube Scanner for Jenkins的插件 并安裝。

安裝好插件后,還需要配置相應(yīng)的服務(wù)和工具信息:

2.1. 系統(tǒng)設(shè)置->SonarQube servers

  • name:可自定義)
  • server url:這個(gè)地址就是你sonar服務(wù)所在的地址
  • token:在sonar項(xiàng)目中生成的token

2.2. 全局工具配置》SonarQube Scanner

建議不采用自動(dòng)安裝,使用手動(dòng)下載配置好的sonar scanner

  • name:自定義sonar scanner名稱,建議使用sonar-scanner
  • SONAR_RUNNER_HOME:sonar scanner所在的家目錄

3. 自由風(fēng)格的job使用sonar

3.1 配置代碼倉(cāng)庫(kù)地址:

3.2 勾選sonarqube 服務(wù)并選擇token:

3.3 在構(gòu)建中添加Exeute SonarQube Sanner

這里可以使用兩種方式:

  • a. 直接將sonar-project.properties配置內(nèi)容寫到 Analysis properties 中
  • b. 將配置好的sonar-project.properties文件放置在代碼目錄中,在 Path to project properties 配置相應(yīng)的文件名

建議使用第二種方式來(lái)管理我配置的sonar-project.properties文件如下:

保存好后,就可以來(lái)構(gòu)建了。構(gòu)建后項(xiàng)目頁(yè)面可以直接跳轉(zhuǎn)到sonarqube服務(wù)查看。

4. pipeline流水線使用sonar

4.1 構(gòu)建一個(gè)流水線job,流水線pipeline script如下編寫:

pipeline {
    agent any

    stages {
        stage('拉取代碼') {
            steps {
                git credentialsId: 'gitee', url: 'https:///dx0001/work.git'
            }
        }
        stage('靜態(tài)代碼靜態(tài)掃描') {
            steps {
                withSonarQubeEnv('sonarqube'){
                    bat "sonar-scanner"
                }
            }
        }
    }    

注意:這里的名稱是在Jenkins中系統(tǒng)管理--sonarqube servers添加的名稱 同樣的,設(shè)置好job后就可以構(gòu)建進(jìn)行代碼掃描了。

5. 接入Sonar質(zhì)量門禁

通過(guò)上面的job,只是代碼掃描可能無(wú)法滿足日常的情況,當(dāng)掃描的結(jié)構(gòu)不滿足時(shí)我可能就不進(jìn)行后面的步驟了,這樣的情況,我們就需要接入質(zhì)量門禁的方式來(lái)實(shí)現(xiàn)。

5.1 在sonar服務(wù)端的質(zhì)量閥中設(shè)置質(zhì)量門禁,添加要運(yùn)用的項(xiàng)目

質(zhì)量配置->質(zhì)量閥

這里可以添加指標(biāo)來(lái)定義通過(guò)掃描的條件。然后將設(shè)置的質(zhì)量閥分配給要掃描的項(xiàng)目。

5.2 在sonar服務(wù)端的配置里面添加網(wǎng)絡(luò)調(diào)用hook

配置->網(wǎng)絡(luò)調(diào)用

這里添加Jenkins調(diào)用的地址,用來(lái)回調(diào)掃描的結(jié)果。URL配置為:Jenkins地址+/sonarqube-webhook

5.3 流水線改造

pipeline {
    agent any

    stages {
        stage('拉取代碼') {
            steps {
                git credentialsId: 'gitee', url: 'https:///dx0001/work.git'
            }
        }
        stage('靜態(tài)代碼靜態(tài)掃描') {
            steps {
                withSonarQubeEnv('sonarqube'){
                    bat "sonar-scanner"
                }
            }
        }
        stage('檢查結(jié)果分析') {
            steps {
                script{
                    timeout(5){
                        def qg=waitForQualityGate()
                        echo "結(jié)果狀態(tài):${qg.status}"
                        if(qg.status!='OK')
                            error '未達(dá)到代碼門禁要求!'
                    }
                }
            }
        }
    }
}

在上面的流水線的job上增加一個(gè)“檢查結(jié)果分析”的步驟,使用waitForQualityDate()的方法來(lái)獲取掃描是否通過(guò)質(zhì)量閥的狀態(tài)值。最后使用if條件來(lái)判斷,不通過(guò)時(shí)則使用“error”來(lái)中斷流程,實(shí)現(xiàn)質(zhì)量門禁的功能。

6. 小結(jié)

此次分享就到這里了,更多的是自我知識(shí)沉淀的過(guò)程,第一階段的學(xué)習(xí)雖已結(jié)束,但對(duì)于我更多的是開始,很多的知識(shí)需要自己動(dòng)手搭環(huán)境來(lái)實(shí)踐,我很享受這個(gè)過(guò)程。將一個(gè)個(gè)知識(shí)落實(shí),弄清楚,是一件令我非常高興的事情。接觸并學(xué)習(xí)更多測(cè)試開發(fā)的知識(shí),在測(cè)試的道路上越走越寬,越走越遠(yuǎn),為此,奮力前進(jìn)!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多