Yes we can include CSV data config as a child to that sampler. Here's a little write up about JMeter hope it helps.
http://automationwithselenium.blogspot.co.uk/2012/01/jmeter-proxy.html cheers, s On Tue, Aug 14, 2012 at 12:50 PM, Jean FX <[email protected]> wrote: > Hello, > > I am a really new user of jMeter. Trying to implement a set of functional > tests in one single test plan. > > In this plan, I need to : > > 1- Send a constant XML-RPC request to a server and grab a value from the > result(doing this with Xpath Extractor). > 2- Then send a variable number of XML-RPC requests with values coming from > a csv file(Trying to use a CSV Data config for this) > 3- Finally, send another last XML-RPC request only once. > > It all works as expected (almost) but the last XML-RPC request is repeated > for every line in the CSV Data config file. > > Is it possible to restrict the CSV Data config element to a specific > Sampler or even Logic Controller? > > Thanks in advance, > Jean > > Bellow My current test plan: > > > <?xml version="1.0" encoding="UTF-8"?> > <jmeterTestPlan version="1.2" properties="2.3"> > <hashTree> > <TestPlan guiclass="TestPlanGui" testclass="TestPlan" > testname="ATPZero" enabled="true"> > <stringProp name="TestPlan.comments"></stringProp> > <boolProp name="TestPlan.functional_mode">true</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 name="MSISDN" elementType="Argument"> > <stringProp name="Argument.name">MSISDN</stringProp> > <stringProp name="Argument.value">66349528</stringProp> > <stringProp name="Argument.metadata">=</stringProp> > </elementProp> > <elementProp name="volDA" elementType="Argument"> > <stringProp name="Argument.name">volDA</stringProp> > <stringProp name="Argument.value">17</stringProp> > <stringProp name="Argument.metadata">=</stringProp> > </elementProp> > <elementProp name="countDA" elementType="Argument"> > <stringProp name="Argument.name">countDA</stringProp> > <stringProp name="Argument.value">29</stringProp> > <stringProp name="Argument.metadata">=</stringProp> > </elementProp> > <elementProp name="bonusDA" elementType="Argument"> > <stringProp name="Argument.name">bonusDA</stringProp> > <stringProp name="Argument.value">42</stringProp> > <stringProp name="Argument.metadata">=</stringProp> > </elementProp> > <elementProp name="MSISDN1" elementType="Argument"> > <stringProp name="Argument.name">MSISDN1</stringProp> > <stringProp name="Argument.value">66349528</stringProp> > <stringProp name="Argument.metadata">=</stringProp> > </elementProp> > </collectionProp> > </elementProp> > <stringProp name="TestPlan.user_define_classpath"></stringProp> > </TestPlan> > <hashTree> > <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" > testname="AutoTester" enabled="true"> > <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">20</stringProp> > </elementProp> > <stringProp name="ThreadGroup.num_threads">1</stringProp> > <stringProp name="ThreadGroup.ramp_time">1</stringProp> > <longProp name="ThreadGroup.start_time">1344265518000</longProp> > <longProp name="ThreadGroup.end_time">1344265518000</longProp> > <boolProp name="ThreadGroup.scheduler">false</boolProp> > <stringProp > name="ThreadGroup.on_sample_error">continue</stringProp> > <stringProp name="ThreadGroup.duration"></stringProp> > <stringProp name="ThreadGroup.delay"></stringProp> > </ThreadGroup> > <hashTree> > <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" > testname="HeaderTestLab" enabled="true"> > <collectionProp name="HeaderManager.headers"> > <elementProp name="" elementType="Header"> > <stringProp name="Header.name">User-Agent</stringProp> > <stringProp name="Header.value">UGw > Server/4.1/1.0</stringProp> > </elementProp> > <elementProp name="" elementType="Header"> > <stringProp name="Header.name">Content-Type</stringProp> > <stringProp name="Header.value">text/xml</stringProp> > </elementProp> > <elementProp name="" elementType="Header"> > <stringProp name="Header.name">Authorization</stringProp> > <stringProp name="Header.value">Basic > 2hda-=asfafaad1</stringProp> > </elementProp> > </collectionProp> > <stringProp name="TestPlan.comments">default ucip headers for > pssim</stringProp> > </HeaderManager> > <hashTree/> > <GenericController guiclass="LogicControllerGui" > testclass="GenericController" testname="BatchRequests" enabled="true"/> > <hashTree> > <SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" > testname="PingUser" enabled="true"> > <elementProp name="HTTPsampler.Arguments" > elementType="Arguments"> > <collectionProp name="Arguments.arguments"/> > </elementProp> > <stringProp name="SoapSampler.URL_DATA"> > http://192.168.101.120:10010/Air</stringProp> > <stringProp name="HTTPSamper.xml_data"><?xml > version="1.0" encoding="UTF-8"?> > <methodCall> > <methodName>GetBalanceAndDate</methodName> > <params> > <param> > <value> > <struct> > <member> > <name>originNodeType</name> > <value> > <string>EXT</string> > </value> > </member> > <member> > <name>originHostName</name> > <value> > <string>USSDGW</string> > </value> > </member> > <member> > <name>originTransactionID</name> > <value> > <string>2012080619175629676</string> > </value> > </member> > <member> > <name>originTimeStamp</name> > <value> > > <dateTime.iso8601>20120806T19:17:56+0500</dateTime.iso8601> > </value> > </member> > <member> > <name>subscriberNumberNAI</name> > <value> > <i4>1</i4> > </value> > </member> > <member> > <name>subscriberNumber</name> > <value> > <string>${msisdn}</string> > </value> > </member> > </struct> > </value> > </param> > </params> > </methodCall> > </stringProp> > <stringProp name="SoapSampler.xml_data_file"></stringProp> > <stringProp name="SoapSampler.SOAP_ACTION"></stringProp> > <stringProp > name="SoapSampler.SEND_SOAP_ACTION">false</stringProp> > <boolProp name="HTTPSampler.use_keepalive">false</boolProp> > </SoapSampler> > <hashTree> > <XPathAssertion guiclass="XPathAssertionGui" > testclass="XPathAssertion" testname="responseOK" enabled="true"> > <boolProp name="XPath.negate">false</boolProp> > <stringProp > name="XPath.xpath">//member[name="responseCode" and > value/*=0]</stringProp> > <boolProp name="XPath.validate">false</boolProp> > <boolProp name="XPath.whitespace">false</boolProp> > <boolProp name="XPath.tolerant">false</boolProp> > <boolProp name="XPath.namespace">false</boolProp> > </XPathAssertion> > <hashTree/> > <XPathExtractor guiclass="XPathExtractorGui" > testclass="XPathExtractor" testname="GetResponseCode" enabled="true"> > <stringProp name="TestPlan.comments">contains the response > code</stringProp> > <stringProp name="XPathExtractor.default">100</stringProp> > <stringProp name="XPathExtractor.refname">rCode</stringProp> > <stringProp > > name="XPathExtractor.xpathQuery">//member[name="responseCode"]/value/*[1]</stringProp> > <boolProp name="XPathExtractor.tolerant">false</boolProp> > <boolProp name="XPathExtractor.namespace">true</boolProp> > <boolProp name="XPathExtractor.validate">false</boolProp> > </XPathExtractor> > <hashTree/> > </hashTree> > <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" > testname="ListOfUsers" enabled="true"> > <stringProp > name="filename">/home/jean/Integration/testmses.csv</stringProp> > <stringProp name="fileEncoding"></stringProp> > <stringProp > name="variableNames">msisdn,volDa,volVal,countDa,countVal</stringProp> > <stringProp name="delimiter">,</stringProp> > <boolProp name="quotedData">false</boolProp> > <boolProp name="recycle">true</boolProp> > <boolProp name="stopThread">false</boolProp> > <stringProp name="shareMode">All threads</stringProp> > </CSVDataSet> > <hashTree/> > </hashTree> > <SoapSampler guiclass="SoapSamplerGui" testclass="SoapSampler" > testname="GetAccountDetails" enabled="true"> > <elementProp name="HTTPsampler.Arguments" > elementType="Arguments"> > <collectionProp name="Arguments.arguments"/> > </elementProp> > <stringProp name="SoapSampler.URL_DATA"> > http://192.168.101.120:10010/Air</stringProp> > <stringProp name="HTTPSamper.xml_data"><?xml > version="1.0" encoding="UTF-8"?> > <methodCall> > <methodName>GetAccountDetails</methodName> > <params> > <param> > <value> > <struct> > <member> > <name>originNodeType</name> > <value> > <string>${originNodeType}</string> > </value> > </member> > <member> > <name>originHostName</name> > <value> > <string>${originHostName}</string> > </value> > </member> > <member> > <name>originTransactionID</name> > <value> > <string>${transaction_id}</string> > </value> > </member> > <member> > <name>originTimeStamp</name> > <value> > <dateTime.iso8601>${timestamp}</dateTime.iso8601> > </value> > </member> > <member> > <name>subscriberNumberNAI</name> > <value> > <i4>${subscriberNumberNAI}</i4> > </value> > </member> > <member> > <name>subscriberNumber</name> > <value> > <string>${subscriberNumber}</string> > </value> > </member> > <member> > <name>requestedInformationFlags</name> > <value> > <struct> > <member> > <name>requestMasterAccountBalanceFlag</name> > <value> > <boolean>1</boolean> > </value> > </member> > </struct> > </value> > </member> > </struct> > </value> > </param> > </params> > </methodCall></stringProp> > <stringProp name="SoapSampler.xml_data_file"></stringProp> > <stringProp name="SoapSampler.SOAP_ACTION"></stringProp> > <stringProp > name="SoapSampler.SEND_SOAP_ACTION">false</stringProp> > <boolProp name="HTTPSampler.use_keepalive">false</boolProp> > </SoapSampler> > <hashTree> > <XPathAssertion guiclass="XPathAssertionGui" > testclass="XPathAssertion" testname="responseOK" enabled="true"> > <boolProp name="XPath.negate">false</boolProp> > <stringProp > name="XPath.xpath">//member[name="responseCode" and > value/*=0]</stringProp> > <boolProp name="XPath.validate">false</boolProp> > <boolProp name="XPath.whitespace">false</boolProp> > <boolProp name="XPath.tolerant">false</boolProp> > <boolProp name="XPath.namespace">false</boolProp> > </XPathAssertion> > <hashTree/> > <XPathExtractor guiclass="XPathExtractorGui" > testclass="XPathExtractor" testname="GetResponseCode" enabled="true"> > <stringProp name="TestPlan.comments">contains the response > code</stringProp> > <stringProp name="XPathExtractor.default">100</stringProp> > <stringProp name="XPathExtractor.refname">rCode2</stringProp> > <stringProp > > name="XPathExtractor.xpathQuery">//member[name="responseCode"]/value/*[1]</stringProp> > <boolProp name="XPathExtractor.tolerant">false</boolProp> > <boolProp name="XPathExtractor.namespace">true</boolProp> > <boolProp name="XPathExtractor.validate">false</boolProp> > </XPathExtractor> > <hashTree/> > </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/> > </hashTree> > </hashTree> > </hashTree> > </jmeterTestPlan> >
