【问题标题】:How to read values from a database like a csv file in jmeter如何从数据库中读取值,例如 jmeter 中的 csv 文件
【发布时间】:2019-02-05 08:07:28
【问题描述】:

我想从选择查询中读取值并在 API 调用中按顺序使用这些值。

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

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

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

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

但最终变量没有被选择查询中的值替换

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

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​​ post body中的变量

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

实际结果:

发布数据:

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

预期结果:

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

TIA

【问题讨论】:

    标签: jmeter


    【解决方案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}")}。

    【讨论】:

      【解决方案2】:

      您是否考虑过使用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} 变量值。

      参考资料:

      【讨论】:

        猜你喜欢
        • 2018-11-28
        • 1970-01-01
        • 2022-09-23
        • 2022-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-18
        相关资源
        最近更新 更多