我想通过JMeter测试具有随机变量逻辑的应用程序。这是投票申请。
Flow:250个用户的登录投票 - ReVoting-Logout
问题:我必须在3名成员中投票1人,我必须再次投票给另一个人。我已经在用户定义的变量中定义了投票成员id,所以首先我使用bean shell代码进行第一次投票。这是代码。(Beanshell1)
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);
对于重新投票,我想排除以前的投票成员ID,所以我使用了以下代码(Beanshell2)
while(category==rnd_cat)
{
String[] categories = (vars.get("categories")).split(",");
int idx2 = new Random().nextInt(categories.length);
category = (categories[idx2]);
}
但我在回复中无效。
答案 0 :(得分:0)
Beanshell对rnd_cat
的内容一无所知。通过==
运算符比较字符串也不是一个好主意。修改您的“Beanshell2”如下:
while(category.equals(vars.get("rnd_cat"))
{
String[] categories = (vars.get("categories")).split(",");
int idx2 = new Random().nextInt(categories.length);
String category = (categories[idx2]);
}
考虑切换到JSR223 Test Elements和groovy语言,因为强烈建议在JMeter中编写脚本的方法,正如Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!文章所证明的那样。
另一个不需要编写脚本的好选项是通过__chooseRandom()提供的JMeter Plugins功能