Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

int id = Integer.parseInt( vars.get("party_id") ); vars.putObject("id", new Integer(id));

Then use id in JDBC Request:

    select * from table where column = ? 
    Parameter Value: ${id}
    parameter Type: NUMBER

It seems the JDBC request is ignored and no output shown in the result tree.

Please help to look into the issue...

Thanks in advance

User Defined Variable stores value of String but not Integer. I wonder if there is any error/warning in JMeter console (log).

Cast you integer to String to put it into UDV.

Just specify ${UDV} if you wanted it to be an integer. Add quotes ('$UDV') if you want it as varchar in SQL query I also add debug sampler into the test plan, variable "id" has the value shown in the result tree. Observe the issue from the log file "jmeter.threads.JMeterThread: Error while processing sampler 'try integer' : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String". Do you have any idea how to get the integer variable used in the other sampler? – ming Jan 2, 2014 at 5:23 When you use putObject method just cast your integer into String using toString() method. vars.putObject("id", id.toString()); – olyv Jan 2, 2014 at 6:58 If i use string it works fine for my select statement where i can change the type to varchar. I have one insert statement for one jdbc request required number parameter. When i pass "${id}" not working if cast it to String. – ming Jan 2, 2014 at 7:51 I'm not sure I've got your option. If you have select query you write it as select * from table where condition = ${id}. Supposing your variable has value 5 (it is string, because user defined variable stores only string) next query will be executed select * from table where condition = 5. If you need varchar in the SQL query you write select * from table where condition = '${id}' and next will be executed select * from table where condition = '5'. JMeter HTTP or JDBC sampler treat ${variable} the next way: just get the text from variable and put it into sampler body. Is it the answer? – olyv Jan 2, 2014 at 8:34 Thanks for the details. Method vars.putObject can store any type of object for user defined variable, for example integer. I wonder if there is some way to get the variable whose type is not string. I have one insert query [insert into table (id number) values (${id})] required integer in one jdbc request using the variable storing integer defined in JSR223 sampler. As you have mentioned, ${id} type is string, any way to convert to integer? – ming Jan 2, 2014 at 10:30

Have reproduced your problem, it looks like that JDBC Sampler doesn't accept integers, only Strings.

I'm getting following error in jmeter.log, guess you too:

2014/01/04 11:30:14 ERROR - jmeter.threads.JMeterThread: Error while processing sampler 'JDBC Request' : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

So your cast to integer is absolutely not required. Try changing your JSR223 code to following:

vars.put("id", vars.get("party_id")); 

It should work fine.

The bit, which tells MySQL which datatype bind the variable to is ParameterType stanza. You need to specify paratemer type there, not in JSR223

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.