<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      單元測試平臺平臺搭建:sonarQube+sonarScanner+Jenkins+jacoco

      單元測試平臺搭建及結果分析

      一、方案

      需求目標:提高單元測試覆蓋率和規范代碼編寫規范
      選用工具:Sonarqube、sonarqube Scanner、Jenkins、jacoco
      方案
      工程中引入jacoco進行代碼覆蓋率統計,通過sonarqube scanner掃描工程編寫規范,編寫單元測試代碼后,結合Jenkins每次的編譯部署自動執行代碼規范掃描和單元測試代碼,并將結果推送到sonarqube平臺進行圖形展示。
      步驟

      • 1、選擇合適的測試框架:選擇一個適合項目的單元測試框架,例如JUnit(Java項目)。
      • 2、設置測試環境:確保在測試環境中安裝和配置所有必需的軟件和工具,包括構建工具、依賴項管理器和代碼覆蓋率工具等。
      • 3、編寫測試代碼:編寫單元測試代碼,測試各個單元功能是否按預期工作。確保覆蓋代碼的不同路徑和邊界情況。需要開發配合。
      • 4、自動化測試:使用持續集成工具Jenkins設置自動化測試流程,以便在每次代碼提交或定期基準測試時運行單元測試。
      • 5、代碼覆蓋率檢查:使用代碼覆蓋率工具JaCoCo來檢測測試代碼覆蓋的代碼范圍,以確保測試足夠全面。
      • 6、測試結果:jenkins將結果推送到sonarqube平臺進行圖形展示。

      二、修改配置信息

      1、/etc/security/limits.conf 配置文件
      ulimit -n 是用來設置當前用戶的文件描述符限制(file descriptor limit)的命令。該限制用于控制一個進程可以同時打開的文件數。
      ulimit -u 是限制用戶最大可用進程數。

      /etc/security/limits.conf 中增加以下內容:

      * soft nofile 65536 
      * hard nofile 65536 
      * soft nproc 655350 
      * hard nproc 655350
      

      2、/etc/sysctl.conf 配置文件
      max_map_count 文件包含限制一個進程可以擁有的VMA(虛擬內存區域)的數量;
      fs.file-max 設置系統所有進程一共可以打開的文件數量

      /etc/sysctl.conf 中增加以下內容:

      vm.max_map_count = 524288 
      fs.file-max = 9223372036854775807
      

      配置文件生效:sudo sysctl -p

      3、查看配置結果

      三、安裝JDK11

      由于SonarQube和JDK及數據庫有對應版本要求,本次平臺搭建使用版本如下:

      • SonarQube 8.9.6
      • OpenJDK 11,
      • PostgreSQL 12

      1、卸載JDK 1.8:

      sudo apt-get remove openjdk-8-jdk
      

      2、安裝OpenJDK 11:

      sudo apt-get install openjdk-11-jdk
      

      3、配置環境變量:
      在安裝OpenJDK 11后,需要更新環境變量以指向新的JDK版本。vi ~/.bashrc
      在文件末尾添加以下行:

      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 
      export PATH=$JAVA_HOME/bin:$PATH
      

      4、使配置生效:
      在終端中執行以下命令以加載配置的環境變量:source ~/.bashrc

      5、驗證安裝:
      運行以下命令來檢查是否已正確安裝OpenJDK 11并使其生效:java -version

      四、Docker部署SonarQube、postgreSQL、pgAdmin4

      1、新建目錄/usr/local/docker/sonarqube_docker

      2、該目錄下新增docker-compose.yml文件
      配置信息如下:

      #docker-compose.yml
      version: "3"
      
      services:
        sonarqube:
          image: sonarqube:8.9.6-community
          restart: always
          container_name: sonarqube
          depends_on:
            - db
          environment:
            SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
            SONAR_JDBC_USERNAME: sonar
            SONAR_JDBC_PASSWORD: sonar
          volumes:
            - sonarqube_data:/opt/sonarqube/data
            - sonarqube_extensions:/opt/sonarqube/extensions
            - sonarqube_logs:/opt/sonarqube/logs
          ports:
            - "9000:9000"
        db:
          image: postgres:12
          container_name: postgresql
          ports:
            - "5432:5432"
          environment:
            POSTGRES_USER: sonar
            POSTGRES_PASSWORD: sonar
          volumes:
            - postgresql:/var/lib/postgresql
            - postgresql_data:/var/lib/postgresql/data
        pgadmin4:
          image: dpage/pgadmin4
          container_name: pgadmin4
          ports:
            - "5433:80"
          environment:
            - PGADMIN_DEFAULT_EMAIL=test@123.com
            - PGADMIN_DEFAULT_PASSWORD=123456
      
      volumes:
        sonarqube_data:
        sonarqube_extensions:
        sonarqube_logs:
        postgresql:
        postgresql_data:
      

      配置信息說明
      在這個文件中,我們定義了三個服務:sonarqube、postgresql和pgadmin4。
      sonarqube 服務運行代碼掃描服務,并將容器端口9000映射到主機端口9000。
      postgresql 服務將運行PostgreSQL數據庫,并將容器端口5432映射到主機端口5432。
      pgadmin4 服務將運行pgAdmin 4可視化工具,并將容器端口80映射到主機端口5433。
      postgresql和pgadmin4兩個服務都使用postgresql_data卷來共享數據。

      3、容器啟動命令
      啟動: sudo docker-compose up -d
      重啟sonarqube容器: sudo docker restart sonarqube

      4、訪問
      sonarqube:http://宿主機IP:9000/ 用戶名/密碼:admin/123456
      pgAdmin4:http://宿主機IP:5433/ 郵箱:test@123.com 密碼:123456

      5、配置sonarqube
      1)漢化:
      配置-->應用市場-->插件,搜索chinese-->安裝插件-->重啟容器

      2)開啟SCM:
      配置-->SCM-->Disable the SCM Sensor,打開

      3)得到登錄token令牌:
      我的賬號-->安全-->輸入字符串:jenkinsTest-->得到登錄token令牌

      sonarqube的令牌:
      jenkinsTest:e698cc590cc8f7362b30e6b987fd1e835bcb1186
      

      4)創建項目
      創建項目:esmc-->得到項目令牌-->得到maven掃描SonarQube的命令
      項目令牌:

      esmc-test: 9aad77f4ad3f3ecfc23c9178c7305e144991d0f6
      maven掃描SonarQube的命令:
      mvn clean verify sonar:sonar \
        -Dsonar.projectKey=esmc-test \
        -Dsonar.host.url=http://宿主機IP:9000 \
        -Dsonar.login=9aad77f4ad3f3ecfc23c9178c7305e144991d0f6
      

      說明:登錄token令牌和項目令牌,在后續配置jenkins的時候會用到,需要提前保存好。

      6、配置pgAdmin4數據庫
      1)登錄pgAdmin4,使用docker-compose.yml文件中配置的郵箱和密碼。
      pgAdmin4:http://宿主機IP:5433/
      用戶名:test@123.com 密碼:123456

      2)新增server:
      點擊Add New Server按鈕
      --> General填寫name:目前改成了PostgreSQL12
      --> connection填寫宿主機IP、用戶名、密碼:與docker-compose.yml配置文件中一致
      --> 保存

      3)查看表

      五、Jenkins集成sonarScanner

      說明:如果已經在Docker中安裝了SonarQube,一般不需要在服務器上單獨安裝SonarScanner。
      SonarScanner是用于執行SonarQube分析的命令行工具,通常在Jenkins或其他CI/CD工具中集成并使用。
      1、jenkins安裝sonarQube插件

      2、jenkins安裝jacoco插件

      3、sonarQube的配置:見前面配置

      4、Jenkins配置sonarQube
      1)添加憑證:
      選擇 Secret text 類型,輸入 SonarQube令牌,然后Secret中填入之前生成的登錄Token,ID只要不跟之前重復就行。

      2)系統管理:填寫sonar的地址,憑證

      3)全局工具管理:SonarQube servers配置項,增加 SonarQube

      4)項目流水線配置修改
      構建環境勾選:Delete workspace before build starts
      構建環境勾選:Prepare SonarQube Scanner environment

      Build Steps將目標修改為:

      clean verify sonar:sonar -Dsonar.projectKey=esmc-test -Dsonar.host.url=http://宿主機ip:9000 -Dsonar.login=9aad77f4ad3f3ecfc23c9178c7305e144991d0f6 package -Dmaven.test.skip=true
      

      保存后重新構建。

      六、掃描結果


      點擊SonarQube,跳轉到SonarQube平臺查看結果:

      結果分析:
      后端應用esmc,待解決的BUG有32個,其中主要BUG有26個,次要BUG有6;嚴重漏洞有3個;異味有3.3K。
      可靠性比率為D;安全性比率為D;安全審核等級為E;可維護性即SQALE評級為A;覆蓋率為0.0%;重復行密度為4.5%;總代碼行數為69961;圈復雜度為7126,認知復雜度為4589;違規問題3349,均為開啟問題。

      posted @ 2023-12-07 15:56  hqq的進階日記  閱讀(1678)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久99精品久久久久久9| 欧美成人一区二区三区不卡| 欧美野外伦姧在线观看| 色吊a中文字幕一二三区| 中文字幕亚洲国产精品| 国产最大的福利精品自拍| 一区二区中文字幕av| 日韩中文字幕av有码| 成人午夜视频一区二区无码| 亚洲国产成人无码影院| 日韩精品人妻中文字幕| 久久这里都是精品一区| 久久精品国产久精国产| 国产精品久久中文字幕| 久久亚洲日本激情战少妇| 1769国内精品视频在线播放| 三上悠亚精品一区二区久久| 国产麻豆放荡av激情演绎| 无遮挡aaaaa大片免费看| 玩两个丰满老熟女久久网 | 娱乐| 国产91麻豆精品成人区| 人妻系列无码专区免费| 国产欧美日韩精品丝袜高跟鞋| 中文字幕亚洲综合第一页| 国产麻豆精品久久一二三| 亚洲鸥美日韩精品久久| 久久国产自偷自偷免费一区 | 粉嫩av一区二区三区蜜臀| 国产福利在线观看免费第一福利| 国产一区二区一卡二卡| 视频一区视频二区中文字幕| 亚洲av激情综合在线| 免费可以在线看a∨网站| 日韩人妻无码精品久久| 欧美人与禽2o2o性论交| av天堂午夜精品一区| 中文字幕日韩精品人妻| 久久精品波多野结衣| 久久精品人妻少妇一区二| 日产精品久久久久久久|