У меня есть 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
Это связано с тем, что теперь 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 в соответствии с их матрицу совместимости).
Не уверен, что мне не хватает в этот момент.
Hi Tuan. Как я уже упоминал в своем сообщении, я не вижу вариант для локального окна JTL в настройках JMeter (в графическом интерфейсе SonarQube). Виджет JMeter уже включен. Похоже, что более новые версии SonarQube 5.1 или далее не содержат поля box/field для указания локального файла .jtl. Кроме того, я пытался передать -Dsonar.jmeter.jtlpath = ... он тоже не работал. –
@ArunSangal Я использую SonarQube 5.1.1. Я добавил изображения в свой ответ. – Tuan
Спасибо Tuan. Теперь я вижу, что есть JMeter в глобальных настройках и на уровне проекта. Im возможность получить виджет JMeter заполнить результаты сейчас. Есть ли способ щелкнуть по любому из разделов/ссылок/графиков в виджете JMeter? –