当前位置: 首页 > 知识库问答 >
问题:

SonarQube 5.1-Apache JMeter插件-发布性能报告数据

闻人和泽
2023-03-14

我有SonarQube 5.1,JMeter插件安装在SonarQube是0.3。Maven是:3.1.0

我有一个简单的单级Maven项目,带有一些测试和JMeter jmx文件。

我成功地生成了测试结果(单元测试)和JMeter结果文件(XML格式的.jtl文件,而不是默认的CSV格式)。参考:jtl文件中的Sonarqube+Jmeter错误

项目的pom.xml如下所示:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.company.csa.reference</groupId>
    <artifactId>csa-reference-app</artifactId>
    <version>0.0.17-SNAPSHOT</version>
  </parent>

      <properties>
              <sonar.host.url>http://sandboxserver12.tsh.thomson.com:9000</sonar.host.url>
                      <sonar.jdbc.url>jdbc:h2:tcp://sandboxserver12.tsh.thomson.com:9092/sonar</sonar.jdbc.url>
                              <sonar.jdbc.driverClassName>org.h2.Driver</sonar.jdbc.driverClassName>
                                      <sonar.jdbc.username>sonar</sonar.jdbc.username>
                                              <sonar.jdbc.password>sonar</sonar.jdbc.password>

        <sonar.junit.reportsPath>target/surefire-reports</sonar.junit.reportsPath>
                <sonar.surefire.reportsPath>target/surefire-reports</sonar.surefire.reportsPath>

        <sonar.java.junit.reportsPath>target/surefire-reports</sonar.java.junit.reportsPath>
                <sonar.java.surefire.reportsPath>target/surefire-reports</sonar.java.surefire.reportsPath>
                        <sonar.groovy.junit.reportsPath>target/surefire-reports</sonar.groovy.junit.reportsPath>
                                <sonar.groovy.surefire.reportsPath>target/surefire-reports</sonar.groovy.surefire.reportsPath>

        <sonar.language>java</sonar.language>
                <sonar.sources>src/main/java</sonar.sources>
                        <sonar.tests>src/test/java</sonar.tests>
                                <sonar.binaries>target/classes</sonar.binaries>

        <sonar.java.binaries>target/classes</sonar.java.binaries>
                <sonar.groovy.binaries>target/classes</sonar.groovy.binaries>

      </properties>

  <artifactId>a_test_app</artifactId>
  <packaging>war</packaging>
  <name>a_test_app Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>8.1.15.v20140411</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>
      <version>8.1.15.v20140411</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>a_test_app</finalName>
      <plugins>
            <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                            <artifactId>sonar-maven-plugin</artifactId>
                                    <version>2.7.1</version>
                                          </plugin>
                                            </plugins>

  </build>
</project>

当我运行mvn sonar:sonar时,它工作成功,但显示如下行:

[INFO] [02:35:54.784] Sensor JMeterSensor
[INFO] [02:35:54.784] Sensor JMeterSensor (done) | time=0ms
..
..
[DEBUG] [02:35:57.410] Post-jobs : org.sonar.plugins.jmeter.JMeterPostJob@79854a9e -> org.sonar.plugins.issueassign.notification.SendIssueNotificationsPostJob@3c848bb2 -> org.sonar.plugins.buildbreaker.AlertBreaker@55faaed1 -> org.sonar.plugins.buildbreaker.ForbiddenConfigurationBreaker@295790db
[INFO] [02:35:57.410] Executing post-job class org.sonar.plugins.jmeter.JMeterPostJob
[DEBUG] [02:35:57.411] START JMeterPostJob
[INFO] [02:35:57.411] Getting JMeter results from /path/home/user/giga/csa/a_test_app/target/jmeter/results/CSARefApp.jtl
[DEBUG] [02:35:57.420] getInputStreamByTestConfig for config 'a_test_app Maven Webapp'
[DEBUG] [02:35:57.420] JTL path: /path/home/user/giga/csa/a_test_app/target/jmeter/results/CSARefApp.jtl
[DEBUG] [02:35:57.423] Creating JtlAbstractSampleReader ...
[INFO] [02:35:57.636] Starting global summary report for config 'testapp Maven Webapp'
[DEBUG] [02:35:58.055] JtlAbstractSampleReader read 240 nodes
[INFO] [02:35:58.055] Global summary report successful finished for config 'testapp Maven Webapp'
[DEBUG] [02:35:58.062] JMeter GlobalSummary:
mostUnstableTransBytesOkAvgDevPercent=0.0
mostUnstableTransName=null
mostUnstableTransResponseTimeOkAvgDevPercent=0.0
requestsBytesOkAvg=17003.4375
requestsBytesOkAvgDev=41125.73795246031
requestsBytesOkAvgDevPercent=241.86719863239603
requestsErrorPercent=0.0
requestsErrorTotal=0
requestsOkPerMinute=2452.7337761880426
requestsOkPerMinuteAndUser=122.63668880940213
requestsOkTotal=160
requestsResponseTimeOkAvg=48.5
requestsResponseTimeOkAvgDev=152.453354037334
requestsResponseTimeOkAvgDevPercent=314.33681244811135
requestsTotal=160
slowestTransBytesOkAvgDevPercent=0.0
slowestTransName=null
...
......
..........
transMapResponseTimeOkAvgDevPercent={Transaction_Welcome=57.41068190712635, Transaction_Snoop=56.1112617700907, Transaction_Healthcheck=139.89028322965896, Transaction_Logout=50.02351333561716}
transOkPerMinute=1226.3668880940213
transOkPerMinuteAndUser=61.318344404701065
transOkTotal=80
transOrder=[Transaction_Healthcheck, Transaction_Snoop, Transaction_Welcome, Transaction_Logout]
transResponseTimeOkAvg=97.0
transResponseTimeOkAvgDev=210.29557258321267
transResponseTimeOkAvgDevPercent=216.79955936413677
transTotal=80
usersLogged=20
[DEBUG] [02:35:58.066] END JMeterPostJob

