cloudscale-max.jmx

1462 lines | 82.406 kB Blame History Raw Download
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.9" jmeter="3.0 r1743807">
  <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>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables - COMMON" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="NUM_ITEMS" elementType="Argument">
            <stringProp name="Argument.name">NUM_ITEMS</stringProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="NUM_EBS" elementType="Argument">
            <stringProp name="Argument.name">NUM_EBS</stringProp>
            <stringProp name="Argument.value">100</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="HOST" elementType="Argument">
            <stringProp name="Argument.name">HOST</stringProp>
            <stringProp name="Argument.value">${__P(host)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">${__P(host)}</stringProp>
          </elementProp>
          <elementProp name="PORT" elementType="Argument">
            <stringProp name="Argument.name">PORT</stringProp>
            <stringProp name="Argument.value">80</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">${__P(remote_port)}</stringProp>
          </elementProp>
          <elementProp name="SHOWCASE" elementType="Argument">
            <stringProp name="Argument.name">SHOWCASE</stringProp>
            <stringProp name="Argument.value">/showcase-1-a</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="SHOPPING_ID" elementType="Argument">
            <stringProp name="Argument.name">SHOPPING_ID</stringProp>
            <stringProp name="Argument.value"></stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">The value is set during scenario execution!</stringProp>
          </elementProp>
          <elementProp name="ITEM_ID" elementType="Argument">
            <stringProp name="Argument.name">ITEM_ID</stringProp>
            <stringProp name="Argument.value"></stringProp>
            <stringProp name="Argument.desc">The value is set during scenario execution!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="SWITCH_ID" elementType="Argument">
            <stringProp name="Argument.name">SWITCH_ID</stringProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.desc">The value will change during scenarion exectution. Don&apos;t change initial value!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="COUNTER" elementType="Argument">
            <stringProp name="Argument.name">COUNTER</stringProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="STARTUP_THREADS" elementType="Argument">
            <stringProp name="Argument.name">STARTUP_THREADS</stringProp>
            <stringProp name="Argument.value">${__P(startup_threads)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="REST_THREADS" elementType="Argument">
            <stringProp name="Argument.name">REST_THREADS</stringProp>
            <stringProp name="Argument.value">${__P(rest_threads)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables - NUM_CUSTOMERS" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="NUM_CUSTOMERS" elementType="Argument">
            <stringProp name="Argument.name">NUM_CUSTOMERS</stringProp>
            <stringProp name="Argument.value">${__BeanShell(num_ebs = vars.get(&quot;NUM_EBS&quot;); return Integer.parseInt(num_ebs) * 2880;)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables - CUSTOMER_ID" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="CUSTOMER_ID" elementType="Argument">
            <stringProp name="Argument.name">CUSTOMER_ID</stringProp>
            <stringProp name="Argument.value">${__Random(1, ${NUM_CUSTOMERS})}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <kg.apc.jmeter.threads.UltimateThreadGroup guiclass="kg.apc.jmeter.threads.UltimateThreadGroupGui" testclass="kg.apc.jmeter.threads.UltimateThreadGroup" testname="jp@gc - Ultimate Thread Group" enabled="true">
        <collectionProp name="ultimatethreadgroupdata">
          <collectionProp name="1277204053">
            <stringProp name="1537214">2000</stringProp>
            <stringProp name="48">0</stringProp>
            <stringProp name="56499">960</stringProp>
            <stringProp name="48">0</stringProp>
            <stringProp name="48">0</stringProp>
          </collectionProp>
        </collectionProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
      </kg.apc.jmeter.threads.UltimateThreadGroup>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] Tresholds" enabled="false">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">int ADMIN_CONFIRM = 0;
int ADMIN_REQUEST = 1;
int BEST_SELLERS = 2;
int BUY_CONFIRM = 3;
int BUY_REQUEST = 4;
int CUSTOMER_REGISTRATION = 5;
int HOME = 6;
int NEW_PRODUCTS = 7;
int ORDER_DISPLAY = 8;
int ORDER_INQUIRY = 9;
int PRODUCT_DETAIL = 10;
int SEARCH_REQUEST = 11;
int SEARCH_RESULTS = 12;
int SHOPPING_CART = 13;

/*
 * See http://www.tpc.org/tpcw/spec/tpcw_v16.pdf page 94
 */
int[][] tresholdsMatrix = {
	{0, 0, 0, 0, 0, 0, 9952, 0, 0, 0, 0, 9999, 0, 0},
	{8999, 0, 0, 0, 0, 0, 9999, 0, 0, 0, 0, 0, 0, 0},
	{0,0,0,0,0, 0, 167, 0,0,0, 472, 9927,0,9999},
	{0,0,0,0,0, 0, 84, 0,0,0,0,9999,0,0},
	{0,0,0,4614,0, 0, 6546, 0,0,0,0,0,0,9999},
	{0,0,0,0,8666, 0, 8760, 0,0,0,0,9999,0,0},
	{0,0,3124,0,0, 0, 0, 6249,0, 6718,0,7026,0,9999},
	{0,0,0,0,0, 0, 156, 0,0,0,9735,9784,0,9999},
	{0,0,0,0,0, 0, 69, 0,0,0,0,9999,0,0},
	{0,0,0,0,0, 0, 72, 0,8872,0,0,9999,0,0},
	{0,58,0,0,0, 0, 832, 0,0,0,1288,8603,0,9999},
	{0,0,0,0,0, 0, 635, 0,0,0,0,0,9135,9999},
	{0,0,0,0,0, 0, 2657, 0,0,0,9294,9304,0,9999},
	{0,0,0,0,0, 2585, 9552, 0,0,0,0,0,0,9999},
};

int nextOperation(int currentOperation)
{
	int newOperation = -1;
	
	Random rand = new Random();
	int r = 1 + rand.nextInt(9999);
	
	for( int i = 0; i &lt; tresholdsMatrix[currentOperation].length; i++)
	{
		int t = tresholdsMatrix[currentOperation][i];
		if( r &lt;= t)
			return i;
	}
	
	return newOperation;
}

previousOperation = vars.get(&quot;OPERATION&quot;);
newOp = nextOperation(Integer.parseInt(previousOperation));
vars.put(&quot;OPERATION&quot;, String.valueOf(newOp));</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] ITEM_ID" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import java.util.Random;
import java.util.ArrayList;

prevTreshold = vars.get(&quot;TRESHOLD&quot;);
prevSwitchId = vars.get(&quot;SWITCH_ID&quot;);
numItems = Integer.parseInt(vars.get(&quot;NUM_ITEMS&quot;));

Random rand = new Random();
item = 1 + rand.nextInt(numItems);
vars.put(&quot;ITEM_ID&quot;, Integer.toString(item));

treshold = 1+rand.nextInt(numItems);
vars.put(&quot;TRESHOLD&quot;, Integer.toString(treshold));

//System.out.println(&quot;Treshold1 = &quot; + treshold);
//System.out.println(&quot;ITEM_ID1 = &quot; + item);
</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] probability3" enabled="false">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import org.apache.commons.math3.distribution.EnumeratedDistribution;
import org.apache.commons.math3.util.Pair;
import java.util.ArrayList;

class Item
{
	String operation;
	double probability;
	int jmeterIndex;
	
	public Item(String operation, double probability, int jmeterIndex)
	{
		this.operation = operation;
		this.probability = probability;
		this.jmeterIndex = jmeterIndex;
	}
}

ArrayList items = new ArrayList(){{
	add(new Item(&quot;Home&quot;, 29, 7)); 
	add(new Item(&quot;New products&quot;, 11, 8)); 
	add(new Item(&quot;Best Sellers&quot;, 11, 3));
	add(new Item(&quot;Product Detail&quot;, 21, 11)); 
	add(new Item(&quot;Search Request&quot;, 12, 12));
	add(new Item(&quot;Search Results&quot;, 11, 13)); 
	add(new Item(&quot;Shopping Cart&quot;, 1.25, 14));
	add(new Item(&quot;Customer Registration&quot;, 0.82, 6));
	add(new Item(&quot;Buy Request&quot;, 0.75, 5));
	add(new Item(&quot;Buy Confirm&quot;, 0.69, 4));
	add(new Item(&quot;Order Inquiry&quot;, 0.30, 10));
	add(new Item(&quot;Order Display&quot;, 0.25, 9));
	add(new Item(&quot;Admin Request&quot;, 0.10, 2));
	add(new Item(&quot;Admin Confirm&quot;, 0.09, 1));
}};

ArrayList itemWeights = new ArrayList();
for(Item i : items)
{
	itemWeights.add(new Pair(i, i.probability));
}

newOperation = new EnumeratedDistribution(itemWeights).sample();

vars.put(&quot;SWITCH_ID&quot;, String.valueOf(newOperation.jmeterIndex));</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] probability2" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import java.util.Random;

