【发布时间】:2017-04-25 02:55:13
【问题描述】:
我从现在开始就在研究 Jmeter 脚本,需要保护 Jmeter 脚本,主要是使其对外部利益相关者不可读。我的期望是将脚本混淆或交付为某种 JAR 或可执行文件。我需要一些想法或解决方法。
谢谢
Senz79
【问题讨论】:
标签: performance testing jmeter jmeter-plugins
我从现在开始就在研究 Jmeter 脚本,需要保护 Jmeter 脚本,主要是使其对外部利益相关者不可读。我的期望是将脚本混淆或交付为某种 JAR 或可执行文件。我需要一些想法或解决方法。
谢谢
Senz79
【问题讨论】:
标签: performance testing jmeter jmeter-plugins
可以从 Java 代码运行现有的 JMeter 脚本,或者使用 JMeter API 纯粹在 Java 中创建 JMeter 测试,因此创建一个可执行的二进制文件来运行您的测试并对其进行混淆不是问题。
运行 JMeter 测试的示例 Java 代码:
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import java.io.File;
public class JMeterFromCode {
public static void main(String[] argv) throws Exception {
// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("/tmp/jmeter/bin/jmeter.properties");
JMeterUtils.setJMeterHome("/tmp/jmeter");
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
HashTree testPlanTree = SaveService.loadTree(new File("/tmp/jmeter/test.jmx"));
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
ResultCollector logger = new ResultCollector(summer);
logger.setFilename("/tmp/jmeter/test.jtl");
testPlanTree.add(testPlanTree.getArray()[0], logger);
// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
}
}
请参阅以下参考资料以开始使用:
【讨论】: