当我试图通过Java代码(非gui jmeter)远程连接jmeter时,我收到一个错误
我试图通过我的Java代码(非gui jmeter)远程连接jmeter,但我得到一个错误:rconfigure()方法Java.rmi.unmarshaleException 这是我的密码:当我试图通过Java代码(非gui jmeter)远程连接jmeter时,我收到一个错误,java,jmeter,remote-access,jmeter-plugins,Java,Jmeter,Remote Access,Jmeter Plugins,我试图通过我的Java代码(非gui jmeter)远程连接jmeter,但我得到一个错误:rconfigure()方法Java.rmi.unmarshaleException 这是我的密码: public static void main(String[] argv) throws Exception { // Set jmeter home path File jmeterHome = new File("E:\\apache-jmeter-3.2"); if (
public static void main(String[] argv) throws Exception {
// Set jmeter home path
File jmeterHome = new File("E:\\apache-jmeter-3.2");
if (jmeterHome.exists()) {
// Inserting the properties of Jmeter.
File jmeterProperties = new File(
"E:\\apache-jmeter-3.2\\bin\\jmeter.properties");
if (jmeterProperties.exists()) {
// Creating JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
// JMeter initialization (properties, log levels, locale, etc)
JMeterUtils.setJMeterHome(jmeterHome.getPath());
JMeterUtils.loadJMeterProperties(jmeterProperties.getPath());
// you can comment this line out to see extra log messages of
// i.e DEBUG level
JMeterUtils.initLogging();
JMeterUtils.initLocale();
// JMeter Test Plan, basically JOrphan HashTree
HashTree testPlanTree = new HashTree();
// First HTTP Sampler
HTTPSamplerProxy sampler = new HTTPSamplerProxy();
sampler.setDomain("https://google.com/");
sampler.setPort(8080);
sampler.setPath("/");
sampler.setMethod("GET");
sampler.setProperty(TestElement.TEST_CLASS,
HTTPSamplerProxy.class.getName());
sampler.setProperty(TestElement.GUI_CLASS,
HttpTestSampleGui.class.getName());
// Loop Controller
LoopController loopController = new LoopController();
loopController.setLoops(10);
loopController.setFirst(true);
loopController.setProperty(TestElement.TEST_CLASS,
LoopController.class.getName());
loopController.setProperty(TestElement.GUI_CLASS,
LoopControlPanel.class.getName());
loopController.initialize();
// InterleaveControler
// InterleaveControl controller = new InterleaveControl();
// Thread Group
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setName("Sample Thread Group");
threadGroup.setNumThreads(100);
threadGroup.setRampUp(10);
threadGroup.setSamplerController(loopController);
threadGroup.setProperty(TestElement.TEST_CLASS,
ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS,
ThreadGroupGui.class.getName());
// Test Plan
TestPlan testPlan = new TestPlan("Test planing");
testPlan.setProperty(TestElement.GUI_CLASS,
TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel()
.createTestElement());
// Construct Test Plan from previously initialized elements
testPlanTree.add(testPlan);
HashTree threadGroupHashTree = testPlanTree.add(testPlan,
threadGroup);
threadGroupHashTree.add(sampler);
// save generated test plan to JMeter's .jmx file format
SaveService.loadProperties();
SaveService.saveTree(testPlanTree, new FileOutputStream(
"E:\\JunitJArs\\junitjunitjmeter_api.csv"));
// add Summarizer output to get test progress in stdout like:
// summary = 2 in 1.3s = 1.5/s Avg: 631 Min: 290 Max: 973 Err: 0
// (0.00%)
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault(
"summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
// Store execution results into a .jtl file, we can save file as
// csv also
String reportFile = "C:\\Users\\User\\Desktop\\Jmeter\\new\\report.jtl";
String csvFile = "C:\\Users\\User\\Desktop\\Jmeter\\new\\report.csv";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(reportFile);
ResultCollector csvlogger = new ResultCollector(summer);
csvlogger.setFilename(csvFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
testPlanTree.add(testPlanTree.getArray()[0], csvlogger);
// Run Test Plan
List<JMeterEngine> engines = new LinkedList<>();
Properties remoteProps = new Properties();
DistributedRunner distributedRunner = new DistributedRunner(
remoteProps);
List<String> hosts = new LinkedList<>();
// adding JMeter slaves here
hosts.add("172.16.104.199");
distributedRunner.setStdout(System.out);
distributedRunner.setStdErr(System.err);
distributedRunner.init(hosts, testPlanTree);
engines.addAll(distributedRunner.getEngines());
distributedRunner.start();
// jmeter.configure(testPlanTree);
// / jmeter.run();
System.err.println("Your Test excuted");
System.exit(0);
}
}
System.err.println("Jmeter properties error");
System.exit(1);
}
publicstaticvoidmain(字符串[]argv)引发异常{
//设置jmeter主路径
File jmeterHome=新文件(“E:\\apache-jmeter-3.2”);
如果(jmeterHome.exists()){
//插入Jmeter的属性。
File jmeterProperties=新文件(
“E:\\apache-jmeter-3.2\\bin\\jmeter.properties”);
if(jmeterProperties.exists()){
//创建JMeter引擎
StandardJMeterEngine jmeter=新的StandardJMeterEngine();
//JMeter初始化(属性、日志级别、区域设置等)
setJMeterHome(jmeterHome.getPath());
装入jmeterProperties(jmeterProperties.getPath());
//您可以注释掉这一行以查看的额外日志消息
//即调试级别
JMeterUtils.initLogging();
JMeterUtils.initLocale();
//JMeter测试计划,基本上是JOrphan HashTree
HashTree testPlanTree=新的HashTree();
//第一个HTTP采样器
HTTPSamplerProxy采样器=新的HTTPSamplerProxy();
sampler.setDomain(“https://google.com/");
采样器设置端口(8080);
sampler.setPath(“/”);
取样器设置方法(“GET”);
sampler.setProperty(TestElement.TEST_类,
HTTPSamplerProxy.class.getName());
sampler.setProperty(TestElement.GUI_类,
HttpTestSampleGui.class.getName());
//回路控制器
LoopController LoopController=新的LoopController();
loopController.setLoops(10);
loopController.setFirst(true);
loopController.setProperty(TestElement.TEST_类,
LoopController.class.getName());
loopController.setProperty(TestElement.GUI_类,
LoopControlPanel.class.getName());
loopController.initialize();
//交织控制器
//交织控制控制器=新的交织控制();
//螺纹组
ThreadGroup ThreadGroup=新的ThreadGroup();
setName(“示例线程组”);
setNumThreads(100);
threadGroup.setramup(10);
threadGroup.setSamplerController(loopController);
threadGroup.setProperty(TestElement.TEST_类,
ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_类,
ThreadGroupGui.class.getName());
//测试计划
TestPlan TestPlan=新的测试计划(“测试计划”);
testPlan.setProperty(TestElement.GUI_类,
TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((参数)new ArgumentsPanel()
.createTestElement());
//从先前初始化的元素构造测试计划
testPlanTree.add(testPlan);
HashTree threadGroupHashTree=testPlanTree.add(testPlan,
螺纹组);
threadGroupHashTree.add(采样器);
//将生成的测试计划保存为JMeter的.jmx文件格式
SaveService.loadProperties();
SaveService.saveTree(testPlanTree,新文件输出流(
“E:\\JunitJArs\\junitjunitjmeter_api.csv”);
//添加摘要器输出以获取标准输出中的测试进度,如:
//汇总=2英寸1.3s=1.5/s平均值:631最小值:290最大值:973错误:0
// (0.00%)
summer=null;
String summariserName=JMeterUtils.getPropDefault(
“总结者姓名”、“总结”);
如果(SummarySerName.length()>0){
summer=新汇总器(汇总器名称);
}
//将执行结果存储到.jtl文件中,我们可以将该文件另存为
//csv也
String reportFile=“C:\\Users\\User\\Desktop\\Jmeter\\new\\report.jtl”;
String csvFile=“C:\\Users\\User\\Desktop\\Jmeter\\new\\report.csv”;
ResultCollector logger=新的ResultCollector(夏季);
logger.setFilename(reportFile);
ResultCollector csvlogger=新的ResultCollector(夏季);
setFilename(csvFile);
添加(testPlanTree.getArray()[0],记录器);
testPlanTree.add(testPlanTree.getArray()[0],csvlogger);
//运行测试计划
列表引擎=新的LinkedList();
Properties remoteProps=新属性();
DistributedRunner DistributedRunner=新DistributedRunner(
远程道具);
列表主机=新的LinkedList();
//在这里添加JMeter从属
添加(“172.16.104.199”);
分布式Runner.SetstOut(系统输出);
distributedRunner.setStdErr(System.err);
init(hosts,testPlanTree);
engines.addAll(distributedRunner.getEngines());
distributeRunner.start();
//configure(testPlanTree);
///jmeter.run();
System.err.println(“您的测试已执行”);
系统出口(0);
}
}
System.err.println(“Jmeter属性错误”);
系统出口(1);
}
在它的展示中
-配置远程引擎:172.16.104.199
启动远程发动机
开始测试@Wed Jun 28 17:45:07 IST 2017(1498652107364)rconfigure()方法java.rmi.unmarshaleException中出现错误
我试图搜索它,但没有得到任何正确的解决方案如果客户端上的jdk版本与服务器上的不同,可能会发生这种情况 参见I中的