目前我正在研究jmeter中的负载分配方案 我的测试计划结构如下:
TestPlan
BeanShell Preprocessor (here I have below code)
Integer totalLoad = 0;
Integer searchUsers = 0;
Integer createUseres = 0;
totalLoad = Integer.parseInt (vars.get("TOTALUSERS"));
searchUsers = ((totalLoad / 100) * 40); createUseres =((totalLoad / 100) * 10); guestUsers = ((totalLoad / 100) * 50);
vars.put("searchUsers", searchUsers.toString());
vars.put("createUseres", createUseres.toString());
vars.put("guestUsers", guestUsers.toString());
Thread group: Search (I am using ${searchUsers} in the number of Threads(users) field)
Thread group: Create (I am using ${createUseres} in the number of Threads(users) field)
Thread group: Guest (I am using ${guestUsers} in the number of Threads(users) field)
这对我不起作用。
你能帮忙吗?
答案 0 :(得分:1)
JMeter变量是每个线程的本地变量。因此,如果您将在预处理器中创建这些变量,则此级别的其他线程将无法访问它们。
您应该使用属性来放置/获取searchUsers
,createUseres
,guestUsers
,如:
在BeanShell预处理器中使用props.put("guestUsers", guestUsers.toString());
。使用${__P(searchUsers)}
作为线程组中的线程数。