On Sun, Dec 4, 2011 at 4:13 PM, sebb <[email protected]> wrote: > On 3 December 2011 20:53, <[email protected]> wrote: > > Author: pmouawad > > Date: Sat Dec 3 20:53:32 2011 > > New Revision: 1210001 > > > > URL: http://svn.apache.org/viewvc?rev=1210001&view=rev > > Log: > > Bug 52128 - Add JDBC pre- and post-processor > > > > Added: > > jmeter/trunk/xdocs/images/screenshots/jdbc-post-processor.png (with > props) > > jmeter/trunk/xdocs/images/screenshots/jdbc-pre-processor.png (with > props) > > jmeter/trunk/xdocs/usermanual/JDBC-Pre-Post-Processor.jmx > > Should really be in the demos/ subdirectory; please move it there (and > change any links) > > FIxed
> Also needs EOL setting the same as other JMXs, ie LF (not native) > > How do you do that ? I am on a Mac OSX > > Modified: > > jmeter/trunk/xdocs/usermanual/component_reference.xml > > > > Added: jmeter/trunk/xdocs/images/screenshots/jdbc-post-processor.png > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/images/screenshots/jdbc-post-processor.png?rev=1210001&view=auto > > > ============================================================================== > > Binary file - no diff available. > > > > Propchange: jmeter/trunk/xdocs/images/screenshots/jdbc-post-processor.png > > > ------------------------------------------------------------------------------ > > svn:mime-type = application/octet-stream > > > > Added: jmeter/trunk/xdocs/images/screenshots/jdbc-pre-processor.png > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/images/screenshots/jdbc-pre-processor.png?rev=1210001&view=auto > > > ============================================================================== > > Binary file - no diff available. > > > > Propchange: jmeter/trunk/xdocs/images/screenshots/jdbc-pre-processor.png > > > ------------------------------------------------------------------------------ > > svn:mime-type = application/octet-stream > > > > Added: jmeter/trunk/xdocs/usermanual/JDBC-Pre-Post-Processor.jmx > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/JDBC-Pre-Post-Processor.jmx?rev=1210001&view=auto > > > ============================================================================== > > --- jmeter/trunk/xdocs/usermanual/JDBC-Pre-Post-Processor.jmx (added) > > +++ jmeter/trunk/xdocs/usermanual/JDBC-Pre-Post-Processor.jmx Sat Dec 3 > 20:53:32 2011 > > @@ -0,0 +1,445 @@ > > +<?xml version="1.0" encoding="UTF-8"?> > > +<jmeterTestPlan version="1.2" properties="2.1"> > > + <hashTree> > > + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" > testname="Concurrent Valuation Test Plan" enabled="true"> > > + <stringProp name="TestPlan.comments">Execute a series of > concurrent valuations</stringProp> > > + <boolProp name="TestPlan.functional_mode">false</boolProp> > > + <boolProp name="TestPlan.serialize_threadgroups">true</boolProp> > > + <elementProp name="TestPlan.user_defined_variables" > elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" > testname="User Defined Variables" enabled="true"> > > + <collectionProp name="Arguments.arguments"> > > + <elementProp name="CalculateFees" elementType="Argument"> > > + <stringProp name="Argument.name">CalculateFees</stringProp> > > + <stringProp name="Argument.value">1</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="CalculatePerformanceDetails" > elementType="Argument"> > > + <stringProp > name="Argument.name">CalculatePerformanceDetails</stringProp> > > + <stringProp name="Argument.value">1</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="DriverURL" elementType="Argument"> > > + <stringProp name="Argument.name">DriverURL</stringProp> > > + <stringProp > name="Argument.value">jdbc:jtds:sqlserver:</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="DatabasePort" elementType="Argument"> > > + <stringProp name="Argument.name">DatabasePort</stringProp> > > + <stringProp name="Argument.value">1433</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="UseMiddleTierValuationEngine" > elementType="Argument"> > > + <stringProp > name="Argument.name">UseMiddleTierValuationEngine</stringProp> > > + <stringProp name="Argument.value">0</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="MiddleTierRequestTimeout" > elementType="Argument"> > > + <stringProp > name="Argument.name">MiddleTierRequestTimeout</stringProp> > > + <stringProp name="Argument.value">500000</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="PricePropagationMode" > elementType="Argument"> > > + <stringProp > name="Argument.name">PricePropagationMode</stringProp> > > + <stringProp name="Argument.value">2</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + </collectionProp> > > + </elementProp> > > + <stringProp name="TestPlan.user_define_classpath"></stringProp> > > + </TestPlan> > > + <hashTree> > > + <Arguments guiclass="ArgumentsPanel" testclass="Arguments" > testname="MI PCO config" enabled="true"> > > + <collectionProp name="Arguments.arguments"> > > + <elementProp name="PCOQuality" elementType="Argument"> > > + <stringProp name="Argument.name">PCOQuality</stringProp> > > + <stringProp name="Argument.value">5</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="ValueDate" elementType="Argument"> > > + <stringProp name="Argument.name">ValueDate</stringProp> > > + <stringProp name="Argument.value">2011-07-21</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="ReportingDate" elementType="Argument"> > > + <stringProp name="Argument.name">ReportingDate</stringProp> > > + <stringProp name="Argument.value">2011-07-21 > 12:30:08.337</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + </collectionProp> > > + </Arguments> > > + <hashTree/> > > + <Arguments guiclass="ArgumentsPanel" testclass="Arguments" > testname="MI 440 SSD GAIA Config" enabled="true"> > > + <collectionProp name="Arguments.arguments"> > > + <elementProp name="Database" elementType="Argument"> > > + <stringProp name="Argument.name">Database</stringProp> > > + <stringProp > name="Argument.value">HSPAD_MI_440_SSD</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="DatabaseHost" elementType="Argument"> > > + <stringProp name="Argument.name">DatabaseHost</stringProp> > > + <stringProp name="Argument.value">GAIA</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="DatabaseUser" elementType="Argument"> > > + <stringProp name="Argument.name">DatabaseUser</stringProp> > > + <stringProp name="Argument.value">sa</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="DatabasePassword" elementType="Argument"> > > + <stringProp > name="Argument.name">DatabasePassword</stringProp> > > + <stringProp name="Argument.value">sa2008</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + </collectionProp> > > + </Arguments> > > + <hashTree/> > > + <Arguments guiclass="ArgumentsPanel" testclass="Arguments" > testname="MI PCO Pfo List" enabled="true"> > > + <collectionProp name="Arguments.arguments"> > > + <elementProp name="Pfo_1" elementType="Argument"> > > + <stringProp name="Argument.name">Pfo_1</stringProp> > > + <stringProp name="Argument.value">1548</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="Pfo_2" elementType="Argument"> > > + <stringProp name="Argument.name">Pfo_2</stringProp> > > + <stringProp name="Argument.value">1611</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + <elementProp name="Pfo_3" elementType="Argument"> > > + <stringProp name="Argument.name">Pfo_3</stringProp> > > + <stringProp name="Argument.value">1613</stringProp> > > + <stringProp name="Argument.metadata">=</stringProp> > > + </elementProp> > > + </collectionProp> > > + <stringProp name="TestPlan.comments">CutOff Nr 11249, > 2011-07-2 / 2011-07-21 12:30:08.337 / DailyNAV Estimate / Within Price > Cut-Off</stringProp> > > + </Arguments> > > + <hashTree/> > > + <JDBCDataSource guiclass="TestBeanGUI" testclass="JDBCDataSource" > testname="JDBC Connection Configuration" enabled="true"> > > + <boolProp name="autocommit">false</boolProp> > > + <stringProp name="checkQuery"></stringProp> > > + <stringProp name="connectionAge">5000</stringProp> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp > name="dbUrl">${DriverURL}//${DatabaseHost}:${DatabasePort}/${Database}</stringProp> > > + <stringProp > name="driver">net.sourceforge.jtds.jdbc.Driver</stringProp> > > + <boolProp name="keepAlive">true</boolProp> > > + <stringProp name="password">${DatabasePassword}</stringProp> > > + <stringProp name="poolMax">25</stringProp> > > + <stringProp name="timeout">10000</stringProp> > > + <stringProp name="trimInterval">60000</stringProp> > > + <stringProp name="username">${DatabaseUser}</stringProp> > > + <stringProp name="transactionIsolation">4096</stringProp> > > + <stringProp name="TestPlan.comments">Connect to local > HSPAD_Demo_CO and set its isolation mode to SNAPSHOT (4096) and disable > auto commit.</stringProp> > > + </JDBCDataSource> > > + <hashTree/> > > + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" > testname="3 Users" 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">3</stringProp> > > + </elementProp> > > + <stringProp name="ThreadGroup.num_threads">3</stringProp> > > + <stringProp name="ThreadGroup.ramp_time">0</stringProp> > > + <longProp name="ThreadGroup.start_time">1316530469000</longProp> > > + <longProp name="ThreadGroup.end_time">1316530469000</longProp> > > + <boolProp name="ThreadGroup.scheduler">false</boolProp> > > + <stringProp name="ThreadGroup.duration"></stringProp> > > + <stringProp name="ThreadGroup.delay"></stringProp> > > + </ThreadGroup> > > + <hashTree> > > + <ModuleController guiclass="ModuleControllerGui" > testclass="ModuleController" testname="PCO Valuation" enabled="true"> > > + <collectionProp name="ModuleController.node_path"> > > + <stringProp name="-1227702913">WorkBench</stringProp> > > + <stringProp name="1465685679">Concurrent Valuation Test > Plan</stringProp> > > + <stringProp name="1372988285">PCO Valuation</stringProp> > > + </collectionProp> > > + </ModuleController> > > + <hashTree/> > > + </hashTree> > > + <SetupThreadGroup guiclass="SetupThreadGroupGui" > testclass="SetupThreadGroup" testname="setUp 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">1320821253000</longProp> > > + <longProp name="ThreadGroup.end_time">1320821253000</longProp> > > + <boolProp name="ThreadGroup.scheduler">false</boolProp> > > + <stringProp name="ThreadGroup.duration"></stringProp> > > + <stringProp name="ThreadGroup.delay"></stringProp> > > + </SetupThreadGroup> > > + <hashTree> > > + <TestAction guiclass="TestActionGui" testclass="TestAction" > testname="Setup Middle Tier usage" enabled="true"> > > + <intProp name="ActionProcessor.action">1</intProp> > > + <intProp name="ActionProcessor.target">0</intProp> > > + <stringProp name="ActionProcessor.duration"></stringProp> > > + </TestAction> > > + <hashTree> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Set UseMiddleTierValuationEngine and > Timeout" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="query">UPDATE T_SettingGlobal SET > UseMiddleTierValuationEngine=?, MiddleTierRequestTimeout=?</stringProp> > > + <stringProp > name="queryArguments">${UseMiddleTierValuationEngine}, > ${MiddleTierRequestTimeout}</stringProp> > > + <stringProp name="queryArgumentsTypes">BIT, > INTEGER</stringProp> > > + <stringProp name="queryType">Prepared Update > Statement</stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Commit" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Commit</stringProp> > > + <stringProp name="query"></stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + </hashTree> > > + <TestAction guiclass="TestActionGui" testclass="TestAction" > testname="Clear caches" enabled="true"> > > + <intProp name="ActionProcessor.action">1</intProp> > > + <intProp name="ActionProcessor.target">0</intProp> > > + <stringProp name="ActionProcessor.duration">0</stringProp> > > + </TestAction> > > + <hashTree> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Clear Buffers" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Update Statement</stringProp> > > + <stringProp name="query">DBCC DROPCLEANBUFFERS</stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Clear Proc Cache" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Update Statement</stringProp> > > + <stringProp name="query">DBCC FREEPROCCACHE</stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + </hashTree> > > + </hashTree> > > + <TestFragmentController guiclass="TestFragmentControllerGui" > testclass="TestFragmentController" testname="PCO Valuation" enabled="true"/> > > + <hashTree> > > + <TransactionController guiclass="TransactionControllerGui" > testclass="TransactionController" testname="Calculate PCO Transaction" > enabled="true"> > > + <boolProp name="TransactionController.parent">true</boolProp> > > + </TransactionController> > > + <hashTree> > > + <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" > testname="Begin Tran" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Update Statement</stringProp> > > + <stringProp name="query">BEGIN TRAN COMMIT TRAN</stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <boolProp name="collectDiagnostics">false</boolProp> > > + </JDBCSampler> > > + <hashTree/> > > + <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" > testname="Calculate Price cut off" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Callable Statement</stringProp> > > + <stringProp name="query">PfoVal_Recalculate ?, ?, > 1</stringProp> > > + <stringProp name="queryArguments">${Pfo_1}, > ${PfoValInstance}</stringProp> > > + <stringProp name="queryArgumentsTypes">INTEGER, > INTEGER</stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <boolProp name="collectDiagnostics">true</boolProp> > > + </JDBCSampler> > > + <hashTree> > > + <BSFPreProcessor guiclass="TestBeanGUI" > testclass="BSFPreProcessor" testname="Prepare Portfolio List for Price > Cut-Off" enabled="true"> > > + <stringProp name="scriptLanguage">groovy</stringProp> > > + <stringProp name="parameters"></stringProp> > > + <stringProp name="filename"></stringProp> > > + <stringProp name="script">import groovy.sql.Sql > > +import org.apache.jmeter.protocol.jdbc.config.DataSourceElement > > +try { > > + // build Pfo List > > + println("Building Portfolio List") > > + def pfoList = "<PfoList>" > > + def pfoNr = 1 > > + def pfo = vars.get("Pfo_" + pfoNr) > > + while(pfo != null) { > > + println("Pfo: $pfo"); > > + pfoList = pfoList + "<Pfo ID='$pfo' > EmptyValuation='true' PropagatePrice='true'/>" > > + pfoNr++ > > + pfo = vars.get("Pfo_" + pfoNr) > > + } > > + pfoList = pfoList + "</PfoList>" > > + vars.put("PfoListXML", pfoList) > > +} catch (Exception e) { > > + println(e.toString()); > > +}</stringProp> > > + </BSFPreProcessor> > > + <hashTree/> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Create Price Cut-Off" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="query">CreatePriceCutOff ?, ?, ?, ?, ?, > ?, ?, ?</stringProp> > > + <stringProp > name="queryArguments">${__threadNum},${ValueDate},${PCOQuality},${ReportingDate},]NULL[,${PCO},${PfoListXML},${PricePropagationMode}</stringProp> > > + <stringProp name="queryArgumentsTypes">VARCHAR, DATE, > INTEGER,TIMESTAMP,INTEGER,OUT INTEGER,CLOB,INTEGER</stringProp> > > + <stringProp name="queryType">Callable > Statement</stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + <JDBCPreProcessor guiclass="TestBeanGUI" > testclass="JDBCPreProcessor" testname="Get Portfolio Valuation Instance > from Price Cut-Off" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Prepared Select > Statement</stringProp> > > + <stringProp name="query">select Nr from PfoValInstance > where Pfo=? AND PriceCutOff=?</stringProp> > > + <stringProp > name="queryArguments">${Pfo_1},${PCO}</stringProp> > > + <stringProp > name="queryArgumentsTypes">INTEGER,INTEGER</stringProp> > > + <stringProp > name="variableNames">PfoValInstance</stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + </JDBCPreProcessor> > > + <hashTree/> > > + <JDBCPostProcessor guiclass="TestBeanGUI" > testclass="JDBCPostProcessor" testname="JDBC PostProcessor" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="query">DeletePriceCutOff ?</stringProp> > > + <stringProp name="queryArguments">${PCO}</stringProp> > > + <stringProp > name="queryArgumentsTypes">INTEGER</stringProp> > > + <stringProp name="queryType">Callable > Statement</stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + </JDBCPostProcessor> > > + <hashTree/> > > + </hashTree> > > + <IfController guiclass="IfControllerPanel" > testclass="IfController" testname="If Controller" enabled="true"> > > + <stringProp > name="IfController.condition">${JMeterThread.last_sample_ok}</stringProp> > > + <boolProp name="IfController.evaluateAll">false</boolProp> > > + </IfController> > > + <hashTree> > > + <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" > testname="Commit" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Commit</stringProp> > > + <stringProp name="query"></stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <stringProp name="TestPlan.comments">Commit the > transaction of the valuation</stringProp> > > + <boolProp name="collectDiagnostics">false</boolProp> > > + </JDBCSampler> > > + <hashTree/> > > + </hashTree> > > + <IfController guiclass="IfControllerPanel" > testclass="IfController" testname="If Controller" enabled="true"> > > + <stringProp > name="IfController.condition">${JMeterThread.last_sample_ok}==false</stringProp> > > + <boolProp name="IfController.evaluateAll">false</boolProp> > > + </IfController> > > + <hashTree> > > + <JDBCSampler guiclass="TestBeanGUI" testclass="JDBCSampler" > testname="Rollback" enabled="true"> > > + <stringProp name="dataSource"></stringProp> > > + <stringProp name="queryType">Rollback</stringProp> > > + <stringProp name="query"></stringProp> > > + <stringProp name="queryArguments"></stringProp> > > + <stringProp name="queryArgumentsTypes"></stringProp> > > + <stringProp name="variableNames"></stringProp> > > + <stringProp name="resultVariable"></stringProp> > > + <boolProp name="collectDiagnostics">false</boolProp> > > + </JDBCSampler> > > + <hashTree/> > > + </hashTree> > > + </hashTree> > > + </hashTree> > > + <ResultCollector guiclass="SummaryReport" > testclass="ResultCollector" testname="Summary Report" enabled="true"> > > + <boolProp name="ResultCollector.error_logging">false</boolProp> > > + <objProp> > > + <name>saveConfig</name> > > + <value class="SampleSaveConfiguration"> > > + <time>true</time> > > + <latency>false</latency> > > + <timestamp>true</timestamp> > > + <success>false</success> > > + <label>true</label> > > + <code>false</code> > > + <message>false</message> > > + <threadName>true</threadName> > > + <dataType>false</dataType> > > + <encoding>false</encoding> > > + <assertions>false</assertions> > > + <subresults>false</subresults> > > + <responseData>false</responseData> > > + <samplerData>false</samplerData> > > + <xml>true</xml> > > + <fieldNames>false</fieldNames> > > + <responseHeaders>false</responseHeaders> > > + <requestHeaders>false</requestHeaders> > > + <responseDataOnError>false</responseDataOnError> > > + > > <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> > > + <assertionsResultsToSave>0</assertionsResultsToSave> > > + </value> > > + </objProp> > > + <stringProp name="filename"></stringProp> > > + </ResultCollector> > > + <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>true</xml> > > + <fieldNames>false</fieldNames> > > + <responseHeaders>false</responseHeaders> > > + <requestHeaders>false</requestHeaders> > > + <responseDataOnError>false</responseDataOnError> > > + > > <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> > > + <assertionsResultsToSave>0</assertionsResultsToSave> > > + <bytes>true</bytes> > > + </value> > > + </objProp> > > + <stringProp name="filename"></stringProp> > > + </ResultCollector> > > + <hashTree/> > > + <ResultCollector guiclass="TableVisualizer" > testclass="ResultCollector" testname="View Results in Table" 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>true</xml> > > + <fieldNames>false</fieldNames> > > + <responseHeaders>false</responseHeaders> > > + <requestHeaders>false</requestHeaders> > > + <responseDataOnError>false</responseDataOnError> > > + > > <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> > > + <assertionsResultsToSave>0</assertionsResultsToSave> > > + <bytes>true</bytes> > > + </value> > > + </objProp> > > + <stringProp name="filename"></stringProp> > > + </ResultCollector> > > + <hashTree/> > > + </hashTree> > > + </hashTree> > > +</jmeterTestPlan> > > > > Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1210001&r1=1210000&r2=1210001&view=diff > > > ============================================================================== > > --- jmeter/trunk/xdocs/usermanual/component_reference.xml (original) > > +++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sat Dec 3 > 20:53:32 2011 > > @@ -4455,9 +4455,21 @@ For details, see <complink name="BSF Pre > > <description> > > <p> > > The JDBC PreProcessor enables you to run some SQL statement just before > a sample runs. > > -This can be useful if your JDBC Sample changes some data and you want > to reset state to what it was before the JDBC sample run. > > +This can be useful if your JDBC Sample requires some data to be in > DataBase and you cannot compute this in a setup Thread group. > > +</p> > > +<p> > > +See the following Test plan: > > </p> > > +<links> > > + <link href="JDBC-Pre-Post-Processor.jmx">Test Plan using JDBC > Pre/Post Processor</link> > > +</links> > > +<p> > > +In the linked test plan,"Create Price Cut-Off" JDBC PreProcessor calls > a stored procedure to create a Price Cut-Off in Database, > > +this one will be used by "Calculate Price cut off". > > + > > +<figure width="1346" height="636" image="jdbc-pre-processor.png">Create > Price Cut-Off Preprocessor</figure> > > > > +</p> > > </description> > > </component> > > > > @@ -4791,13 +4803,17 @@ For details, see the <complink name="BSF > > <description> > > <p> > > The JDBC PostProcessor enables you to run some SQL statement just after > a sample has run. > > -This can be useful if your JDBC Sample requires some data to be in > DataBase and you cannot compute this in a setup Thread group. > > +This can be useful if your JDBC Sample changes some data and you want > to reset state to what it was before the JDBC sample run. > > </p> > > </description> > > </component> > > - > > -<a href="#">^</a> > > - > > +<links> > > + <link href="JDBC-Pre-Post-Processor.jmx">Test Plan using JDBC > Pre/Post Processor</link> > > +</links> > > +<p> > > +In the linked test plan,"JDBC PostProcessor" JDBC PostProcessor calls a > stored procedure to delete the Price Cut-Off that was created by > PreProcessor from Database. > > +<figure width="1343" height="631" image="jdbc-post-processor.png">JDBC > PostProcessor</figure> > > +</p> > > </section> > > > > <section name="§-num;.9 Miscellaneous Features" > anchor="Miscellaneous_Features"> > > > > > -- Cordialement. Philippe Mouawad.
