java - 具有多个采样器的 Jmeter 的单线程初始化

标签 java multithreading jmeter

我通过扩展 Jmeter 的 AbstractJavaSamplerClient 实现了自己的 Sampler。在设置测试中,我想从目录中读取一堆文件并填充请求列表,然后在运行测试阶段与所有线程/采样器实例共享它。目前,我使用锁是为了允许单个线程在开始时访问和填充它,然后其余的就不用费心重做任务了。代码如下所示:

@Override
    public void setupTest(JavaSamplerContext context) {
       ...
       MyLock.lock();
       try {
            // setup requests
            if (MyFileList == null) {
               // read the files and populate MyFileList
            }
        finally {
            MyLock.unlock();
       }
}

每次 Sampler 线程遇到此锁时,它都会测试 MyFileList 是否已填充,如果没有,则填充,否则将释放锁。我为此使用了 ReentrantLock。但我想知道是否可以完全避免锁定并在开始时有一个单线程初始化阶段,然后让其他线程继续进行。

最佳答案

enter image description here为什么不将其组织到线程组中。 您可以添加一个带有线程的“启动线程组”来执行 init。 然后你可以添加一个标准的“线程组”来完成剩下的事情

在下图中,您可以看到如何添加“setUp Thread Group”,这将首先运行,它将执行您想要完成的设置 在这里您将添加采样器来完成您的设置 然后再次单击您的“测试计划”,然后转到添加->线程(用户)->线程组 您将在此处添加一个常规的旧线程组,以完成其余所有工作

关于java - 具有多个采样器的 Jmeter 的单线程初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413181/

相关文章:

java - 更新创建的 sqlite 数据库中的整行(包含多列)

iphone - UISearchDisplayController 和大量数据的搜索性能

java - Jmeter 2.10 HTTP 记录器抛出 keytool 异常

java - 存储 HashMap 值与引用值的效率

java - 无法使用资源文件夹中的文件进行 jUnit 测试

jvm - java语法问题

c# - 在 MVVM 中阻塞 UI 线程

c++ - 如何在同一个函数上编写 pthread_create?

random - 在 JMeter 的 JSR223 采样器中生成随机值

JMeter - 使用来自其他 BeanShell 预/后处理器的变量?