JMeter远程测试失败,错误消息“引擎正忙 - 请稍后再试”

时间:2014-05-06 12:58:05

标签: jmeter jmeter-plugins

使用带有一个主节点和一个远程节点的jmeter时出错。我做了这个步骤:

  • Java& JMeter版本相同(使用JMeter插件)
  • 我在远程节点中启动了JMeter Server
  • 我将远程节点IP添加到主
  • 的属性文件中
  • 我在主服务器上启动JMeter并通过远程启动启动测试脚本(主服务器的命令行包含"使用远程对象..."使用正确的IP

之后JMeter冻结,7分钟后我收到错误消息"引擎很忙 - 请稍后再试#34;。

主人的日志是:

2014/05/06 14:17:33 INFO  - jmeter.gui.action.RemoteStart: Initialising remote engine: 172.19.147.41 
2014/05/06 14:17:33 INFO  - jmeter.engine.ClientJMeterEngine: running clientengine run method 
2014/05/06 14:17:33 INFO  - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:25:50 ERROR - jmeter.engine.ClientJMeterEngine: Error in rconfigure() method java.lang.IllegalStateException: Engine is busy - please try later 
2014/05/06 14:25:50 INFO  - jmeter.engine.ClientJMeterEngine: Interrupting RMI Reaper 

远程节点的日志:

2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:25:50 INFO  - jmeter.engine.RemoteJMeterEngineImpl: Creating JMeter engine on host 172.19.147.41 base '.' 
2014/05/06 14:25:50 INFO  - jmeter.engine.RemoteJMeterEngineImpl: Remote client host: 172.19.147.38
2014/05/06 14:25:50 WARN  - jmeter.engine.RemoteJMeterEngineImpl: Engine is busy - cannot create JMeter engine

我是否忘记添加一些配置或问题在哪里?

Thanke关于......

4 个答案:

答案 0 :(得分:2)

此错误是因为从站仍在执行以前的测试计划。

我建议。

  1. 在停止jmeter测试时,使用master中的“ Remote Stop all ”选项,这会杀死远程/从机进程上正在运行的线程。
  2. 2.Restart [在从/远程jmeter过程中重新启动“jmeter-server.bat”]并开始测试。

答案 1 :(得分:1)

在你的情况下,你似乎从主人那里两次触发了测试。 所以消息告诉你,一个测试当前在slave上运行,无法启动一个新的。

如何从控制器开始测试?以及如何从从节点启动jmeter-server?

答案 2 :(得分:1)

Error in NonGUIDriver java.lang.IllegalStateException: Engine is busy - please try later

在非GUI模式下运行JMeter时发生此错误。 JmeterApacheJMeter.jar进程在master上中止而不向从站发送STOP信号以指定测试状态。

执行以下步骤解决Slave计算机上的问题:

步骤1:在JMeter Slave / s上杀死任何正在运行的JMeter-server代理进程

    ps ax | grep "ApacheJMeter.jar" | awk '{print $1}' | xargs kill 

步骤2:在Slave / s上启动JMeter-server进程

    cd apache-jmeter-folder/bin/; ./jmeter-server & 

现在在JMeter master上恢复性能测试。

答案 3 :(得分:1)

您的问题是,即使您尝试结束测试,跑步者(从属)仍在从您的第一个启动命令运行测试。 Stack上的先前答案对我解决这个问题不起作用,所以这是我的解决方案:

在每个跑步者(奴隶)上执行以下操作:
1. public class T2DPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new T2DPreferenceFragment()).commit(); } public static class T2DPreferenceFragment extends PreferenceFragment { @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.server_screen_preference); Preference testServicePreference = getPreferenceScreen().findPreference("PREFERRED SERVER"); testServicePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { T2DPreferenceActivity.closeActivity(getActivity()); return true; //returning true still makes the activity handle the change to preferences } }); } public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ListView lv = (ListView)view.findViewById(android.R.id.list); ViewGroup parent = (ViewGroup)lv.getParent(); parent.setPadding(0, 100, 0, 0); } } protected static void closeActivity(Activity activity) { activity.finish(); } } 这将终止所有Java进程,因此在运行其他应用程序时要小心。

2.cd进入apache-jmeter / bin目录并输入kill -9 `pidof java` 这将作为jmeter-servers重新启动您的跑步者(从属),以便他们准备好接收来自主人的通信。

然后您应该能够从master成功重启测试。