我正在使用 JMeter 进行负载测试。我想扩展 Timer 以进行毫秒延迟,然后用它来延迟下一个样本。我目前正在使用 BeanShell Script 来完成此操作,但我想为其创建一个 Java 类而不是脚本片段。我应该扩展什么 Timer 类,有没有我可以看的例子?我还没有在网上找到任何东西:-|
最佳答案
我从来没有实现过定时器,但我确实实现了采样器、后处理器和监听器,所以我对定时器与其他组件的相似性做了一些假设。此外,我从来没有看到任何关于 JMeter 插件开发的好文档,我通常会深入研究 JMeter 代码以了解它们是如何实现的,然后查看解释各种功能的 API 文档。
基本上你需要实现2个类
- 将运行计时器的类。该类应该扩展 AbstractTestElement并实现Timer interface
- 一个 GUI 类,用于在 JMeter UI 中表示您的计时器。该类应该扩展 AbstractTimerGui
所以插件的框架看起来像这样:
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
}
例子的话,可以看built-in timers ,具体看起来像ConstantTimer是它如何完成的一个很好而简洁的例子。您甚至可以直接扩展 ConstantTimer,例如 RandomTimer,而不是实现 Timer 接口(interface)。
UI部分也可以关注ConstantTimerGui例如,或者如果您的界面更接近随机计时器,您可以扩展 AbstractRandomTimerGui
要构建您的插件,我推荐类似于 this example 的 Maven 项目.然后在运行时将其部署到 lib/ext
文件夹中。如果您的插件使用 JMeter 中不存在的任何库,您还需要将它们部署到 JMeter 的 lib
文件夹中。
关于java - 扩展 JMeter 定时器以可变地延迟定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36157315/