鉴于您需要处理 remote linux系统,您需要通过SSH通道以某种方式更改日期 . 所以我建议按如下方式进行:
下载JSch.jar文件(允许从Java代码进行SSH和SCP协议操作的Java库)并将其放到JMeter安装的/ lib文件夹中 . JMeter重启将需要选择.jar .
将Beanshell Sampler添加到您需要更改远程Linux系统时间的测试计划中
将以下代码放入Beanshell Sampler的“脚本”区域:
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
JSch jSch = new JSch();
Session session = jSch.getSession("root", "your.host", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("your password");
session.connect();
Channel channel = session.openChannel("exec");
String command = "date -s \"$(date --date \"+1 day\")\"";
((ChannelExec) channel).setCommand(command);
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();
StringBuilder rv = new StringBuilder();
rv.append("New system date: ");
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i < 0) break;
rv.append(new String(tmp, 0, i));
}
if (channel.isClosed()) {
break;
}
try {
Thread.sleep(100);
} catch (Exception ee) {
ee.printStackTrace();
}
}
in.close();
channel.disconnect();
session.disconnect();
SampleResult.setResponseData(rv.toString().getBytes());
Beanshell采样器响应数据如下所示:
New system date: Mon Apr 13 10:16:48 BST 2015