性能测试工具 Jmeter 链接数据库后批量使用的问题

Senegal · 2024年10月17日 · 最后由 hwk 回复于 2024年10月30日 · 5405 次阅读

大佬解答下
jmeter 已经链接数据库成功,通过 sql 语句,拿到数据,两个字段 offId,time

添加一个循环控制器,只使用一个 ${offerId_#}

请求体参数化,可以正常取到 offerid 的值

我的问题是,现在把 offid,time 参数化,
我在循环控制器,增加了一个 ${time#},并在计数器里也加了一个.失败了,根本没有发送请求.

又换了一种方法,增加了一个计数器 B,

还是失败,有大佬帮忙解决下吗

共收到 3 条回复 时间 点赞

依次递增请求参数,需要用到__V() 函数进行参数拼接, 参考:https://www.cnblogs.com/MyRecords/p/17982763

1、循环控制器次数应该是个整形,你弄个成这个格式【1,1】,肯定是不合法的

2、不知道你具体的目的是什么?如果你想把循环控制器次数控制成 JDBC 查询出来的记录条数,你可以再增加一个 JDBC 请求,这个 JDBC 请求 写 select count(1) from table A,count 设置变量,计数器最大值也设置这个,就可以实现循环控制器次数按照 SQL 查询记录处理了
3、jmeter 运行是有日志查看,报错建议先看运行日志

循环控制器里面填的是数字,${offerId_#}代表的是 sql 查询回来的 offerId 个数,是一个数字,所以可以允许,同理,${time_#}也是一个数字,这两个是同一个 sql 查的吧,那应该是一样的,你放一个就好了,你是不是理解成代码里的

for  offerId,time in users
  pass

这样的循环,就把两个变量都加上去了?

实际上的循环控制器应该是这样

offerId_len = 10  # 这个就是offerId_#

for i in range(offerId_len):
  pass
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册