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 <xor007@gmail.com> 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>
>
|