精准化测试

参考连接

精准化测试

启动带有覆盖率统计功能的jmeter

java -javaagent:org.jacoco.agent-0.8.6-20200329.124039-45-runtime.jar=output=tcpserver,address=0.0.0.0,port=6300 -jar apache-jmeter-5.2.1/bin/ApacheJMeter.jar

获取覆盖率,根据需要决定是否重置覆盖率数据。如果要区分每个黑盒case的覆盖率,就需要加上。

java -jar org.jacoco.cli-0.8.6-20200329.124045-45-nodeps.jar dump --address=0.0.0.0 --port 6300 --destfile=jacoco_tcpserver3_setup.exec --reset

生成代码覆盖率

java -jar org.jacoco.cli-0.8.6-20200329.124045-45-nodeps.jar report jacoco_startup.exec --classfiles apache-jmeter-5.2.1/bin/ApacheJMeter.jar --sourcefiles /Users/seveniruby/projects/jmeter/src/launcher/src/main/java/  --html coverage/startup/

jacoco.sh


dump(){
local exec
local reset
[ -n "$reset" ] && reset="--reset"

java -jar org.jacoco.cli-0.8.6-20200329.124045-45-nodeps.jar dump --address=0.0.0.0 --port 6300 --destfile=$exec $reset
}
report(){
local exec
local dir
java -jar org.jacoco.cli-0.8.6-20200329.124045-45-nodeps.jar report $exec \
--classfiles jmeter-all.jar \
--sourcefiles /Users/seveniruby/projects/jmeter//src/launcher/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/core/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/junit-sample/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/ftp/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/native/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/bolt/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/junit/src/main/java/org/apache/jmeter/protocol/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/junit/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/mail/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/ldap/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/java/src/main/resources/org/apache/jmeter/protocol/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/java/src/main/java/org/apache/jmeter/protocol/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/java/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/mongodb/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/jdbc/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/tcp/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/http/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/protocol/jms/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/testkit/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/generator/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/components/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/examples/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/functions/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/bshclient/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/testkit-wiremock/src/main/java --sourcefiles /Users/seveniruby/projects/jmeter//src/jorphan/src/main/java \
--html $dir \
--xml $dir/jacoco.xml
}

sonar(){
local key
local version
local xml
local project
local bin
 sonar-scanner   \
  -Dsonar.host.url=http://sonarqube.testing-studio.com:9000   \
  -Dsonar.login=$SONARQUBE_TOKEN   \
  -Dsonar.projectKey=$key   \
  -Dsonar.projectVersion=$version \
  -Dsonar.coverage.jacoco.xmlReportPaths=$xml \
  -Dsonar.projectBaseDir=$project \
  -Dsonar.java.binaries=$bin
}

用法

exec=setup.exec reset=1  dump
exec=setup.exec dir=coverage/setup report
key=jmeter5.2.1 version=5.2.1 project=/Users/seveniruby/projects/jmeter/ bin=/Users/seveniruby/ke/java_2/jacoco/jmeter-all.jar xml=coverage/setup/jacoco.xml  sonar

质量监控

直播课程


软件测试/Java中高级测试开发「名企定向培养」班
名企定向班第二期——测试行为分析与漏测分析


软件测试/Java中高级测试开发「名企定向培养」班
名企定向班第二期——线上质量监控与用户行为建模

您好,想问一下,在sonar上面要区分单元测试、集成测试的覆盖率,是否要同一个项目用不同的projectKey来记录吗?

老师,目前自己只尝试通过maven插件上传了覆盖率到sonar,还有个两个场景还没有试过,想请教一下:

  1. 同一个版本,如果前面已经通过maven sonar插件上传了单测的覆盖率,后面通过sonar scanner上传了功能测试的覆盖率,sonar会把这两个覆盖率自动合并吗?
  2. 不同的两个版本,如果maven sonar 上传的时候都是缺少单测覆盖率文件的,但两个版本确实有代码改动,这种情况下sonar肯定是没有覆盖率展示数据了,但会有新增代码的统计吗?

sonarqube目前还不支持,可以自己编写插件。或者简单的用key分成不同的项目。

1、不会合并,只是使用第二次的覆盖率,他会认为你的覆盖率发生了变化。
2、新增代码跟覆盖率无关,会独立统计新增代码的

关闭