如何从数据库中读取值,例如jmeter中的csv文件

时间:2019-02-05 08:07:28

标签: jmeter

我想从选择查询中读取值,并在API调用中依次使用这些值。

由于数据库值存储为var_1,所以var_2 ... var_N

那么我如何增加变量的数量?

我使用了计数器和预处理器来增加变量中的数字

vars.put(“电子邮件”,“电子邮件” +“ _” + vars.get(“计数器”))

但是最终变量不会被选择查询中的值代替

例如从调试采样器中选择查询结果

email_1=hata.pd.h13u@yopmail.com
email_2=hata.pd.h13u@yopmail.com
email_3=hataiot.test13@mailinator.com
email_4=hataiot.test12@mailinator.com

-结合变量和计数器:

vars.put ("email", "email"+"_"+vars.get("counter"))

-使用API​​帖子正文中的变量

{
    "username":"${email}",
    "password":"test1234"
}

实际结果:

POST数据:

{
   "username":"email_1",
   "password":"test1234"
}

预期结果:

{
   "username":"hata.pd.h13u@yopmail.com",
   "password":"test1234"
}

TIA

2 个答案:

答案 0 :(得分:1)

${__V(email_${counter})}

尝试此操作,另请参见文档:http://jmeter.apache.org/usermanual/functions.html#what_can_do

  

请注意,变量当前无法嵌套;即$ {Var $ {N}}不起作用。 __V(变量)函数可用于执行此操作:$ {__ V(Var $ {N})}。您还可以使用$ {__ BeanShell(vars.get(“ Var $ {N}”)}}。

答案 1 :(得分:1)

您是否考虑过使用ForEach Controller?迭代提取器或JDBC测试元素中的变量非常方便。


如果您仍想继续使用当前方法,则需要更改此行:

vars.put ("email", "email"+"_"+vars.get("counter"))

对此:

vars.put ("email", vars.get("email"+"_"+vars.get("counter")))

因为您要放入email等变量,例如email_1email_2等,而不是实际的${email_1}变量值。

参考文献: