我想从一个SELECT查询读取值,并在API调用使用值顺序。
由于数据库值存储为VAR_1,VAR_2 ... var_N
那么,如何增加该变量的数目?
我用一个计数器和预处理器递增变量数
vars.put( “电子邮件”, “电子邮件” + “_” + vars.get( “反”))
但最终的变量是没有得到更换从选择查询值
从调试取样例如,选择查询结果
[email protected]
[email protected]
[email protected]
[email protected]
--combining变量和计数器:
vars.put ("email", "email"+"_"+vars.get("counter"))
--using变量的API后身体
{
"username":"${email}",
"password":"test1234"
}
实际结果:
发布数据:
{
"username":"email_1",
"password":"test1234"
}
预期结果:
{
"username":"[email protected]",
"password":"test1234"
}
TIA
${__V(email_${counter})}
试试这一个,也请参阅文档:http://jmeter.apache.org/usermanual/functions.html#what_can_do
需要注意的是变量的当前不能嵌套;即$ {VAR $ {N}}不起作用。所述__V(变量)函数可用于执行此操作:$ {__ V(无功$ {N})}。您还可以使用$ {__的BeanShell(vars.get( “变量$ {N}”)}。
你有没有考虑使用ForEach Controller?这是超级方便的迭代从提取或JDBC测试元素的变量。
如果你仍想继续目前的做法,你需要改变这一行:
vars.put ("email", "email"+"_"+vars.get("counter"))
这一个:
vars.put ("email", vars.get("email"+"_"+vars.get("counter")))
因为你投入email
变量的东西像email_1
,email_2
等代替实际${email_1}
变量的值。
参考文献: