我定义了一个新变量
Name Value Description
categories (1, 2, 3, 4, 5) my categories ids
Run Code Online (Sandbox Code Playgroud)
在我的路径中,我想从类别中获取随机值:category_id=my_random_value.
我甚至试过这个
category_id=${__StringFromArrayAtRandomindex('1', '2', '3', '4', '5'}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
Ale*_*uti 16
要从列表中获取随机变量值,首先将列表或可用值声明为用户变量,并使用前缀和增量索引:
country_1 Spain
country_2 France
country_3 Portugal
country_4 Italy
country_5 England
Run Code Online (Sandbox Code Playgroud)
然后,您可以从列表中获取随机值,该列表将前缀与区间中的随机索引连接起来:
${__V(country_${__Random(1,6,)})} --> "Spain", "France", "Portugal", etc...
Run Code Online (Sandbox Code Playgroud)
说明
该__Random功能会给你的时间间隔的索引.要获得1到5之间的值,您必须调用__Random(1,6,),因为它永远不会达到MAX值.
该__V功能,将获得具有给定名称的变量的值.
${__Random(1,6,)} --> 1, 2, 3, 4, 5
country_${__Random(1,6,)} --> "country_1", "country_2", etc...
${__V(country_${__Random(1,6,)})} --> "Spain", "France", "Portugal", etc...
Run Code Online (Sandbox Code Playgroud)
例如,要将随机变量用作请求的JSON正文,请在正文数据中:
}
"country":"${__V(country_${__Random(1,6,)})}"
}
Run Code Online (Sandbox Code Playgroud)
Ali*_*lik 12
对于您的场景,您可以尝试使用JSR233组件(Sampler,PreProcessor,PostProcessor)和一些java/groovy代码.
例如:
完成后定义您的数据:
Name Value categories 1,2,3,4,5
(即使用逗号作为分隔符,逗号前后不能有空格).
使用带有以下代码的JSR233 Sampler/PreProcessor/PostProcessor:
import java.util.Random;
String[] categories = (vars.get("categories")).split(",");
int idx = new Random().nextInt(categories.length);
String category = (categories[idx]);
vars.put("rnd_cat", category);
Run Code Online (Sandbox Code Playgroud)请参阅随机选择的类别${rnd_cat}.
__StringFromArrayAtRandomindex不是JMeter核心的一部分,也不是JMeter插件的一部分.
这是一个自定义功能吗?
此外,您在结尾处有语法错误(缺少):
${__StringFromArrayAtRandomindex('1', '2', '3', '4', '5')}
Run Code Online (Sandbox Code Playgroud)
要做同样的事情,请使用包含以下内容的CSV数据集:
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
组:
Variable Names=categoryId
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
${categoryId}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20993 次 |
| 最近记录: |