gpt4 book ai didi

java - jmeter 参数每个线程只能引用该文件一次

转载 作者:行者123 更新时间:2023-12-01 08:51:50 29 4
gpt4 key购买 nike

我有 Jmeter java 采样器来生成消息。

Testplan
- Threadgroup
- Javasampler Publish message " $var3 population was $var1 in $var2 $_getthreadnumder"
- Userdefined variables
-var1 = {_stringfromfile(a.txt,,,) //file has values like 10, 20 till 5000
-var2 = {_stringfromfile(b.txt,,,) //file has values like 2000, 2001,... till 2017
- Userdefined variables
-var3 = {_stringfromfile(c.txt,,,)

此 c.txt 有大约 500 个名称。

London
Madrid
Newyork
Paris
...
..

如何使每个线程仅引用该文件一次并坚持使用它直到执行最后一次迭代。

例如, 如果我给出 3 个线程和 50 个循环它的行为应该像:

第一个线程采用伦敦,直到执行第 50 次迭代为止,值不应更改。第二个线程获取马德里并直到执行第 50 次迭代为止,值不应改变。第三个线程采用 Newyork 并直到执行第 50 次迭代为止,值不应更改。

输出:

London population was 10 in 2000  1
Madrid population was 10 in 2000 2
Newyork population was 10 in 2000 3
London population was 20 in 2001 1
Madrid population was 20 in 2001 2
Newyork population was 20 in 2001 3
---
---

so on

我只尝试过一次&共享模式(全部,当前线程,当前线程组)

要么他们全都占领伦敦,要么他们都分享来自高层的所有值(value)观。

我希望他们只使用这个 var3 文件一次并坚持到最后。

有什么想法吗?

最佳答案

您将使用 beanshell 预处理器将每个线程中的 ${message} 值设置为文本文件中的相应值

import java.io.BufferedReader;
import java.io.InputStreamReader;

FileInputStream linesStream = new FileInputStream(pathToFile);
BufferedReader br = new BufferedReader(new InputStreamReader(linesStream));
int threadNum=ctx.getThreadNum();
//skipping lines that belong to other threads
for (int i = 1; i <= threadNum; ++i) {
br.readLine();
}
String line = br.readLine();
br.close();
linesStream.close();
vars.put("message",line);

在采样器中调用 ${message} 来使用它

关于java - jmeter 参数每个线程只能引用该文件一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42341648/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com