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();
}
}
在eclipse中作为Java应用程序运行后->输出是:
pom.xml文件
<!-- 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>
从您得到的错误看来,您的测试使用的是HTTP头管理器,而您没有提供此类的ApacheJMeter_HTTP
包。
临时解决方案是将下一个Maven依赖项添加到pom.xml:
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_http -->
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_http</artifactId>
<version>5.2.1</version>
</dependency>
我还建议从pom.xml中删除这些httpcore
和xstream
依赖项,因为Maven会将它们作为JMeter核心和HTTP包的可传递依赖项获取。
根据您的测试性质,您可能需要其他包、JMeter插件,所以很难说您还需要什么。
我尝试在eclipse中运行下面的代码,发布在这里。 但它并没有被执行。它抛出以下错误: 注意:我还添加了来自lib/extjmetr安装文件的外部罐 代码:
我有3个maven项目。项目1,项目2 为此,我在项目2 pom.xml文件中添加了这个 我的pom。Project3的xml是- 在项目3中,我添加了testng。xml文件来运行测试。现在如果我运行这个测试。xml文件,那么我所有的测试用例都成功运行了。如果我尝试使用maven测试运行测试用例,那么它会失败。 我已经在下面的pom文件中包含了testng.xml文件,以便使用maven运行te
下面的代码从excel文件中打印内容(在eclipse中尝试过),但我无法使用Groovy在Jmeter3.1中运行它。 我抛出了一个错误: JSR223脚本中的问题JSR223采样器,消息:javax.script.脚本异常:org.codehaus.groovy.control.多重编译错误异常:启动失败 这是我的代码:
我遇到了无法使用Maven运行JUnit5测试的问题。在IDE中运行它们工作正常,但使用“mvn测试”会产生以下输出: 这是我的测试课程: pom: 我做了一些研究,我认为这可能与混合JUnit4和JUnit5特性有关,这导致maven surefire插件无法运行测试。然而,我找不到那些剩余的JUnit4特性可能在哪里。我将感谢任何帮助。
我创建了maven项目,它由junit和spock测试组成。两个测试的代码。 在我的本地机器中,当我运行mvn测试时,它会欺骗两个测试类。我在git仓库上部署了项目,并为maven项目配置了jenkins。我推这个项目的存储库和执行作业,但是詹金斯只检测JUnit测试的AppTest类。我已经改变了pom.xml并添加了文件regadring到。我的项目结构。 文件组织的内容。spockframe
我试图按照本教程在IntelliJ中设置Maven JavaFX项目https://openjfx.io/openjfx-docs/#maven(带Maven的IntelliJ非模块化)但无论我做什么,它都失败了。 我一直在尝试很多互联网建议。我尝试在pom中设置VM变量,我确保JAVA\u HOME指向我的JDK 12目录,并检查项目结构中JDK的设置是否正确。 这是我的pom文件: 这是输出: