Hi, thanks for your answer. The variables in the Testplan are static. So I have no opportunity at runtime to load JDBC Configurations from a config file?
Best regards 2015-09-04 13:25 GMT+02:00 sebb <[email protected]>: > That's because the JDBC Config element processes variables at > configuration time, which occurs before the samplers are run. > > Try defining the variable on the Test Plan and you should see the > difference > > On 4 September 2015 at 11:31, Peter Moser <[email protected]> wrote: > > Hi, > > > > I want to set user defined variables in a beanshell. > > I use this code: vars.put("user", "one"), > > > > When I later want to use the variable in a sampler with ${user}, it is > not > > replaced. > > With a debug sampler I can see the variable is set. > > > > > > What am I doing wrong? Here is the xml of the project: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <jmeterTestPlan version="1.2" properties="2.8" jmeter="2.13 r1665067"> > > <hashTree> > > <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test > > Plan" enabled="true"> > > <stringProp name="TestPlan.comments"></stringProp> > > <boolProp name="TestPlan.functional_mode">false</boolProp> > > <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> > > <elementProp name="TestPlan.user_defined_variables" > > elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" > > testname="User Defined Variables" enabled="true"> > > <collectionProp name="Arguments.arguments"/> > > </elementProp> > > <stringProp name="TestPlan.user_define_classpath"></stringProp> > > </TestPlan> > > <hashTree> > > <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" > > testname="Thread Group" enabled="true"> > > <stringProp > name="ThreadGroup.on_sample_error">continue</stringProp> > > <elementProp name="ThreadGroup.main_controller" > > elementType="LoopController" guiclass="LoopControlPanel" > > testclass="LoopController" testname="Loop Controller" enabled="true"> > > <boolProp > name="LoopController.continue_forever">false</boolProp> > > <stringProp name="LoopController.loops">1</stringProp> > > </elementProp> > > <stringProp name="ThreadGroup.num_threads">1</stringProp> > > <stringProp name="ThreadGroup.ramp_time">1</stringProp> > > <longProp name="ThreadGroup.start_time">1441359197000</longProp> > > <longProp name="ThreadGroup.end_time">1441359197000</longProp> > > <boolProp name="ThreadGroup.scheduler">false</boolProp> > > <stringProp name="ThreadGroup.duration"></stringProp> > > <stringProp name="ThreadGroup.delay"></stringProp> > > </ThreadGroup> > > <hashTree> > > <BeanShellSampler guiclass="BeanShellSamplerGui" > > testclass="BeanShellSampler" testname="BeanShell Sampler" enabled="true"> > > <stringProp > > name="BeanShellSampler.query">vars.put("user", > "one"); > > vars.put("host", "localhost");</stringProp> > > <stringProp name="BeanShellSampler.filename"></stringProp> > > <stringProp name="BeanShellSampler.parameters"></stringProp> > > <boolProp > > name="BeanShellSampler.resetInterpreter">false</boolProp> > > </BeanShellSampler> > > <hashTree/> > > <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" > > testname="JDBC Connection Configuration" enabled="true"> > > <stringProp name="dataSource">dbcon</stringProp> > > <stringProp name="poolMax">10</stringProp> > > <stringProp name="timeout">10000</stringProp> > > <stringProp name="trimInterval">60000</stringProp> > > <boolProp name="autocommit">true</boolProp> > > <stringProp name="transactionIsolation">DEFAULT</stringProp> > > <boolProp name="keepAlive">true</boolProp> > > <stringProp name="connectionAge">5000</stringProp> > > <stringProp name="checkQuery">Select 1</stringProp> > > <stringProp > > name="dbUrl">jdbc:postgresql://localhost:5432/box</stringProp> > > <stringProp name="driver">org.postgresql.Driver</stringProp> > > <stringProp name="username">${user}</stringProp> > > <stringProp name="password">pwd</stringProp> > > </JDBCDataSource> > > <hashTree/> > > <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" > > testname="JDBC Request" enabled="true"> > > <stringProp name="dataSource">dbcon</stringProp> > > <stringProp name="queryType">Select Statement</stringProp> > > <stringProp name="query">SELECT 1</stringProp> > > <stringProp name="queryArguments"></stringProp> > > <stringProp name="queryArgumentsTypes"></stringProp> > > <stringProp name="variableNames"></stringProp> > > <stringProp name="resultVariable"></stringProp> > > <stringProp name="queryTimeout"></stringProp> > > <stringProp name="resultSetHandler">Store as > String</stringProp> > > </JDBCSampler> > > <hashTree/> > > <ResultCollector guiclass="ViewResultsFullVisualizer" > > testclass="ResultCollector" testname="View Results Tree" enabled="true"> > > <boolProp name="ResultCollector.error_logging">false</boolProp> > > <objProp> > > <name>saveConfig</name> > > <value class="SampleSaveConfiguration"> > > <time>true</time> > > <latency>true</latency> > > <timestamp>true</timestamp> > > <success>true</success> > > <label>true</label> > > <code>true</code> > > <message>true</message> > > <threadName>true</threadName> > > <dataType>true</dataType> > > <encoding>false</encoding> > > <assertions>true</assertions> > > <subresults>true</subresults> > > <responseData>false</responseData> > > <samplerData>false</samplerData> > > <xml>false</xml> > > <fieldNames>false</fieldNames> > > <responseHeaders>false</responseHeaders> > > <requestHeaders>false</requestHeaders> > > <responseDataOnError>false</responseDataOnError> > > > > > <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> > > <assertionsResultsToSave>0</assertionsResultsToSave> > > <bytes>true</bytes> > > <threadCounts>true</threadCounts> > > </value> > > </objProp> > > <stringProp name="filename"></stringProp> > > </ResultCollector> > > <hashTree/> > > </hashTree> > > </hashTree> > > </hashTree> > > </jmeterTestPlan> > > > > > > Error that I got: > > FATAL: role "${user}" does not exist > > > > Best regards, Peter > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
