我正在开发一个JMeter插件。我正在尝试创建一个能够监视当前测试状态的AbstractVisualizer。但是,实现TestStateListener似乎并没有起作用。
我通过创建一个基本监听器来测试它,该监听器具有向JMeter的日志记录控制台输出任意信息的登录。通过“添加”功能发送样本时,会向控制台发送一行。但是在各种TestState函数上都没有触发任何东西。我是否缺少更具结构性的东西?
public class TestListener extends AbstractVisualizer
implements TestStateListener
{
private static final Logger log = LoggingManager.getLoggerForClass();
@Override
public void add(SampleResult arg0) {
log.info("add");
}
@Override
public void clearData() {
// TODO Auto-generated method stub
}
@Override
public String getStaticLabel()
{
return "Test Listener";
}
@Override
public String getLabelResource() {
return null;
}
@Override
public void testEnded() {
log.info("Test Ended");
}
@Override
public void testEnded(String arg0) {
log.info("Test Ended");
}
@Override
public void testStarted() {
log.info("Test started");
}
@Override
public void testStarted(String arg0) {
log.info("Test started");
}
}
答案 0 :(得分:0)
我不确定如何在一堂课中完成。我有2个班级:
用户界面:
public class MonitorGui extends AbstractListenerGui
{
// ...
@Override
public TestElement createTestElement()
{
TestElement element = new Monitor();// <-- this is the backend
modifyTestElement(element);
return element;
}
// ...
}
然后后端就是这样:
public class Monitor extends AbstractListenerElement
implements SampleListener,
Clearable, Serializable,
TestStateListener, Remoteable,
NoThreadClone
{
private static final String TEST_IS_LOCAL = "*local*";
// ...
@Override
public void testStarted()
{
testStarted(TEST_IS_LOCAL);
}
@Override
public void testEnded()
{
testEnded(TEST_IS_LOCAL);
}
@Override
public void testStarted(String host)
{
// ...
}
// ...
}
您可能不需要像我一样实施SampleListener
,但可能其他方面非常相似。
我基于内置的ResultSaverGui和ResultCollector对构建了该实现,这些组件将结果保存到Simple Data Writer,Summary Report等文件中。