0

У меня есть SonarQube 5.1, плагин JMeter, установленный в SonarQube, равен 0,3. Maven is: 3.1.0SonarQube 5.1 - Плагин Apache JMeter - Опубликовать данные отчета о производительности

У меня есть простой проект Maven на одном уровне с некоторыми тестами и jmx-файлом JMeter.

Я успешно генерирую результаты теста (модульные тесты) и файл результата JMeter (файл .jtl в формате XML вместо стандартного CSV-формата). См: pom.xml Sonarqube + Jmeter error in jtl file

проекта выглядит следующим образом:

<?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> 

Когда я бегу МВН гидролокатора: сонар, она успешно работает, но показывает следующие строки:

[INFO] [02:35:54.784] Sensor JMeterSensor 
[INFO] [02:35:54.784] Sensor JMeterSensor (done) | time=0ms 
.. 
.. 
[DEBUG] [02:35:57.410] Post-jobs : [email protected] -> org.sonar[email protected]3c848bb2 -> [email protected] -> [email protected]790db 
[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 отображаются достоверные данные/графы вс. Почему Сонар игнорирует это. Я попытался поместить файл .jtl с результатом JMeter под обоими объектами target/jmeter/results и папка цели/jmeter-reports, но виджет JMeter в SonarQube (на панели инструментов проекта) НЕ отображает данные, как показано ниже.

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

enter image description here

Это связано с тем, что теперь JMeter плагин устаревшей http://docs.sonarqube.org/display/PLUG/Deprecated+Plugins?

Я не вижу заходящего больше в разделе JMeter Plugin в SonarQube, где вы можете указать свой МЕСТНОГО ДжейТиЭл файл в моей версии SonarQube.

Если я вижу эту матрицу, она показывает версию 0.3 плагина JMeter в SonarQube, совместимую со всеми доступными версиями SonarQube. Смотрите здесь для совместимости JMeter: http://docs.sonarqube.org/display/PLUG/Plugin+Version+Matrix

Также сонар-плагин в GitHub является 0,5 версии https://github.com/SonarCommunity/sonar-jmeter (но не перечислены на сайте SonarQube Docs в соответствии с их матрицу совместимости).

Не уверен, что мне не хватает в этот момент.

ответ

1

Вы настроили свойство JMeter в проекте Sonar?

  • Убедитесь, что вы установили плагин Jmeter для SonarQube.

Sonar jmeter

  • Настройка вашего проекта

Sonar Jmeter

  • Дайте путь к вашим .jtl файлов.

    Project > Settings > General Settings > JMeter > Local jtl file

enter image description here

Затем на вкладке Project Overview, перейдите Configure widgets > Search:, поиск JMeter>Add widget.

Запустите свой сонар снова, чтобы увидеть новый результат.

enter image description here

+0

Hi Tuan. Как я уже упоминал в своем сообщении, я не вижу вариант для локального окна JTL в настройках JMeter (в графическом интерфейсе SonarQube). Виджет JMeter уже включен. Похоже, что более новые версии SonarQube 5.1 или далее не содержат поля box/field для указания локального файла .jtl. Кроме того, я пытался передать -Dsonar.jmeter.jtlpath = ... он тоже не работал. –

+0

@ArunSangal Я использую SonarQube 5.1.1. Я добавил изображения в свой ответ. – Tuan

+0

Спасибо Tuan. Теперь я вижу, что есть JMeter в глобальных настройках и на уровне проекта. Im возможность получить виджет JMeter заполнить результаты сейчас. Есть ли способ щелкнуть по любому из разделов/ссылок/графиков в виджете JMeter? –