测试左移实战

SonarQube

https://sonarqube.hogwarts.ceshiren.com/

username: hogwarts202309
password: ceshiren.com

部署

#通用部署
docker run -d \
  --name sonarqube_temp \
  -p 9000:9000 -p 9092:9092 \
  sonarqube

正式部署

#创建容器网络
docker network create sonarqube

#创建数据库容器实例
docker run -d \
  --name sonarqube_postgres \
  --network sonarqube \
  -e POSTGRES_USER=sonarqube \
  -e POSTGRES_PASSWORD=sonarqube \
  -e PGDATA=/var/lib/postgresql/data/pgdata \
  -v $PWD/postgresql_data:/var/lib/postgresql/data \
  postgres

#创建sonarqube容器实例,可以通过-Xms4g -Xmx4g增加下ES的堆内存大小
#mac环境需要加 -e SONAR_SEARCH_JAVAADDITIONALOPTS="-Dbootstrap.system_call_filter=false"
docker run -d  \
  --name sonarqube_hogwarts \
  -p 9000:9000 -p 9092:9092 \
  --network sonarqube \
  -e SONARQUBE_JDBC_USERNAME=sonarqube \
  -e SONARQUBE_JDBC_PASSWORD=sonarqube \
  -e SONARQUBE_JDBC_URL="jdbc:postgresql://sonarqube_postgres/sonarqube" \
  -e SONAR_SEARCH_JAVAADDITIONALOPTS="-Xms2g -Xmx2g" \
  -e SONARQUBE_WEB_JVM_OPTS="-Xms1g -Xmx1g" \
  -v $PWD/sonarqube_data:/opt/sonarqube/data \
  -v $PWD/sonarqube_extensions:/opt/sonarqube/extensions \
  -v $PWD/sonarqube_logs:/opt/sonarqube/logs \
  sonarqube

export SQ_HOST=https://sonarqube.hogwarts.ceshiren.com/
export SQ_TOKEN=sqa_75f342f46439662ab655868fe8fa25efdba12e02
cd sonar-scanning-examples/sonarqube-scanner
sonar-scanner -Dsonar.host.url=$SQ_HOST -Dsonar.login=$SQ_TOKEN

演练示例

git clone https://github.com/SonarSource/sonar-scanning-examples.git
cd sonar-scanning-examples

scanner

课间练习

  • 搭建sonarqube 可选 可以使用公共演练环境
  • 创建token
  • 下载示例项目
  • 下载sonar-scanner
  • 分析一段项目代码并上传到sonarqube

代码审计与分析

git clone https://github.com/linlinjava/litemall.git
cd litemall

代码规则

覆盖率统计

mvn clean  \
  org.jacoco:jacoco-maven-plugin:prepare-agent  test  \
  org.jacoco:jacoco-maven-plugin:report \
  org.sonarsource.scanner.maven:sonar-maven-plugin:LATEST:sonar \
  -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true \
  -Dsonar.host.url=$SQ_HOST -Dsonar.login=$SQ_TOKEN