1. 程式人生 > >sonarQube自動化測試之sonar-runner進行測試

sonarQube自動化測試之sonar-runner進行測試

                                                                                                                                                                             在網上看了許多sonarQube的教程,首先這裡向大家說明下兩者的關係 sonarQube是一個(程式碼質量管理平臺)開源平臺,用於管理Java原始碼的質量,通俗點說個人認為其實類似於一個伺服器,就像Tomcat或者是JBOSS一樣. 用伺服器這個空架子肯定不能進行檢測程式碼,而sonar-runner相當於是在這個平臺下測試的一個掃描程式碼的工具,兩者配合著使用才能進行通用的自動化測試(適合任意工程使用,maven工程和ant工程也同樣適用)另有其他幾種情況,以後在慢慢陳述,開始進入正題,即怎麼樣進行測試 .

在這裡提出些建議:無論遇到什麼問題,我們從這是什麼,為什麼,怎麼用切入問題的話,看待事物的角度就會加深一層。

以測試環境 win7 32/64

準備條件:jdk環境,1.5以上版本,已有的資料庫(oracle,mysql,sqlserver等)

測試 :

步驟1:安裝sonarQube

首先解壓sonarQube到任意目錄(目錄不要有中文)

eg:

這裡我用的是5.1.1版本,該版本的連結地址為: http://www.sonarqube.org/downloads/,

這裡官網已經更新到了5.1.2版本,


sonarQube是不需要進行環境變數配置的,只需要將其解壓到指定目錄即可,並且是免安裝的,直接就可以使用,根目錄下的bin目錄進入後選擇相應的作業系統和位數,進入後點擊StartSonar.bat執行服務.這裡執行前必須裝好jdk,如果出現無法啟動服務,命令列出現wrapper stopped的情況,那麼重啟電腦,一般就會解決

,啟動後在伺服器上輸入localhost:9000(sonarQube的預設埠號) 點選login,預設賬戶名和密碼為 admin和admin.進入如果出現這個頁面就說明sonarQube平臺啟動成功了.(這裡小編已經把原有的英文替換成了中文,大家第一次進入時中文的哦),中文需要在官網下載外掛進行安裝或者是線上安裝.


線上安裝的方式是:

settings(配置)-update center(升級中心)-available plugins(可用外掛)-localization(本地化)-選擇Chinese Pack,點選就會出現install按鈕,點選安裝,重啟sonarQube之後就是中文了.



進去後在配置sonarQube的配置,配置檔案在sonarQube安裝目錄下的conf目錄,進入後點擊sonar.properties,進行編輯

這裡填寫四個值,分別是

sonar.jdbc.username=root   //資料庫使用者連線名
sonar.jdbc.password=hehaoyu //資料庫連線密碼

sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance//資料庫連結

sonar.jdbc.driverClassName: com.mysql.jdbc.Driver //資料庫驅動

 注意:在sonarQube當中需要注意的是如果是Oracle資料庫的話需要新增oracle jdbc的jar包,其它sonarQube是自帶的,不用新增,Oracle的jar包在這個目錄下

         

     步驟2:安裝sonar-runner

相同的方法解壓sonar-runner到指定的任意目錄,目錄也不要有中文,同樣也是免安裝

連結地址:http://www.sonarqube.org/downloads/


這裡,sonar-runner需要配置環境變數,宣告一個SONAR_RUNNER_HOME的變數名,變數值就是sonar-runner的安裝目錄,在這裡我的變數值就是D:\sonar-runner-dist-2.4\sonar-runner-2.4,大家對應自己的目錄修改,然後再Path變數名下加入值%SONAR_RUNNER_HOME%\bin(注意變數值要用分號 ; 隔開)

然後配置sonar-runner的配置檔案

點選sonar-runner目錄下的conf,編輯sonar-runner.properties

sonar.host.url=http://localhost:9000 sonar本地ip地址

sonar.jdbc.url=jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8  Mysql本地連結地址

sonar.jdbc.username=root 資料庫連線賬號
sonar.jdbc.password=hehaoyu
   資料庫連線密碼

sonar.login=admin sonarQube平臺登入賬號
sonar.password=admin
   sonarQube平臺登入密碼

步驟3:在想測試的任意一個在工程根目錄下新建立一個sonar-project.properties配置檔案

裡面寫上:

# Required metadata

sonar.projectKey=Monkey

sonar.projectName=Monkey

sonar.projectVersion=15.07.28(建議版本號採用這種格式)

# Comma-separated paths to directories with sources (required)

sonar.sources=src

sonar.binaries=build (當時我寫的是這樣(build\classes\)結果報錯了,如果只寫上build目錄則不會報錯)

# Language

sonar.language=java

# Encoding of the source files

sonar.sourceEncoding=UTF-8

說明:sonar.projectKey=Monkey

projectKey與projectName和工程名字一樣也行,projectKey和projectName不一樣也可以,寫成一樣目的在於好區分

sources為原始碼目錄

build為編譯後的classes目錄,sonar會自動遍歷所有目錄

language為分析的語言

sourceEncoding原始碼編碼格式

步驟4:執行命令列,生成結果


OA5就是當前專案的根目錄

先讓命令列進入到指定專案的目錄下,然後執行sonar-runner命令

(特別注意:由於命令這一形式建的多了,所以習慣性的把sonar-runner寫成了 sonar -runner,中間多了一個空格,當時我一直沒看出來是什麼原因,sonar-runner一定是緊挨著呢)

成功則會顯示

重新登入到sonarQube主頁上,你會發現右邊多了一個專案的分析結果


下面就是我們想要的分析結果