jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean FX <xor...@gmail.com>
Subject Fwd: Is it possible to restrict the CSV Data config element to a specific Sampler or even Logic Controller?
Date Tue, 14 Aug 2012 11:50:29 GMT
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">&lt;?xml
version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;methodCall&gt;
  &lt;methodName&gt;GetBalanceAndDate&lt;/methodName&gt;
  &lt;params&gt;
    &lt;param&gt;
      &lt;value&gt;
        &lt;struct&gt;
          &lt;member&gt;
            &lt;name&gt;originNodeType&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;EXT&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originHostName&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;USSDGW&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originTransactionID&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;2012080619175629676&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originTimeStamp&lt;/name&gt;
            &lt;value&gt;

&lt;dateTime.iso8601&gt;20120806T19:17:56+0500&lt;/dateTime.iso8601&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;subscriberNumberNAI&lt;/name&gt;
            &lt;value&gt;
              &lt;i4&gt;1&lt;/i4&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;subscriberNumber&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;${msisdn}&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
        &lt;/struct&gt;
      &lt;/value&gt;
    &lt;/param&gt;
  &lt;/params&gt;
&lt;/methodCall&gt;
</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=&quot;responseCode&quot; 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=&quot;responseCode&quot;]/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">&lt;?xml
version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;methodCall&gt;
  &lt;methodName&gt;GetAccountDetails&lt;/methodName&gt;
  &lt;params&gt;
    &lt;param&gt;
      &lt;value&gt;
        &lt;struct&gt;
          &lt;member&gt;
            &lt;name&gt;originNodeType&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;${originNodeType}&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originHostName&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;${originHostName}&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originTransactionID&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;${transaction_id}&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;originTimeStamp&lt;/name&gt;
            &lt;value&gt;
              &lt;dateTime.iso8601&gt;${timestamp}&lt;/dateTime.iso8601&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;subscriberNumberNAI&lt;/name&gt;
            &lt;value&gt;
              &lt;i4&gt;${subscriberNumberNAI}&lt;/i4&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;subscriberNumber&lt;/name&gt;
            &lt;value&gt;
              &lt;string&gt;${subscriberNumber}&lt;/string&gt;
            &lt;/value&gt;
          &lt;/member&gt;
          &lt;member&gt;
            &lt;name&gt;requestedInformationFlags&lt;/name&gt;
            &lt;value&gt;
              &lt;struct&gt;
                &lt;member&gt;
                  &lt;name&gt;requestMasterAccountBalanceFlag&lt;/name&gt;
                  &lt;value&gt;
                    &lt;boolean&gt;1&lt;/boolean&gt;
                  &lt;/value&gt;
                &lt;/member&gt;
              &lt;/struct&gt;
            &lt;/value&gt;
          &lt;/member&gt;
        &lt;/struct&gt;
      &lt;/value&gt;
    &lt;/param&gt;
  &lt;/params&gt;
&lt;/methodCall&gt;</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=&quot;responseCode&quot; 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=&quot;responseCode&quot;]/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>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message