一切看起来都很好,但我想知道,尽管我拥有的.jtl文件是有效的,而且Jenkins Performance plugin reports显示了有效的数据/图形,但为什么它会显示以下一行。为什么声纳忽略了它。我尝试将JMeter result.jtl文件放在target/JMeter/results和target/jmeter-reports文件夹下,但是SonarQube中的JMeter小部件(在项目的仪表板上)不显示任何数据,如下所示。

[INFO] [02:35:54.784] Sensor JMeterSensor (done) | time=0ms

这是不是因为现在JMeter插件不推荐使用http://docs.sonarqube.org/display/plug/deprecated+plugins?

我在SonarQube的JMeter插件部分中不再看到设置了,您可以在我的SonarQube版本中指定本地jtl文件。

如果我看到这个矩阵,它表明SonarQube中的JMeter插件的0.3版本与所有可用的SonarQube版本兼容。有关JMeter兼容性,请参见此处:http://docs.sonarqube.org/display/plug/plugin+version+matrix

此外,GitHub中的sonar-plugin是0.5版本https://GitHub.com/sonarcommunity/sonar-jmeter(但根据其兼容性矩阵,在SonarQube文档站点中没有列出)。

不知道我现在错过了什么。

共有1个答案

牛凌
2023-03-14

您在Sonar项目上配置了JMeter属性吗?

  • 确保为Sonarqube安装了Jmeter插件。
  • 配置项目

>

  • 给出.jtl文件的路径。

    项目>设置>常规设置>JMeter>本地jtl文件

    然后在ProjectOverview选项卡中,转到Configure widgets>search:,搜索JMeter>Add Widget

    再次运行你的声纳看看新的结果。

  •  类似资料:
    • 我应该修复所有的错误和警告吗?只有到那时我的应用程序才会发布吗? 我发现我的应用程序正在不同的设备上测试,不同的屏幕尺寸和RAM。是否可以在flutter或google play控制台中指定最小屏幕大小和/或RAm,以便我的应用程序只在这些设备上测试? 导致崩溃的一个错误也与我的应用程序无关。如下所示

    • 测试目的 主要了解Nacos的服务发现性能负载和容量,协助我们更好的管理Nacos性能质量,帮助用户更快的运用评估Nacos系统负荷。 测试工具 我们使用自研的PAS性能评估服务平台进行压测,其原理是基于利用JMeter引擎,使用PAS自动生成的JMeter脚本,进行智能压测。 测试环境 1.环境 指标 参数 机器 CPU 16核,内存32G 集群规模 3节点 Nacos版本 1.0.0 2.设置

    • 测试说明 本次性能测试,测试了 dubbo 2.0 所有支持的协议在不同大小和数据类型下的表现,并与 dubbo 1.0 进行了对比。 整体性能相比 1.0 有了提升,平均提升 10%,使用 dubbo 2.0 新增的 dubbo 序列化还能获得 10%~50% 的性能提升,详见下面的性能数据。 稳定性测试中由于将底层通信框架从 mina 换成 netty,old 区对象的增长大大减少,50 小时

    • 你能帮我做以下几件事吗? 进行量角器测试。

    • 我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(

    • 我有一个项目,我使用Jacoco计算代码覆盖率。我使用maven配置,如下所示: http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/ 我和詹金斯一起运行“mvn清洁安装