Stored procedures 如何使用JDBC请求在JMeter中设置存储过程的参数

Stored procedures 如何使用JDBC请求在JMeter中设置存储过程的参数,stored-procedures,jmeter,Stored Procedures,Jmeter,我计划使用存储过程可调用语句加载数据库。我在JMeter中创建的测试计划如下所示: - Test plan - Thread Group - JDBC Connection Configuration - JDBC Request - View results tree - Summary Report JDBC连接配置基于已经运行的测试。 问题在于我的JDBC请求: 变量名:数据库名是否与JDBC连接配置中的相同 查询类型:可调用语句 查询:{c

我计划使用存储过程可调用语句加载数据库。我在JMeter中创建的测试计划如下所示:

- Test plan
  - Thread Group
     - JDBC Connection Configuration
     - JDBC Request
     - View results tree
     - Summary Report
  • JDBC连接配置基于已经运行的测试。 问题在于我的JDBC请求:
  • 变量名:数据库名是否与JDBC连接配置中的相同
  • 查询类型
    可调用语句
  • 查询:
    {call schema.dbpk_utilities.get_user_id(?,,,,,,,,,,?)}
  • 参数值:
    S12345,HR,OUT,NULL,NULL,NULL
  • 参数类型
    VARCHAR,VARCHAR,INTEGER,VARCHAR,VARCHAR,VARCHAR,VARCHAR
  • 变量名
    用户名、hr、id、四、五、六、七
我得到的错误是:

Response message: java.lang.NumberFormatException: For input string:
"OUT"

谁能告诉我为什么回复信息?可以在JMeter中调用存储过程吗?我正在努力确定这个请求

每当我必须为JMeter提供逗号分隔的列表时,我都会确保逗号前后没有空格。我称之为“无空格”规则

海报sqeeky也发现了这个把戏,sqeeky说:

在分隔parm名称的逗号后不要有任何空格,因此不要使用“${appid_1},${appid_2}”(可以看到有一个空格分隔ParameterName值),而是指定${appid_1},${appid_2}作为ParameterName列表中的值,否则在本例中,${appid_2}将不包括在内

所有三个逗号分隔列表(参数值、参数类型、变量名)都违反了“无空格”规则。请尝试删除所有三个列表中的所有空格,然后重试


我结帐了,不幸的是,我没有看到任何对“无空格”规则的引用,或者可能是措辞没有伸出手来抓住我。

根据上一篇文章中的“无空格规则”,我发现了为什么请求使用java.lang.NumberFormatException:作为输入字符串:“out”消息进行响应。请参见下文

变量名:Oracle

SQL查询:可调用状态

查询:{call nspishr.dbpk_user_utilities.get_user_details(?,,,,,,,,,?)}

参数值:S12345,DMS,OUT,NULL,NULL,NULL,NULL

Par类型:VARCHAR,VARCHAR,OUT INTEGER,VARCHAR,VARCHAR,VARCHAR,VARCHAR

变量名:用户名、dms、id、四、五、六、七

注意参数是如何在这个调用中注册的。在我的过程中,param 1和param 2是在parameters中注册的。在我的例子中,这些参数是通过给它们一个参数值S12345和HR隐式地在parameters中创建的

从param 3一直到param 7都是OUT参数。param 4、5、6和7有空值。因此无需将它们注册为OUT参数。param 3(id)但是,是OUT参数,必须通过在参数值中显式地说出OUT,然后在参数类型中说出OUT INTEGER来注册它。需要记住的是,您需要在参数值和参数类型中都指定OUT。不要忘记参数的数据类型参数类型字段中的er。即OUT INTEGER,OUT VARCHAR


希望这有帮助

嘿,谢谢你的回复。我尝试了“无空格规则”,但它没有解决我的问题。但从现在起我一定会遵循无空格规则!谢谢你提供的有趣链接和信息