Random rand = vars.getObject(&quot;RANDOM&quot;);
if(rand == null)
{
	rand = new Random();
	vars.putObject(&quot;RANDOM&quot;, rand);
}

int[] browsingMix = {
	2900, //home
	2100, // product-detail
	1100, // new-products
	75, //buy
	69, // buy-confirm	
	25, // order-display	
	9, // admin confirm
	10, // admin request
	30, // order-inquiry
	82, //customer-registration
	125, // shopping-cart
	1100, // best-sellers
	1100, // search-result
	1200, // search-request
};

int probSum = 0;

for( int i=0; i &lt; browsingMix.length; i++)
{
  probSum += browsingMix[i];
}

int[] range = new int[2 * browsingMix.length];

for( int i=0; i &lt; browsingMix.length; i++)
{
  int sum = 0;
  for( int j=0; j&lt;i; j++)
   {
       sum += browsingMix[j];
   }

  range[i] = sum;
  range[i+1] = range[i] + browsingMix[i];
}


int randNum = rand.nextInt(probSum);

for(int i=0; i &lt; browsingMix.length; i++)
{
  if( randNum &gt;= range[i] &amp;&amp; randNum &lt; range[i+1] )
  {
      vars.put(&quot;SWITCH_ID&quot;, String.valueOf(i));
      return;
  }	
}
</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] buy-confirm" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import java.util.Random;

