【发布时间】:2017-10-07 09:35:46
【问题描述】:
我想做什么:
我构建了一个 java 服务来加载一个测试计划并运行它。我没有使用任何 Bash 脚本和 jmeter GUI。 java App 是作为服务构建的,因此可以在云中运行。想法是,只是为了创建一些直径流量数据。
当我在 intellij(本地)上运行 src 时,一切正常。
启动应用,一切OK。
java -jar -Dserver.port=8090 diameter-service-0.0.1-SNAPSHOT.jar
运行 REST 请求:
localhost:8090/api/v1/encode
请求后我收到以下错误:
java.io.FileNotFoundException: file:/Users/myuser/Downloads/diameter-service-0.0.1-SNAPSHOT.jar!/jmeter/bin/saveservice.properties (No such file or directory)
我首先检查的是 jMeter Home。 控制台上的系统输出:
HOME: file:/Users/myuser/Downloads/diameter-service-0.0.1-SNAPSHOT.jar!/jmeter
这些文件也可用,并且位于 bin 下,并且位于类路径中的 slo 下。
/src/main/resources/jmeter/bin/saveservice.properties
/src/main/resources/jmeter/bin/jmeter.properties
/src/main/resources/jmeter/bin/user.properties
我认为 jMeter Home 路径是可以的。 ..或者这是一个错误的假设? 方式jMeter无法加载saveservice.properties?
是因为 jmeter 尝试使用 FILE 类打开文件吗? java如何加载saveservice.properties?还是因为设置了 jMeter Home 而不是必需的?
private static final String jMeterHomePath = "/jmeter";
private static final String jMeterPropertiesFile = jMeterHomePath + "/bin/jmeter.properties";
...
File propertiesFile = FileStreamUtil.jMeterPropertiesToTempFile(jMeterPropertiesFile);
String jMeterPropertiesPath = propertiesFile.getPath();
StandardJMeterEngine jMeter = new StandardJMeterEngine(); JMeterUtils.setJMeterHome(Encoder.class.getResource(jMeterHomePath).getPath());
JMeterUtils.loadJMeterProperties(jMeterPropertiesPath);
JMeterUtils.initLogging();
JMeterUtils.initLocale();
String home = JMeterUtils.getJMeterHome();
System.out.println("HOME: "+home);
SaveService.loadProperties();
【问题讨论】:
-
打开你的 jar 并检查你有这个资源:
jmeter/bin/saveservice.properties在类路径目录或 jar 的根目录中 -
其实我已经把它跑到云端了。 Last comment