Jmeter中共享模式"所有线程"和"当前线程组"之间的实际区别是什么?
谁能详细解释一下?
我有一个班轮定义,但我无法正确理解它.
谢谢,Rishil
那么,根据参考:
• All threads - (the default) the file is shared between all the threads.
• Current thread group - each file is opened once for each thread group in which the element appears
Run Code Online (Sandbox Code Playgroud)
因此,对于"所有线程",如果脚本中有多个引用同一文件的CSV数据集配置元素,则下一个CSV数据集配置元素将从先前打开的文件继续读取(即在prevoius CSV数据集配置元素中) ),在"当前线程组"的情况下,每个后续的CSV数据集配置元素将重新打开您的文件.
请看下面的例子:

在这种情况下,每个CSV数据集配置元素:
•使用相同的csv文件;
•读取文件一次,直到EOF;
•从头开始读取文件:由于共享模式=当前线程组,每次都会重新打开文件.
如果在这种情况下将共享模式更改为"所有线程"而没有任何其他更改,则第二个(TG-04)和第三个(TG-05)CSV数据集配置元素将不会读取任何内容,因为在TG-之后csv文件将保持打开状态03和文件光标将指向文件的结尾.
实现细节在CSVDataSet类描述中找到:
该类使用FileServer别名机制来提供不同的共享模式.对于所有线程,文件别名设置为文件名.否则,后缀将附加到文件名,以使其在所需的上下文中唯一.对于当前线程组,使用线程组identityHashcode; 对于单个线程,线程哈希码用作后缀.
更新2012-02-09:
假设你有配置,如下面的评论:
所以你会得到:
1.N次出现 - 在共享模式="所有线程"或"当前线程组"的情况下:每个线程将从csv读取1个条目:第一个线程 - 第一个条目,...,第N个thread - 第N个条目.
2. N*N外观 - 在共享模式="当前线程"的情况下:每个线程将读取来自csv的所有条目.
这两个语句都适用于使用以下设置设置CSV数据集配置的情况:
Recycle on EOF? = false Stop thread on EOF? = false
(上面的截图).
| 归档时间: |
|
| 查看次数: |
9771 次 |
| 最近记录: |