当前位置: 首页 > 面试题库 >

JMeter插件-如何收听TestState

鲁熙云
2023-03-14
问题内容

我正在开发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");       
    }

}

问题答案:

我不确定一堂课该怎么做。我有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等文件中的组件



 类似资料:
  • 问题内容: 我是AngularJS的新手,所以请原谅我这个转储问题。 如何收听“点击”或“ ousemove”之类的“ dom”事件? 这就是我得到的(没有错误,但在控制台中也没有结果) //代码基于原始的angularjs-seed。 问题答案: 在AngularJS中,事件通常由指令处理。 指令是教授HTML新技巧的一种方式。在DOM期间,编译指令将与HTML匹配并执行。这允许指令注册行为或转

  • 问题内容: 我有一个。当用户在更改时按下键时,我会tp做点什么。我怎样才能做到这一点? 最简单的方法: 问题答案: 文本观察器的示例代码

  • 如果客户端侦听套接字,则在http://socketplaceonnet.com例如,它如何知道有新内容?我假设服务器无法直接向客户端发送数据,因为客户端可能位于路由器后面,没有端口转发,因此无法直接连接。客户端可能是一部移动电话,可以更改其IP地址。我理解,要让客户端成为侦听器,服务器不需要知道客户端的IP。 非常感谢。

  • 问题内容: 当电话状态恢复为IDLE时,我正在拨打电话并使用电话监听器重新开始活动。但是当我完成活动后,电话监听器仍在运行,因此,当用户进行自己的通话并挂断时,我的活动又重新启动! 问题答案: 使用作为参数传递给方法停止监听更新。

  • 性能测试就是以各种形式分析服务器响应,然后将其呈现给客户端。 当JMeter的采样器组件被执行时,监听器提供JMeter收集的关于那些测试用例的数据的图形表示。它便于用户在某些日志文件中以表格,图形,树或简单文本的形式查看采样器结果。 监听器可以在测试的任何地方进行调整,直接包括在测试计划下。JMeter提供了大约15个监听器,但主要使用的是表,树和图形。 以下是JMeter中所有监听器的列表:

  • 问题内容: 使用以下构建器时,有没有办法侦听毕加索的事件: 我想打电话和父所以它会适当调整,但我不知道如何设置监听器或回调。 我看到毕加索有错误事件报告,但是有成功事件吗? 问题答案: 您可以使用获取onSuccess和onError事件。只需向您的请求添加新的回调,如下所示: 然后,您可以在onSuccess回调中执行任何更改和修改。