如何在jmeter中捕获特定于线程的不同数据表单下拉列表?

如何在jmeter中捕获特定于线程的不同数据表单下拉列表?,jmeter,Jmeter,我的应用程序包括选择标题下拉列表,其中包含Mr、Miss、Dr和Mrs等值 我想捕捉不同的标题随机,但从以上4为不同的线程。请建议如何做到这一点 这是我的脚本,我已将title参数作为${randomTitle}传递 值作为, 将请求发布为, 您可以使用Beanshell预处理器: import java.util.Random; public enum frm_titles {"Mr", "Miss", "Dr", "Mrs"}; Random randGenerator = new Ra

我的应用程序包括选择标题下拉列表,其中包含Mr、Miss、Dr和Mrs等值

我想捕捉不同的标题随机,但从以上4为不同的线程。请建议如何做到这一点

这是我的脚本,我已将title参数作为${randomTitle}传递

值作为,

将请求发布为,
您可以使用Beanshell预处理器:

import java.util.Random;

public enum frm_titles {"Mr", "Miss", "Dr", "Mrs"};
Random randGenerator = new Random();
int randInt = randGenerator.nextInt(frm_titles.values().length);
vars.put("randomTitle",frm_titles.values()[randInt].toString());
然后,在测试计划中更改post参数并添加${randomTitle}而不是title参数

查看此链接以了解更多信息:


我认为有两种可能

你可以试试beanshell处理器 您可以尝试正则表达式提取器和计数器 第一种方法最好在上面解释,第二种方法你可以试试


出于兴趣,在那里使用enum是否至关重要

尝试按如下方式修改代码:

import java.util.Random;

String[] frm_titles = {"Mr", "Miss", "Dr", "Mrs"};
Random randGenerator = new Random();
int randInt = randGenerator.nextInt(frm_titles.length);
vars.put("randomTitle",frm_titles[randInt]);
应该是这样的。Enum不能是Beanshell解释器的本地,如果您需要使用Enum结构,请将其编译为.jar并将其放置到JMeter类路径


有关ApacheJMeter中Beanshell脚本的更多详细信息,请参阅指南

就像这样&x24&x7b;随机标题&x7d;传递数据时,我无法理解我的错误所在。错误为,014/06/16 15:44:04错误-jmeter.util.BeanShellInterpreter:调用bsh方法时出错:文件中的eval:内联求值:import java.util.Random;枚举名称{先生、小姐、博士、夫人};随机随机发生器。在第3行第1列遇到枚举。2014/06/16 15:44:04警告-jmeter.modifiers.BeanShell预处理器:BeanShell脚本org.apache.jorphan.util.JMeterException中存在问题:调用bsh方法时出错:文件中的eval:内联求值:import java.util.Random;枚举名称{先生、小姐、博士、夫人};随机随机发生器。在第3行第1列遇到枚举。数据仍作为&x24;传递&x7b;随机标题&x7d${randomTitle}应该在post变量中,显示按照req编辑的post请求PleaseRequest。你好,Sal00m,是否需要任何与环境相关的设置?i、 e.设置路径或其他。但在上述即第一次进近中,下拉数据传递为&x24&x7b;随机标题&x7d;这是不正确的,请引导。坦率地说,我喜欢第二种方法,它易于管理,每次都有效。是的,这需要一些时间来创建,但很容易创建。你能提供更多关于第二种方法或任何帮助,以便我可以进入系统时尚。我认为这不值得-1:。一般来说,在响应中,若并没有编写特别的代码,那个么下拉列表中的值计数就会出现。从那里你可以提取计数并将其作为随机变量的上界输入,该随机变量从1计数中生成随机数,可用于从下拉列表中选择随机值坦白地说,我知道这两种技术都有效,但你不能选择任何一种。我期待任何一种技术的细节。在我的例子中,它是一个简单的下拉列表&我知道数据。这也是一个不错的选择+1。