Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展JMeter计时器以可变延迟计时器_Java_Jmeter_Load Testing_Beanshell - Fatal编程技术网

Java 扩展JMeter计时器以可变延迟计时器

Java 扩展JMeter计时器以可变延迟计时器,java,jmeter,load-testing,beanshell,Java,Jmeter,Load Testing,Beanshell,我正在使用JMeter进行负载测试。我想扩展计时器,以毫秒为单位获取延迟,然后使用它来延迟下一个样本。我目前正在使用BeanShell脚本来实现这一点,但我希望为它提供一个Java类,而不是一个脚本片段。我应该扩展什么定时器类?有没有可以看的例子?我没有在网上找到任何东西:-我从来没有实现过计时器,但我实现了采样器、后处理器和侦听器,所以我对计时器与其他组件的相似性做了一些假设。此外,我还没有看到任何关于JMeter插件开发的好文档,我通常深入研究JMeter代码以了解它们是如何实现的,然后查看

我正在使用JMeter进行负载测试。我想扩展计时器,以毫秒为单位获取延迟,然后使用它来延迟下一个样本。我目前正在使用BeanShell脚本来实现这一点,但我希望为它提供一个Java类,而不是一个脚本片段。我应该扩展什么定时器类?有没有可以看的例子?我没有在网上找到任何东西:-

我从来没有实现过计时器,但我实现了采样器、后处理器和侦听器,所以我对计时器与其他组件的相似性做了一些假设。此外,我还没有看到任何关于JMeter插件开发的好文档,我通常深入研究JMeter代码以了解它们是如何实现的,然后查看解释各种函数的API文档

基本上,您需要实现两个类

  • 将运行计时器的类。该类应该扩展并实现
  • 在JMeterUI中表示计时器的GUI类。这一类应该扩大
  • 因此,插件的框架如下所示:

    public class MyTimerGui extends AbstractTimerGui {
        // usually has at least the following 3 functions:
    
        @Override
        public TestElement createTestElement() {
        }
    
        @Override
        public void modifyTestElement(TestElement timer) { 
        }
    
        @Override
        public void configure(TestElement el) {
        }
    }
    
    public class MyTimer extends AbstractTestElement implements Timer {
    
        long delay() {
            return someDelayOfYourChoice;
        }
    
        // you may need some other functions, e.g. running on test start or sample start
    }
    
    在例子方面,你可以看一下,特别是看起来是一个很好的简洁的例子,它是如何完成的。您甚至可以像RandomTimer那样直接扩展ConstantTimer,而不是实现计时器接口

    对于UI部分,您也可以遵循示例,或者若您的界面更接近随机计时器,则可以扩展

    要构建插件,我建议您使用类似于的maven项目。然后在运行时将其部署到
    lib/ext
    文件夹中。如果您的插件使用JMeter中不存在的任何库,您还需要将它们部署在JMeter的
    lib
    文件夹中