Random rand = new Random();

String[] ccTypes = {
         &quot;Visa&quot;,
         &quot;MasterCard&quot;,
         &quot;Discover&quot;,
         &quot;Amex&quot;,
         &quot;Diners&quot;
};

String[] shippingTypes = {
         &quot;AIR&quot;,
         &quot;UPS&quot;,
         &quot;FEDEX&quot;,
         &quot;SHIP&quot;,
         &quot;COURIER&quot;,
         &quot;MAIL&quot;
};

int min = 0;
int max = ccTypes.length -1;

ccType = ccTypes[rand.nextInt((max - min) + 1) + min];

max = shippingTypes.length-1;

shipping = shippingTypes[rand.nextInt((max - min) + 1) + min];

vars.put(&quot;RAND_CC_TYPE&quot;, ccType);
vars.put(&quot;RAND_SHIPPING&quot;, shipping);</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] Random subject" enabled="true">
          <stringProp name="filename"></stringProp>
          <stringProp name="parameters"></stringProp>
          <boolProp name="resetInterpreter">true</boolProp>
          <stringProp name="script">import java.util.*;

String[] subjects = {
        &quot;ARTS&quot;,
        &quot;BIOGRAPHIES&quot;,
        &quot;BUSINESS&quot;,
        &quot;CHILDREN&quot;,
        &quot;COMPUTERS&quot;,
        &quot;COOKING&quot;,
        &quot;HEALTH&quot;,
        &quot;HISTORY&quot;,
        &quot;HOME&quot;,
        &quot;HUMOR&quot;,
        &quot;LITERATURE&quot;,
        &quot;MYSTERY&quot;,
        &quot;NON-FICTION&quot;,
        &quot;PARENTING&quot;,
        &quot;POLITICS&quot;,
        &quot;REFERENCE&quot;,
        &quot;RELIGION&quot;,
        &quot;ROMANCE&quot;,
        &quot;SELF-HELP&quot;,
        &quot;SCIENCE-NATURE&quot;,
        &quot;SCIENCE-FICTION&quot;,
        &quot;SPORTS&quot;,
        &quot;YOUTH&quot;,
        &quot;TRAVEL&quot;
    };

min = 0;
max = subjects.length-1;

Random rand = new Random();
subject = subjects[rand.nextInt((max - min) + 1) + min];

vars.put(&quot;RAND_SUBJECT&quot;, subject);</stringProp>
          <stringProp name="TestPlan.comments">Random subject</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] Random searchField" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import java.util.Random;

Random rand = new Random();

