软件测试之怎样才能硬性管制标识符纯度

发表于:2021-12-14 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:寻梦者d    来源:网络

  一、背景
  一般来说业务流程是SDK必须呈交标识符,然后会全自动促发CI/CD,依据校对最终来预判标识符是不在意能被merge上去。而标识符的纯度却不能被管制到。那么我们怎样才能来开展管制呢?总体上是采用以上的业务流程:
  gerrit呈交标识符-->促发jenkinsjob--->校对后下载sonar研究报告-->shellJAVA加载sonar的API,给予关键因素的纯度统计数据后预判是不在意之积--->jenkins将执行者最终离开给gerrit-->依据jenkins的离开最终预判是不在意merge标识符。
  二、实际顺利实现
  在这些简单的业务流程中,最基本的是gerrit和jenkins的嵌入式以及怎样才能下载sonarqube研究报告。当然本版不在意讲授该怎样才能嵌入式。shellJAVA大概能够分为以上五步:
  1、预判sonar研究报告已经下载获得成功,保证是这次呈交相关联的sonar研究报告。
  2、curl命令去加载api,给予关键因素纯度统计数据。
  3、依据纯度统计数据离开各不相同的值,离开1指出纯度未达标,jenkinsjob也会功亏一篑,同时jenkins会给gerrit离开-1操作方法;离开0指出纯度第一关,jenkinsjob会是获得成功竞技状态,jenkins会给gerrit离开+1操作方法。
  后面充分考虑将最终目标移去出来,毕竟可能多个team关注的纯度指标各不相同,不过多个JAVA都必须执行者最终目标.于是就有了两个JAVA:sonarCheckStatus.sh、sonarCheckQuality.sh;
  最终目标sonarCheckStatus.sh的实际顺利实现如下:
  #!/bin/bash
  #set-ox
  projectName=$1
  url="$SONAR_address"
  functiongetStatus(){
  urls=$url'api/ce/component?component='$projectName;
  flag=12;
  while[$flag-gt5]
  do
  result=`curl-k-XGET$urls`;
  #ifsonarprojectisprivate
  #result=`curl-k-u$username:$password-XGET$urls`;
  analyze=`echo$result|awk-F:'{print$11}'|awk-F'"''{print$2}'`;
  if["$analyze"=="SUCCESS"];then
  echo"sonarqubereportanalyzesuccessfully!!!!!Pleaseexecutecheckscript"
  break;
  fi
  echo"reportisanalyzing!!!sleep20secondsandscanningagain"
  sleep20;
  ((flag--));
  done
  if[$flag-le5];then
  echo"Don'tgettheanalysisresult,pleaseadjustthevalueofflagorcheckurl&projectName"
  return1;
  fi
  }
  getStatus
  这些JAVA主要是充分考虑到一般来说sonarqube分析项目时都绝不会超过五分钟,所以每次加载sonar的api来预判研究报告是不在意全自动更新,除非全自动更新了,就离开0,除非sonar还在分析研究报告,就午睡20秒后继续加载该API,再继续预判,除非120秒都没获得成功,JAVA就离开-1,jenkinsjob就功亏一篑了。
  三、其他
  1.为什么选用shellJAVA,而不在意pythonJAVA?
  毕竟最开始的充分考虑是所有的linux模块都能够直接选用shellJAVA,而pythonJAVA必须全自动装设python,出于最重影响的充分考虑,选取用shell.不过后来发现其顺利实现在的模块会全自动装设Python2.7.大家选取自己会的语言即可。
  2.sonarqube的研究报告仍旧处于pending竞技状态,造成JAVA仍旧离开-1,标识符仍旧不能merge上去。
  这些问题是虽然sonarqube本身造成的,sonarqube的重大任务执行者是单伫列的形式,Beauvoisin重大任务阻断的时候,会block住某些的重大任务.而标识符不能merge是毕竟jenkins给gerrit离开了-1,开发女同学看到-1后绝不会同意合并标识符到主支系.(在gerrit上也能够设置:只要jenkins离开了-1,就严禁其他人merge标识符)。
  3.JAVA如果置于哪里
  JAVA置于jenkinsjob中,是借由JAVA离开1或0来管制jenkinsjob的竞技状态,从而给gerrit离开相关联的竞技状态码。
  4.业务流程的优劣势
  特点是:该业务流程在整体上满足纯度管制的需求,能够对关键因素纯度统计数据开展黄线.所以不必须太多更少的依赖于。
  不足之处是:虽然是借由sonarqube的能力来管制纯度,所以必须依赖于sonarqube的竞技状态,当sonar停机时,该业务流程不能正常运行.所以,必须更少的成本来完成并管理shellJAVA。搜索多测师。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号