JavaSamplerClient是测试此设置的正确方法吗?

时间:2013-12-12 01:35:33

标签: jmeter

我有一个通过网络与java客户端通信的java服务器。我想要做的是验证它们是否正在维护状态并收集服务器的性能统计信息。我过去曾使用JMeter测试Web服务,并考虑用它来测试这个服务器。

客户端非常简单,只发送和接收一些消息类型。他们登录到服务器并创建会话ID。然后,他们可以使用该ID执行许多事务,获取文本数据,发送文本数据,ping以验证连接是否存活并最终注销。

最初我以为我会将客户端代码包装在JavaSamplerClient中,但是再次读取了javadoc,我不确定这是个好主意。 JavaSamplerClient看起来像是期望做一件事并返回相同类型的数据。但我想不仅返回性能数字,而且我想验证客户端的状态并检查数据是否未被破坏。

在JMeter中使用JavaSamplerClient在这里使用是正确的还是有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

JavaSamplerClient可以执行您要实现的所有操作。

例如,如果您按如下方式创建课程:

public class MySampler extends AbstractJavaSamplerClient {
@Override
public void setupTest(JavaSamplerContext context) {
    return;
}

@Override
public SampleResult runTest(JavaSamplerContext context) {
    return null;
}

@Override
public Arguments getDefaultParameters() {
    return null;
}

如果您不打算将GUI用于采样器,则可以省略setupTestgetDefaultParameters方法,只留下runTest个方法。

您的测试代码应放在runTest方法中。它返回一个完全可控的SampleResult实例。

例如:

result.setResponseCode() - 根据任何条件设置响应代码 result.setResponseMessage() - 响应消息相同

您正在寻找的位可能是

result.setResponseData() - 在这里你可以让你的采样器返回你想要的任何东西。

参考资料:Beanshell vs JSR223 vs Java JMeter Scripting