Я запускаю файл .jmx, используя код JMeter java в моем проекте maven. Я записал файл .jmx с помощью Blazemeter. Пожалуйста, обратитесь к приведенному ниже коду, который я пробовал.
package com.solitera.automation.controller;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import java.io.File;
import java.io.FileInputStream;
public class JMeterFromExistingJMX {
public static void main(String[] argv) throws Exception {
// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("D:/apache-jmeter-5.1.1/bin/jmeter.properties");
JMeterUtils.setJMeterHome("D:/apache-jmeter-5.1.1");
JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
// Initialize JMeter SaveService
SaveService.loadProperties();
// Load existing .jmx Test Plan
/* FileInputStream in = new FileInputStream("D:/Ecllipse_project_workspace2/slt_automation/src/test/jmeter/slt_autoMa_Test.jmx");
HashTree testPlanTree = SaveService.loadTree(in);
in.close();*/
HashTree testPlanTree = SaveService.loadTree(new File("D:/apache-jmeter-5.1.1/extras/slt_autoMa_Test.jmx"));
// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
}
}
После запуска как Java Приложение в eclipse -> Вывод:
SLF4J: путь к классу содержит несколько привязок SLF4J. SLF4J: Обнаружена привязка в [jar: file: / C: / Users / rajan / .m2 / repository / ch / qos / logback / logback-classic / 1.2.3 / logback-classi c -1.2.3. jar! /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Найдена привязка в [jar: file: / C: / Users / rajan / .m2 / repository / org / apache / logging / log4j / log4j-slf4j- impl / 2.12.1 / log4j-slf4j-impl-2.12.1.jar! /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: См. http://www.slf4j.org/codes.html#multiple_bindings для объяснения. SLF4J: фактическое связывание имеет тип [ch.qos.logback.classi c .util.ContextSelectorStaticBinder] 18: 56: 16.586 [main] WARN org. apache .jmeter.util.JMeterUtils - исключение 'null' произошло, когда выборка логического свойства: 'server.exitaftertest', по умолчанию: false 18: 56: 16.594 [main] WARN org. apache .jmeter.util.JMeterUtils - Возникла исключительная ситуация 'null' при получении логического свойства: 'jmeterengine.remote. system.exit ', по умолчанию: false 18: 56: 16.594 [main] WARN org. apache .jmeter.util.JMeterUtils - Возникла исключительная ситуация' null 'при получении логического свойства:' jmeterengine.stopfail.system.exit ', по умолчанию: true 18: 56: 16.594 [main] WARN org. apache .jmeter.util.JMeterUtils - При извлечении логического свойства возникла исключительная ситуация 'null': 'jmeterengine.force.system.exit', по умолчанию: false 18 : 56: 16.610 [main] INFO org. apache .jmeter.util.JMeterUtils - установка языкового стандарта en_IN 18: 56: 17.109 [main] INFO org. apache .jmeter.save.SaveService - версия плана тестирования (JMX) : 2.2. Testlog (JTL) версия: 2.2 18: 56: 17.148 [main] INFO org. apache .jmeter.save.SaveService - Использование файла свойств SaveService в кодировке UTF-8 18: 56: 17.156 [main] WARN org. apache .jmeter.save.SaveService - Невозможно зарегистрировать конвертер: org. apache .jmeter.protocol.http.util.HTTPResultConverter java .lang.ClassNotFoundException: org. apache .jmeter.protocol.http.util .HTTPResultConverter в java. net .URLClassLoader.findClass (URLClassLoader. java: 382) в java .lang.ClassLoader.loadClass (ClassLoader. java: 424) в sun.mis c. Launcher $ AppClassLoader.loadClass (Launcher. java: 349) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) в java .lang.Class.forName0 (собственный метод) в java .lang.Class.forName (Class. java: 264) в org. apache .jmeter.save.SaveService.registerConverter (SaveService. java: 285) в org. apache .jmeter.save. SaveService.registerConverter (SaveService. java: 260) в орг. apache .jmeter.save.SaveService.initProps (SaveService. java: 246) в орг. apache .jmeter.save.SaveServi ce. (SaveService. java: 165) на com.solitera.automation.controller.JMeterFromExistingJMX.main (JMeterFromExistingJMX. java: 75) 18: 56: 17.157 [главная] ИНФО org. apache .jmeter.save .SaveService - Использование свойств SaveService версии 5.0 18: 56: 17.175 [main] WARN org. apache .jmeter.save.SaveService - Невозможно зарегистрировать конвертер: org. apache .jmeter.protocol.http.sampler. HTTPSamplerBaseConverter java .lang.ClassNotFoundException: org. apache .jmeter.protocol.http.sampler.HTTPSamplerBaseConverter в java. net .URLClassLoader.findClass (URLClassLoader. java 10 *. 382): 382). lang.ClassLoader.loadClass (ClassLoader. java: 424) в sun.mis c .Launcher $ AppClassLoader.loadClass (Launcher. java: 349) в java .lang.ClassLoader.loadClass (ClassLoader. java: 357) в java .lang.Class.forName0 (собственный метод) в java .lang.Class.forName (Class. java: 264) в орг. apache .jmeter.save.SaveService .registerConverter (SaveService. java: 285) в орг. apache .jmeter.save.SaveService.registerConverter (SaveService. java: 260) в орг. apache .jmeter.save.SaveService.initProps (SaveService. java: 246) в орг. apache .jmeter. save.SaveService. (SaveService. java: 165) на com.solitera.automation.controller.JMeterFromExistingJMX.main (JMeterFromExistingJMX. java: 75) 18: 56: 17.181 [main] INFO org. apache .jmeter .save.SaveService - Загрузка файла: D: \ apache -jmeter-5.1.1 \ extras \ slt_autoMa_Test.jmx Исключение в потоке "main" java .lang.IllegalArgumentException: проблема при загрузке XML из: 'D: \ apache -jmeter-5.1.1 \ Extras \ slt_autoMa_Test.jmx. Причина: CannotResolveClassException: org. apache .jmeter.protocol.http.control.HeaderManager
Подробности: com.thoughtworks.xstream.converters.ConversionException: ---- Отладочная информация ---- причина-исключение : com.thoughtworks.xstream.converters.ConversionException причина-сообщение: first-jmeter-class: org. apache .jmeter.save.converters.HashTreeConverter.unmarshal (HashTreeConverter. java: 67) класс: org. apache .jmeter.save.ScriptWrapper обязательный тип: org. apache .jmeter.save.ScriptWrapper тип конвертера: org. apache .jmeter.save.ScriptWrapperConverter путь: / jmeterTestPlan / hashTree / hashTree / номер заголовка HeaderManager: 14 версия: 5.2.1 ------------------------------- at org. apache .jmeter.save.SaveService. readTree (SaveService. java: 459) в орг. apache .jmeter.save.SaveService.loadTree (SaveService. java: 432) в com.solitera.automation.controller.JMeterFromExistingJMX.main (JMeterFromExistingJMX. *: 82) Вызывается: com.thoughtworks.xstream.converters.ConversionException: ---- Debugg информация о ---- причина-исключение: com.thoughtworks.xstream.converters.ConversionException причина-сообщение: first-jmeter-class: org. apache .jmeter.save.converters.HashTreeConverter.unmarshal (HashTreeConverter. java : 67) class: org. apache .jmeter.save.ScriptWrapper обязательный тип: org. apache .jmeter.save.ScriptWrapper тип конвертера: org. apache .jmeter.save.ScriptWrapperConverter путь: / jmeterTestPlan / hashTree / hashTree / Номер строки HeaderManager: 14 версия: 5.2.1 ------------------------------- at org. apache .jmeter.save.ScriptWrapperConverter.createConversionException (ScriptWrapperConverter. java: 102) в org. apache .jmeter.save.ScriptWrapperConverter.unmarshal (ScriptWrapperConverter. java: 96) в com.thoughtworks.xstream.core. .TreeUnmarshaller.convert (TreeUnmarshaller. java: 72) на com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller. java: 72) на com.thoughtworks.xstream.core.TreeUnmarshallercon. 1117 *: 66) в com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller. java: 50) в com.thoughtworks.xstream.core.TreeUnmarshaller.start (TreeUnmarshaller. java: 134) в com.thoughtworks.xstream.core. AbstractTreeMarshallingStrategy.unmarshal (AbstractTreeMarshallingStrategy. java: 32) в com.thoughtworks.xstream.XStream.unmarshal (XStream. java: 1487) в com.thoughtworks.xstream.XStream.unmarshal (XStream. java 1467): 14 на com.thoughtworks.xstream.XStream.from XML (XStream. java: 1338) на орг. apache .jmeter.save.SaveService.readTree (SaveService. java: 449) ... еще 2 Вызывается: com.thoughtworks.xstream.converters.ConversionException: ---- Отладочная информация ---- причина-исключение: com.thoughtworks.xstream.mapper.CannotResolveClassException причина-сообщение: org. apache .jmeter.protocol. http.control.HeaderManager class
: org. apache .jorphan.collections.ListedHashTree обязательный тип: org. apache .jorphan.collections.ListedHashTree тип конвертера: org. apache .jmeter.save. converters.H Путь ashTreeConverter
: / jmeterTestPlan / hashTree / hashTree / HeaderManager номер строки
: 14 ----------------------------- - в com.thoughtworks.xstream.core.TreeUnmarshaller.convert (TreeUnmarshaller. java: 77) в com.thoughtworks.xstream.core. AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller. java: 72) в com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller. java: 66) в com.thoughtworks.xstream.core.TreeUnmarshallerconcon (TreeUnmarshaller.con *: 50) в com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readBareItem (AbstractCollectionConverter. java: 132) в com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem (AbstractCollectionConverter. *) 1136 в орг. apache .jmeter.save.converters.HashTreeConverter.unmarshal (HashTreeConverter. java: 67) в com.thoughtworks.xstream.core.TreeUnmarshaller.convert (TreeUnmarshaller. java: 72) в com.thoughtworks .xstream.core.AbstractReferenceUnmarshaller.convert (AbstractReferenceUnmarshaller. java: 72) в com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller. java: 66) в com.thoughtworks.xstream.conhalserT . (TreeUnmarshaller java: 5 0) at org. apache .jmeter.save.ScriptWrapperConverter.unmarshal (ScriptWrapperConverter. java: 94) ... еще 12 причин: com.thoughtworks.xstream.mapper.CannotResolveClassException: org. apache .jmeter .protocol.http.control.HeaderManager в com.thoughtworks.xstream.mapper.DefaultMapper.realClass (DefaultMapper. java: 81) в com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125). на com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass (DynamicProxyMapper. java: 55) на com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) на com.thoughtworks.xstream.mapper .PackageAliasingMapper.realClass (PackageAliasingMapper. java: 88) в com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) в com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass (ClassAli. 1152 *: 79) в com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) в com.thoughtworks.xstream.mapper.ArrayMapper.realC lass (ArrayMapper. java: 74) в com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) в com.thoughtworks.xstream.mapper.SecurityMapper.realClass (SecurityMapper. java: 71) at com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) в org. apache .jmeter.save.SaveService $ XStreamWrapper $ 1.realClass (SaveService. java: 98) в com.thoughtworks.xstream.mapper.MapperWrapper.realClass (MapperWrapper. java: 125) в com.thoughtworks.xstream.mapper.CachingMapper.realClass (CachingMapper. java: 47) в com.thoughtworks.xstream.core. util.HierarchicalStreams.readClassType (HierarchicalStreams. java: 29) в com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readBareItem (AbstractCollectionConverter. java: 131) в com.thoughtworks.xstream.converbol.col. readItem (AbstractCollectionConverter. java: 117) в орг. apache .jmeter.save.converters.HashTreeConverter.unmarshal (HashTreeConverter. java: 67) в com.thoughtworks.xstream.core.TreeUnmarshaller.convert (TreeUnmarshaller. java: 72) ... еще 23
pom. xml file
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.11.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.9.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<configuration>
<overrideRootLogLevel>debug</overrideRootLogLevel>
<propertiesUser>
<jmeter.save.saveservice.output_format>xml</jmeter.save.saveservice.output_format>
</propertiesUser>
<testResultsTimestamp>false</testResultsTimestamp>
<ignoreResultFailures>true</ignoreResultFailures>
</configuration>
</plugin>
<!-- <plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-analysis-maven-plugin</artifactId>
<version>1.0.4</version>
<executions>
<execution>
<goals>
<goal>analyze</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
source file that contains jmeter result data. Needs to be XML format
or a GZIPed XML format
<source>D:\Ecllipse_project_workspace2\slt_automation\target\jmeter\results\*</source>
directory where to store analysis report files. At least a file "summary.txt"
will be stored here.
<targetDirectory>D:\Ecllipse_project_workspace2\slt_automation\target\jmeter\reports</targetDirectory>
<logsDirectory>D:\Ecllipse_project_workspace2\slt_automation\target\jmeter\logs</logsDirectory>
<processAllFilesFound>true</processAllFilesFound>
</configuration>
</plugin> -->
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-analysis-maven-plugin</artifactId>
<version>1.0.4</version>
<executions>
<execution>
<goals>
<goal>analyze</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
<!-- source file that contains jmeter result data. Needs to be XML format
or a GZIPed XML format -->
<source>${project.build.directory}/jmeter/results/*</source>
<!-- directory where to store analysis report files. At least a file "summary.txt"
will be stored here. -->
<targetDirectory>${project.build.directory}/jmeter/reports</targetDirectory>
<processAllFilesFound>true</processAllFilesFound>
</configuration>
</plugin>
<plugin>
<groupId>de.codecentric</groupId>
<artifactId>jmeter-graph-maven-plugin</artifactId>
<version>0.1.0</version>
<configuration>
<inputFile>${project.build.directory}/jmeter/results/slt_autoMa_Test.csv</inputFile>
<graphs>
<graph>
<pluginType>ResponseTimesOverTime</pluginType>
<width>800</width>
<height>600</height>
<outputFile>${project.build.directory}/jmeter/results/slt_autoMa_Test.png</outputFile>
</graph>
</graphs>
</configuration>
</plugin>
</plugins>
</build>