String[] searchFields = {
         &quot;author&quot;,
         &quot;title&quot;,
         &quot;subject&quot;
};

min = 0;
max = searchFields.length -1;

searchField = searchFields[rand.nextInt((max - min) + 1) + min];

vars.put(&quot;RAND_SEARCHFIELD&quot;, searchField);</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="[BeanShell PreProcessor] Random new_price" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"></stringProp>
          <stringProp name="filename"></stringProp>
          <stringProp name="script">import java.util.Random;

Random rand = new Random();
max = 300;
min = 10;
price = rand.nextInt((max - min) + 1) + min;

vars.put(&quot;NEW_PRICE&quot;, Integer.toString(price));</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <SwitchController guiclass="SwitchControllerGui" testclass="SwitchController" testname="Switch Controller" enabled="true">
          <stringProp name="SwitchController.value">${SWITCH_ID}</stringProp>
        </SwitchController>
        <hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/home" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="SHOPPING_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${SHOPPING_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHOPPING_ID</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">true</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/product-detail" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/product-detail" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                  <elementProp name="I_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${ITEM_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">I_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/product-detail</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/new-products" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/new-products" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="SUBJECT" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_SUBJECT}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SUBJECT</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/new-products</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree>
              <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="[BeanShell PostProcessor] get ITEM_ID" enabled="true">
                <stringProp name="filename"></stringProp>
                <stringProp name="parameters"></stringProp>
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="script">import java.util.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Random;
import java.util.ArrayList;

String testString = prev.getResponseDataAsString();

String patternString = &quot;product-detail(.+)\\?I_ID=([0-9]+)(.+)&quot;;
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(testString);

ArrayList ids = new ArrayList();

while(matcher.find())
{
	ids.add(matcher.group(2));
}

Random rand = new Random();

if( ids.size() &gt; 0 )
{
	String itemId = String.valueOf(ids.get(rand.nextInt( ids.size() ) ) );
	vars.put(&quot;ITEM_ID&quot;,  itemId);
}</stringProp>
              </BeanShellPostProcessor>
              <hashTree/>
            </hashTree>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/buy" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/shopping-cart?I_ID=&amp;QTY=1&amp;ADD_FLAG=Y" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="I_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${ITEM_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">I_ID</stringProp>
                  </elementProp>
                  <elementProp name="QTY" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">1</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">QTY</stringProp>
                  </elementProp>
                  <elementProp name="ADD_FLAG" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">Y</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">ADD_FLAG</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/shopping-cart</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree>
              <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor - SHOPPING_ID" enabled="true">
                <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                <stringProp name="RegexExtractor.refname">SHOPPING_ID</stringProp>
                <stringProp name="RegexExtractor.regex">SHOPPING_ID=([0-9]+)</stringProp>
                <stringProp name="RegexExtractor.template">$1$</stringProp>
                <stringProp name="RegexExtractor.default">0</stringProp>
                <stringProp name="RegexExtractor.match_number">0</stringProp>
              </RegexExtractor>
              <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/buy?RETURNING_FLAG=Y" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="RETURNING_FLAG" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">Y</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">RETURNING_FLAG</stringProp>
                  </elementProp>
                  <elementProp name="SHOPPING_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${SHOPPING_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHOPPING_ID</stringProp>
                  </elementProp>
                  <elementProp name="username" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__digSyl(${CUSTOMER_ID})}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">username</stringProp>
                  </elementProp>
                  <elementProp name="password" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__digSyl(${CUSTOMER_ID})}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">password</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/buy</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">false</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/buy-confirm" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/buy-confirm" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="street1" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">street1</stringProp>
                  </elementProp>
                  <elementProp name="street2" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">street2</stringProp>
                  </elementProp>
                  <elementProp name="city" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">city</stringProp>
                  </elementProp>
                  <elementProp name="state" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">state</stringProp>
                  </elementProp>
                  <elementProp name="zip" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">zip</stringProp>
                  </elementProp>
                  <elementProp name="country" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">country</stringProp>
                  </elementProp>
                  <elementProp name="CC_TYPE" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_CC_TYPE}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_TYPE</stringProp>
                  </elementProp>
                  <elementProp name="CC_NAME" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__RandomString(12,qwertyuiopasdfghjklzxcvbnm)}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_NAME</stringProp>
                  </elementProp>
                  <elementProp name="CC_NUMBER" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">55555555</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_NUMBER</stringProp>
                  </elementProp>
                  <elementProp name="CC_EXPIRY" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">04/01/2017</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_EXPIRY</stringProp>
                  </elementProp>
                  <elementProp name="SHIPPING" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_SHIPPING}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHIPPING</stringProp>
                  </elementProp>
                  <elementProp name="SHOPPING_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${SHOPPING_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHOPPING_ID</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/buy-confirm</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/payment" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="street1" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">true</boolProp>
                    <stringProp name="Argument.value">Izanska c. 233</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">street1</stringProp>
                  </elementProp>
                  <elementProp name="street2" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value"></stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">street2</stringProp>
                  </elementProp>
                  <elementProp name="city" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">Ljubljana</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">city</stringProp>
                  </elementProp>
                  <elementProp name="zip" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">1000</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">zip</stringProp>
                  </elementProp>
                  <elementProp name="country" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">Germany</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">country</stringProp>
                  </elementProp>
                  <elementProp name="CC_TYPE" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_CC_TYPE}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_TYPE</stringProp>
                  </elementProp>
                  <elementProp name="CC_NAME" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">true</boolProp>
                    <stringProp name="Argument.value">Simon Ivansek</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_NAME</stringProp>
                  </elementProp>
                  <elementProp name="CC_NUMBER" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">12345678</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_NUMBER</stringProp>
                  </elementProp>
                  <elementProp name="CC_EXPIRY" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">true</boolProp>
                    <stringProp name="Argument.value">04/03/2014</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">CC_EXPIRY</stringProp>
                  </elementProp>
                  <elementProp name="SHIPPING" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_SHIPPING}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHIPPING</stringProp>
                  </elementProp>
                  <elementProp name="SHOPPING_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${SHOPPING_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHOPPING_ID</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                  <elementProp name="distribution" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">expo</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">distribution</stringProp>
                  </elementProp>
                  <elementProp name="attr1" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">5</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">attr1</stringProp>
                  </elementProp>
                  <elementProp name="attr3" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">2</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">attr3</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/payment</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/order-display" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/order-display" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="username" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__digSyl(${CUSTOMER_ID})}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">username</stringProp>
                  </elementProp>
                  <elementProp name="password" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__digSyl(${CUSTOMER_ID})}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">password</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port"></stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/order-display</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/admin-confirm" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/admin-confirm" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="I_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${ITEM_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">I_ID</stringProp>
                  </elementProp>
                  <elementProp name="new_price" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${NEW_PRICE}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">new_price</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/admin-confirm</stringProp>
              <stringProp name="HTTPSampler.method">POST</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/admin" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/admin" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="I_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${ITEM_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">I_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/admin</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/order-inquiry" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/order-inquiry" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments"/>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/order-inquiry</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/customer-registration" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/customer-registration?SHOPPING_ID=" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="SHOPPING_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${SHOPPING_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SHOPPING_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/customer-registration</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/shopping-cart?ADD_FLAG=N" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/shopping-cart?ADD_FLAG=N" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="ADD_FLAG" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">N</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">ADD_FLAG</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/shopping-cart</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree>
              <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor - SHOPPING_ID" enabled="true">
                <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                <stringProp name="RegexExtractor.refname">SHOPPING_ID</stringProp>
                <stringProp name="RegexExtractor.regex">SHOPPING_ID=([0-9]+)</stringProp>
                <stringProp name="RegexExtractor.template">$1$</stringProp>
                <stringProp name="RegexExtractor.default">0</stringProp>
                <stringProp name="RegexExtractor.match_number">0</stringProp>
                <stringProp name="Sample.scope">all</stringProp>
                <stringProp name="Scope.variable">${SHOPPING_ID}</stringProp>
              </RegexExtractor>
              <hashTree/>
            </hashTree>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/best-sellers" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/best-sellers" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="SUBJECT" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_SUBJECT}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">SUBJECT</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/best-sellers</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree>
              <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="[BeanShell PostProcessor] get ITEM_ID" enabled="true">
                <stringProp name="filename"></stringProp>
                <stringProp name="parameters"></stringProp>
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="script">import java.util.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Random;
import java.util.ArrayList;

