HTTP Sampler用于管理来自DB的检索数据的迭代(使用BeanShell Sampler存储)

时间:2016-04-22 05:44:38

标签: jmeter

我已经创建了一个BeanShell样本,如下所示,用于存储来自DB的检索值。

ArrayList username = vars.getObject("username");
for (HashMap table : username) {
    for (Object column1 : table.keySet()) {
        log.info(column1 + "=" + table.get(column1));
        String strusername = table.get(column1).toString();
        log.info("Username fethced from DB is=" + strusername);
        vars.put("strusername", new String(strusername));
     }
}
ArrayList password = vars.getObject("password");
for (HashMap table : password) {
    for (Object column2 : table.keySet()) {
        log.info(column2 + "=" + table.get(column2));
        String strpassword = table.get(column2).toString();
        log.info("Password fethced from DB is=" + strpassword);
        vars.put("strpassword", new String(strpassword));
    }
}

这里作为输出我得到" String strusername& strpassword"最后从DB检索到的值,但我可以在Jmeter日志查看器中看到以前的值,但不能使用它们来执行登录。

现在我的查询是如何管理HTTP Sampler来为每组用户名,密码执行登录?

你可以在这里使用foreach控制器,如果是的话可能是什么结构,我应该在哪里使用它?或者我是否需要在上面显示的BeanShell Sampler中进行修改?

另外,有没有办法在foreach控制器中使用多个变量?

1 个答案:

答案 0 :(得分:0)

我已经通过添加多个HTTP请求来传递数据来解决这个问题......实际上,cookie管理器为同一页面的请求传递相同的数据&这就是为什么循环/每个逻辑控制器不起作用的原因。此外,如果我们删除cookie管理器,那么它将无法维护用户的会话。

因此,唯一的解决方案是为多个线程(用户)创建多个HTTP采样器。

感谢。