String testString = prev.getResponseDataAsString();

String patternString = &quot;product-detail(.+)\\?I_ID=([0-9]+)(.+)&quot;;
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(testString);

ArrayList ids = new ArrayList();

while(matcher.find())
{
	ids.add(matcher.group(2));
}

Random rand = new Random();

if( ids.size() &gt; 0 )
{
	String itemId = String.valueOf(ids.get(rand.nextInt( ids.size() ) ) );
	vars.put(&quot;ITEM_ID&quot;,  itemId);
}</stringProp>
              </BeanShellPostProcessor>
              <hashTree/>
            </hashTree>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="search( is SHOPPING_ID?)" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/search?searchField=&amp;keyword=&amp;C_ID=" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments">
                  <elementProp name="searchField" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${RAND_SEARCHFIELD}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">searchField</stringProp>
                  </elementProp>
                  <elementProp name="keyword" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${__getRandomKeyword(${RAND_SEARCHFIELD}, ${NUM_ITEMS})}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">keyword</stringProp>
                  </elementProp>
                  <elementProp name="C_ID" elementType="HTTPArgument">
                    <boolProp name="HTTPArgument.always_encode">false</boolProp>
                    <stringProp name="Argument.value">${CUSTOMER_ID}</stringProp>
                    <stringProp name="Argument.metadata">=</stringProp>
                    <boolProp name="HTTPArgument.use_equals">true</boolProp>
                    <stringProp name="Argument.name">C_ID</stringProp>
                  </elementProp>
                </collectionProp>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/search</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">false</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
          <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="/search" enabled="true"/>
          <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="/search" enabled="true">
              <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
                <collectionProp name="Arguments.arguments"/>
              </elementProp>
              <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
              <stringProp name="HTTPSampler.port">${PORT}</stringProp>
              <stringProp name="HTTPSampler.connect_timeout"></stringProp>
              <stringProp name="HTTPSampler.response_timeout"></stringProp>
              <stringProp name="HTTPSampler.protocol"></stringProp>
              <stringProp name="HTTPSampler.contentEncoding"></stringProp>
              <stringProp name="HTTPSampler.path">${SHOWCASE}/search</stringProp>
              <stringProp name="HTTPSampler.method">GET</stringProp>
              <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
              <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
              <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
              <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
              <boolProp name="HTTPSampler.image_parser">true</boolProp>
              <boolProp name="HTTPSampler.monitor">true</boolProp>
              <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
            </HTTPSamplerProxy>
            <hashTree/>
            <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
              <stringProp name="ConstantTimer.delay">7000</stringProp>
            </ConstantTimer>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
      <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="false">
        <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>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
        <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>true</code>
            <message>true</message>
            <threadName>false</threadName>
            <dataType>false</dataType>
            <encoding>false</encoding>
            <assertions>false</assertions>
            <subresults>false</subresults>
            <responseData>true</responseData>
            <samplerData>false</samplerData>
            <xml>true</xml>
            <fieldNames>false</fieldNames>
            <responseHeaders>true</responseHeaders>
            <requestHeaders>true</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <url>true</url>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
      <kg.apc.jmeter.vizualizers.CorrectedResultCollector guiclass="kg.apc.jmeter.vizualizers.ResponseTimesOverTimeGui" testclass="kg.apc.jmeter.vizualizers.CorrectedResultCollector" testname="jp@gc - Response Times Over Time" 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>true</code>
            <message>true</message>
            <threadName>false</threadName>
            <dataType>false</dataType>
            <encoding>false</encoding>
            <assertions>false</assertions>
            <subresults>false</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>
            <threadCounts>true</threadCounts>
          </value>
        </objProp>
        <stringProp name="filename">response-times-over-time.csv</stringProp>
        <longProp name="interval_grouping">500</longProp>
        <boolProp name="graph_aggregated">false</boolProp>
        <stringProp name="include_sample_labels"></stringProp>
        <stringProp name="exclude_sample_labels"></stringProp>
        <stringProp name="start_offset"></stringProp>
        <stringProp name="end_offset"></stringProp>
        <boolProp name="include_checkbox_state">false</boolProp>
        <boolProp name="exclude_checkbox_state">false</boolProp>
      </kg.apc.jmeter.vizualizers.CorrectedResultCollector>
      <hashTree/>
    </hashTree>
  </hashTree>
</jmeterTestPlan>