HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/setup/performance-toolkit/benchmark.jmx
<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<jmeterTestPlan version="1.2" properties="3.1" jmeter="3.1 r1770033">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Benchmark" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="host" elementType="Argument">
            <stringProp name="Argument.name">host</stringProp>
            <stringProp name="Argument.value">${__P(host,localhost)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="base_path" elementType="Argument">
            <stringProp name="Argument.name">base_path</stringProp>
            <stringProp name="Argument.value">${__P(base_path,/)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="files_folder" elementType="Argument">
            <stringProp name="Argument.name">files_folder</stringProp>
            <stringProp name="Argument.value">${__P(files_folder,./files/)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="request_protocol" elementType="Argument">
            <stringProp name="Argument.name">request_protocol</stringProp>
            <stringProp name="Argument.value">${__P(request_protocol,http)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphql_port_number" elementType="Argument">
            <stringProp name="Argument.name">graphql_port_number</stringProp>
            <stringProp name="Argument.value">${__P(graphql_port_number,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_password" elementType="Argument">
            <stringProp name="Argument.name">admin_password</stringProp>
            <stringProp name="Argument.value">${__P(admin_password,123123q)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_path" elementType="Argument">
            <stringProp name="Argument.name">admin_path</stringProp>
            <stringProp name="Argument.value">${__P(admin_path,admin)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_user" elementType="Argument">
            <stringProp name="Argument.name">admin_user</stringProp>
            <stringProp name="Argument.value">${__P(admin_user,admin)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cache_hits_percentage" elementType="Argument">
            <stringProp name="Argument.name">cache_hits_percentage</stringProp>
            <stringProp name="Argument.value">${__P(cache_hits_percentage,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="seedForRandom" elementType="Argument">
            <stringProp name="Argument.name">seedForRandom</stringProp>
            <stringProp name="Argument.value">${__P(seedForRandom,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="loops" elementType="Argument">
            <stringProp name="Argument.name">loops</stringProp>
            <stringProp name="Argument.value">${__P(loops,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="frontendPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">frontendPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(frontendPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">adminPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(adminPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="csrPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">csrPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(csrPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">apiPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(apiPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="oneThreadScenariosPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">oneThreadScenariosPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(oneThreadScenariosPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphQLPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">graphQLPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(graphQLPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="combinedBenchmarkPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">combinedBenchmarkPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(combinedBenchmarkPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="accountManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">accountManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(accountManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToCartByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToCartByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToCartByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToCartByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToCartByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToCartByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToWishlistPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToWishlistPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToWishlistPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCMSManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCMSManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryCount" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryCount</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryCount,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCreateOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateOrderPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProcessReturns" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProcessReturns</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProcessReturns,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProcessReturnsDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProcessReturnsDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProcessReturnsDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCustomerManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCustomerManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminEditOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminEditOrderPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomerBehavior" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomerBehavior</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomerBehavior,append)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomerFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomerFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomerFilePath,import_customers/customer_import_addupdate.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductBehavior" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductBehavior</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductBehavior,append)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductFilePath,import_products/product_import_append_1.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminProductCreationPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminProductCreationPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminProductCreationPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminProductEditingPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminProductEditingPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminProductEditingPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionRulesPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionRulesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionRulesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionsManagement" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionsManagement</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionsManagement,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionsManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionsManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionsManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminReturnsManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminReturnsManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminReturnsManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_customer_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_customer_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_customer_filter_text,Firstname)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_orders_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_orders_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_orders_filter_text,pending)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_product_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_product_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_product_filter_text,Product)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_users_distribution_per_admin_pool" elementType="Argument">
            <stringProp name="Argument.name">admin_users_distribution_per_admin_pool</stringProp>
            <stringProp name="Argument.value">${__P(admin_users_distribution_per_admin_pool,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiBasePercentage" elementType="Argument">
            <stringProp name="Argument.name">apiBasePercentage</stringProp>
            <stringProp name="Argument.value">${__P(apiBasePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiOrderInvoiceShipmentSync" elementType="Argument">
            <stringProp name="Argument.name">apiOrderInvoiceShipmentSync</stringProp>
            <stringProp name="Argument.value">${__P(apiOrderInvoiceShipmentSync,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProcessOrders" elementType="Argument">
            <stringProp name="Argument.name">apiProcessOrders</stringProp>
            <stringProp name="Argument.value">${__P(apiProcessOrders,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiSinglePercentage" elementType="Argument">
            <stringProp name="Argument.name">apiSinglePercentage</stringProp>
            <stringProp name="Argument.value">${__P(apiSinglePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="bamboo_build_number" elementType="Argument">
            <stringProp name="Argument.name">bamboo_build_number</stringProp>
            <stringProp name="Argument.value">${__P(bamboo_build_number,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCatalogByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCatalogByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCatalogByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCatalogByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCatalogByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCatalogByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCustomerGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCustomerGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCustomerGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseOrderGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseOrderGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseOrderGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseProductGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseProductGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseProductGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAccountManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAccountManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAccountManagementPercentage,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAddToCartByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAddToCartByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAddToCartByGuestPercentage,26)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAddToWishlistPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAddToWishlistPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAddToWishlistPercentage,1.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseCustomerGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseCustomerGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseCustomerGridPercentage,0.1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseOrderGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseOrderGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseOrderGridPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseProductGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseProductGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseProductGridPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCMSManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCMSManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCMSManagementPercentage,0.35)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCategoryManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCategoryManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCategoryManagementPercentage,0.15)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCreateOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCreateOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCreateOrderPercentage,0.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCustomerManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCustomerManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCustomerManagementPercentage,0.4)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminEditOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminEditOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminEditOrderPercentage,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminProductCreationPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminProductCreationPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminProductCreationPercentage,0.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminProductEditingPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminProductEditingPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminProductEditingPercentage,0.65)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminPromotionRulesPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminPromotionRulesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminPromotionRulesPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminReturnsManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminReturnsManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminReturnsManagementPercentage,0.75)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cBrowseCatalogByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cBrowseCatalogByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cBrowseCatalogByGuestPercentage,29)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCheckoutByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCheckoutByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCheckoutByCustomerPercentage,3.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCheckoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCheckoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCheckoutByGuestPercentage,3.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCompareProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCompareProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCompareProductsPercentage,1.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cSiteSearchPercentage" elementType="Argument">
            <stringProp name="Argument.name">cSiteSearchPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cSiteSearchPercentage,29)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogGraphQLPercentage" elementType="Argument">
            <stringProp name="Argument.name">catalogGraphQLPercentage</stringProp>
            <stringProp name="Argument.value">${__P(catalogGraphQLPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="categories_count" elementType="Argument">
            <stringProp name="Argument.name">categories_count</stringProp>
            <stringProp name="Argument.value">${__P(categories_count,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">checkoutByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">checkoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="compareProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">compareProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(compareProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="configurable_products_count" elementType="Argument">
            <stringProp name="Argument.name">configurable_products_count</stringProp>
            <stringProp name="Argument.value">${__P(configurable_products_count,15)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_checkout_percent" elementType="Argument">
            <stringProp name="Argument.name">customer_checkout_percent</stringProp>
            <stringProp name="Argument.value">${__P(customer_checkout_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_password" elementType="Argument">
            <stringProp name="Argument.name">customer_password</stringProp>
            <stringProp name="Argument.value">${__P(customer_password,123123q)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customers_page_size" elementType="Argument">
            <stringProp name="Argument.name">customers_page_size</stringProp>
            <stringProp name="Argument.value">${__P(customers_page_size,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="dashboard_enabled" elementType="Argument">
            <stringProp name="Argument.name">dashboard_enabled</stringProp>
            <stringProp name="Argument.value">${__P(dashboard_enabled,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="exportCustomersPercentage" elementType="Argument">
            <stringProp name="Argument.name">exportCustomersPercentage</stringProp>
            <stringProp name="Argument.value">${__P(exportCustomersPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="exportProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">exportProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(exportProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="Argument">
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.value">${__P(form_key,uVEW54r8kKday8Wk)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlAddConfigurableProductToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlAddConfigurableProductToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlAddConfigurableProductToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlAddSimpleProductToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlAddSimpleProductToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlAddSimpleProductToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlApplyCouponToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlApplyCouponToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlApplyCouponToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCatalogBrowsingByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCatalogBrowsingByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCatalogBrowsingByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCheckoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCheckoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCheckoutByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCreateEmptyCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCreateEmptyCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCreateEmptyCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCategoryListByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCategoryListByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCategoryListByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCmsPageByIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCmsPageByIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCmsPageByIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCmsPageWithPageBuilderProductListPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCmsPageWithPageBuilderProductListPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCmsPageWithPageBuilderProductListPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetConfigurableProductDetailsByNamePercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetConfigurableProductDetailsByNamePercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetConfigurableProductDetailsByNamePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetEmptyCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetEmptyCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetEmptyCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetListOfProductsByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetListOfProductsByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetListOfProductsByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetNavigationMenuByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetNavigationMenuByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetNavigationMenuByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetProductSearchByTextAndCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetProductSearchByTextAndCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetProductSearchByTextAndCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetSimpleProductDetailsByNamePercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetSimpleProductDetailsByNamePercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetSimpleProductDetailsByNamePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetSimpleProductDetailsByProductUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetSimpleProductDetailsByProductUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetSimpleProductDetailsByProductUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveConfigurableProductFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveConfigurableProductFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveConfigurableProductFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveCouponFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveCouponFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveCouponFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveSimpleProductFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveSimpleProductFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveSimpleProductFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlSetBillingAddressOnCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlSetBillingAddressOnCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlSetBillingAddressOnCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlSetShippingAddressOnCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlSetShippingAddressOnCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlSetShippingAddressOnCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateConfigurableProductQtyInCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateConfigurableProductQtyInCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateConfigurableProductQtyInCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateSimpleProductQtyInCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateSimpleProductQtyInCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateSimpleProductQtyInCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateSimpleProductQtyInCartWithPricesPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateSimpleProductQtyInCartWithPricesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateSimpleProductQtyInCartWithPricesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUrlInfoByUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUrlInfoByUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUrlInfoByUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="guest_checkout_percent" elementType="Argument">
            <stringProp name="Argument.name">guest_checkout_percent</stringProp>
            <stringProp name="Argument.value">${__P(guest_checkout_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="importCustomersPercentage" elementType="Argument">
            <stringProp name="Argument.name">importCustomersPercentage</stringProp>
            <stringProp name="Argument.value">${__P(importCustomersPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="importProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">importProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(importProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="lineItemsAmount" elementType="Argument">
            <stringProp name="Argument.name">lineItemsAmount</stringProp>
            <stringProp name="Argument.value">${__P(lineItemsAmount,10)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="orders_page_size" elementType="Argument">
            <stringProp name="Argument.name">orders_page_size</stringProp>
            <stringProp name="Argument.value">${__P(orders_page_size,20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productCompareDelay" elementType="Argument">
            <stringProp name="Argument.name">productCompareDelay</stringProp>
            <stringProp name="Argument.value">${__P(productCompareDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productGridMassActionPercentage" elementType="Argument">
            <stringProp name="Argument.name">productGridMassActionPercentage</stringProp>
            <stringProp name="Argument.value">${__P(productGridMassActionPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="products_page_size" elementType="Argument">
            <stringProp name="Argument.name">products_page_size</stringProp>
            <stringProp name="Argument.value">${__P(products_page_size,20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="ramp_period" elementType="Argument">
            <stringProp name="Argument.name">ramp_period</stringProp>
            <stringProp name="Argument.value">${__P(ramp_period,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="redis_host" elementType="Argument">
            <stringProp name="Argument.name">redis_host</stringProp>
            <stringProp name="Argument.value">${__P(redis_host,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="report_save_path" elementType="Argument">
            <stringProp name="Argument.name">report_save_path</stringProp>
            <stringProp name="Argument.value">${__P(report_save_path,./)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="response_time_file_name" elementType="Argument">
            <stringProp name="Argument.name">response_time_file_name</stringProp>
            <stringProp name="Argument.value">${__P(response_time_file_name,production.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="reviewByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">reviewByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(reviewByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="reviewDelay" elementType="Argument">
            <stringProp name="Argument.name">reviewDelay</stringProp>
            <stringProp name="Argument.value">${__P(reviewDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="scenario" elementType="Argument">
            <stringProp name="Argument.name">scenario</stringProp>
            <stringProp name="Argument.value">${__P(scenario,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchAdvancedPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchAdvancedPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchAdvancedPercentage,10)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickFilterPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchQuickFilterPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickFilterPercentage,30)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchQuickPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickPercentage,60)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="simple_products_count" elementType="Argument">
            <stringProp name="Argument.name">simple_products_count</stringProp>
            <stringProp name="Argument.value">${__P(simple_products_count,30)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="siteSearchPercentage" elementType="Argument">
            <stringProp name="Argument.name">siteSearchPercentage</stringProp>
            <stringProp name="Argument.value">${__P(siteSearchPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="sprint_identifier" elementType="Argument">
            <stringProp name="Argument.name">sprint_identifier</stringProp>
            <stringProp name="Argument.value">${__P(sprint_identifier,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="start_time" elementType="Argument">
            <stringProp name="Argument.name">start_time</stringProp>
            <stringProp name="Argument.value">${__P(start_time,${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)})}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="starting_index" elementType="Argument">
            <stringProp name="Argument.name">starting_index</stringProp>
            <stringProp name="Argument.value">${__P(starting_index,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="think_time_delay_offset" elementType="Argument">
            <stringProp name="Argument.name">think_time_delay_offset</stringProp>
            <stringProp name="Argument.value">${__P(think_time_delay_offset,2000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="think_time_deviation" elementType="Argument">
            <stringProp name="Argument.name">think_time_deviation</stringProp>
            <stringProp name="Argument.value">${__P(think_time_deviation,1000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="url_suffix" elementType="Argument">
            <stringProp name="Argument.name">url_suffix</stringProp>
            <stringProp name="Argument.value">${__P(url_suffix,.html)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="website_id" elementType="Argument">
            <stringProp name="Argument.name">website_id</stringProp>
            <stringProp name="Argument.value">${__P(website_id,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="wishlistDelay" elementType="Argument">
            <stringProp name="Argument.name">wishlistDelay</stringProp>
            <stringProp name="Argument.value">${__P(wishlistDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
    </TestPlan>
    <hashTree>
    <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
      <boolProp name="ResultCollector.error_logging">false</boolProp>
      <objProp>
        <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>true</requestHeaders>
          <responseDataOnError>false</responseDataOnError>
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
          <assertionsResultsToSave>0</assertionsResultsToSave>
          <bytes>true</bytes>
          <hostname>true</hostname>
          <threadCounts>true</threadCounts>
          <sampleCount>true</sampleCount>
        </value>
      </objProp>
      <stringProp name="filename"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/view_results_tree.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate 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>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <threadCounts>true</threadCounts>
            <idleTime>true</idleTime>
          </value>
        </objProp>
        <stringProp name="filename">/tmp/aggregate-jmeter-results.jtl</stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/aggregate_report.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" 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"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
      <stringProp name="HTTPSampler.path"/>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_request_default.jmx</stringProp></ConfigTestElement>
    <hashTree/>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="Accept-Language" elementType="Header">
          <stringProp name="Header.name">Accept-Language</stringProp>
          <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
        </elementProp>
        <elementProp name="Accept" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
        </elementProp>
        <elementProp name="User-Agent" elementType="Header">
          <stringProp name="Header.name">User-Agent</stringProp>
          <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
        </elementProp>
        <elementProp name="Accept-Encoding" elementType="Header">
          <stringProp name="Header.name">Accept-Encoding</stringProp>
          <stringProp name="Header.value">gzip, deflate</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
      <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
      <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
        <boolProp name="LoopController.continue_forever">false</boolProp>
        <stringProp name="LoopController.loops">1</stringProp>
      </elementProp>
      <stringProp name="ThreadGroup.num_threads">1</stringProp>
      <stringProp name="ThreadGroup.ramp_time">1</stringProp>
      <longProp name="ThreadGroup.start_time">1384333221000</longProp>
      <longProp name="ThreadGroup.end_time">1384333221000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/setup.jmx</stringProp></SetupThreadGroup>
    <hashTree>
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Initialize" enabled="true">
      <stringProp name="BeanShellSampler.query">
props.remove("category_url_key");
props.remove("category_url_keys_list");
props.remove("category_name");
props.remove("category_names_list");
props.remove("simple_products_list");
props.remove("simple_products_list_for_edit");
props.remove("configurable_products_list");
props.remove("configurable_products_list_for_edit");
props.remove("users");
props.remove("customer_emails_list");
props.remove("categories");
props.remove("cms_pages");
props.remove("cms_blocks");
props.remove("coupon_codes");

/* This is only used when admin is enabled. */
props.put("activeAdminThread", "");

/* Set the environment - at this time '01' or '02' */
String path = "${host}";
String environment = path.substring(4, 6);
props.put("environment", environment);</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/initialize.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: validate user defined variables" enabled="true">
      <stringProp name="BeanShellSampler.query">Boolean stopTestOnError (String error) {
    log.error(error);
    System.out.println(error);
    SampleResult.setStopTest(true);
    return false;
}

if ("${host}" == "1") {
    return stopTestOnError("\"host\" parameter is not defined. Please define host parameter as: \"-Jhost=example.com\"");
}

String path = "${base_path}";
String slash = "/";
if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substring(0, 1))) {
    return stopTestOnError("\"base_path\" parameter is invalid. It must start and end with \"/\"");
}
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/validate_user_defined_variables.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Login admin" enabled="true"/>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1397214398">Welcome</stringProp>
            <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_form_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="dummy" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">dummy</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="login[password]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_password}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">login[password]</stringProp>
            </elementProp>
            <elementProp name="login[username]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_user}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">login[username]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
        <stringProp name="HTTPSampler.implementation">Java</stringProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/login.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert logged-in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1847038912">&lt;title&gt;Dashboard / Magento Admin&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract admin users" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_admin_users.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Extract Admin Users" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/user/roleGrid/limit/200/?ajax=true&amp;isAjax=true</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true">
          <stringProp name="filename"/>
          <stringProp name="parameters"/>
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="script">import java.util.regex.Pattern;
                    import java.util.regex.Matcher;
                    import java.util.LinkedList;

                    LinkedList adminUserList = new LinkedList();
                    String response = new String(data);
                    Pattern pattern = Pattern.compile("&lt;td\\W*?data-column=.username[^&gt;]*?&gt;\\W*?(\\w+)\\W*?&lt;");
                    Matcher matcher = pattern.matcher(response);

                    while (matcher.find()) {
                    adminUserList.add(matcher.group(1));
                    }

                    adminUserList.poll();
                    props.put("adminUserList", adminUserList);
                    props.put("adminUserListIterator", adminUserList.descendingIterator());
                </stringProp>
        </BeanShellPostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract customers" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_customers.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Open Customer Grid" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
          <stringProp name="filename"/>
          <stringProp name="parameters"/>
          <boolProp name="resetInterpreter">true</boolProp>
          <stringProp name="script">import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("adminhtml",vars.get("COOKIE_adminhtml"),vars.get("host"),"/",false,0);
manager.add(cookie); </stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Grid" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-679437259">Customers</stringProp>
            <stringProp name="495525733">&lt;title&gt;Customers / Customers / Magento Admin&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Search Customers" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_since[locale]=en_US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="filters[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[group_id]</stringProp>
            </elementProp>
            <elementProp name="filters[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[website_id]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${customers_page_size}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
          <stringProp name="JSON_PATH">$.totalRecords</stringProp>
          <stringProp name="EXPECTED_VALUE">0</stringProp>
          <boolProp name="JSONVALIDATION">true</boolProp>
          <boolProp name="EXPECT_NULL">false</boolProp>
          <boolProp name="INVERT">true</boolProp>
          <boolProp name="ISREGEX">true</boolProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer emails" enabled="true">
          <stringProp name="VAR">customer_emails</stringProp>
          <stringProp name="JSONPATH">$.items[*].email</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer ids" enabled="true">
          <stringProp name="VAR">customer_ids</stringProp>
          <stringProp name="JSONPATH">$.items[*].entity_id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Make email list" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">import java.util.LinkedList;
LinkedList emailsList = new LinkedList();
props.put("customer_emails_list", emailsList);</stringProp>
        </BeanShellPostProcessor>
        <hashTree/>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: customer emails loop (search result)" enabled="true">
        <stringProp name="ForeachController.inputVal">customer_emails</stringProp>
        <stringProp name="ForeachController.returnVal">customer_email</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">email_counter</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect customer emails" enabled="true">
          <stringProp name="BeanShellSampler.query">
try {

props.get("customer_emails_list").add(vars.get("customer_email"));

} catch (java.lang.Exception e) {
	log.error("error&#x2026;", e);
	SampleResult.setStopThread(true);
}
          </stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: customer ids loop (search result)" enabled="true">
        <stringProp name="ForeachController.inputVal">customer_ids</stringProp>
        <stringProp name="ForeachController.returnVal">customer_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">id_counter</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect customer ids" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

// If it is first iteration of cycle then recreate idsList
if (1 == Integer.parseInt(vars.get("id_counter"))) {
    idsList = new ArrayList();
    props.put("customer_ids_list", idsList);
} else {
    idsList = props.get("customer_ids_list");
}
idsList.add(vars.get("customer_id"));</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract region ids" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_region_ids.jmx</stringProp>
    </TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Extract Region ids" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/directory/json/countryRegion/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Parse and put region id into variables" enabled="true">
          <stringProp name="scriptLanguage">groovy</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper();
def regionResponse = jsonSlurper.parseText(prev.getResponseDataAsString());

regionResponse.each { region -&gt;
	if (region.label.toString() == "Alabama") {
		props.put("alabama_region_id", region.value.toString());
	} else if (region.label.toString() == 'California') {
		props.put("california_region_id", region.value.toString());
	}
}</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Api Data Retrieval" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="SetUp - Get CMS pages" enabled="true"/>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get CMS pages" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">20</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
          <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/get_cms_pages.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert results are present" enabled="true">
            <stringProp name="JSON_PATH">$.total_count</stringProp>
            <stringProp name="EXPECTED_VALUE">0</stringProp>
            <boolProp name="JSONVALIDATION">true</boolProp>
            <boolProp name="EXPECT_NULL">false</boolProp>
            <boolProp name="INVERT">true</boolProp>
            <boolProp name="ISREGEX">false</boolProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
          <hashTree/>
          <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var cmsPages = [];

for (var i in data.items) {
    cmsPages.push({"id": data.items[i].id, "identifier": data.items[i].identifier});
 }

props.put("cms_pages", cmsPages);
</stringProp>
          </JSR223PostProcessor>
          <hashTree/>
        </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract configurable products" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_configurable_products.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get configurable 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="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">configurable</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${configurable_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_products_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare configurable products" enabled="true">
        <stringProp name="ForeachController.inputVal">configurable_product_ids</stringProp>
        <stringProp name="ForeachController.returnVal">configurable_product_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">configurable_products_counter</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect configurable product" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList productList;

// If it is first iteration of cycle then recreate productList
if (1 == Integer.parseInt(vars.get("configurable_products_counter"))) {
    productList = new ArrayList();
    props.put("configurable_products_list", productList);
} else {
    productList = props.get("configurable_products_list");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map productMap = new HashMap();
productMap.put("id", vars.get("configurable_product_id"));
productMap.put("title", vars.get("configurable_product_names_" + vars.get("configurable_products_counter")));
productMap.put("sku", vars.get("configurable_product_skus_" + vars.get("configurable_products_counter")));
productMap.put("url_key", vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter")));
productMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
productList.add(productMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract configurable products for edit" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_configurable_products_for_edit.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get configurable products for edit" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">configurable</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${configurable_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[currentPage]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">2</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[currentPage]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_products_for_edit_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare configurable products for edit" enabled="true">
        <stringProp name="ForeachController.inputVal">configurable_product_for_edit_ids</stringProp>
        <stringProp name="ForeachController.returnVal">configurable_product_for_edit_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter for edit" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">configurable_products_counter_for_edit</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect configurable product for edit" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList editProductList;

if (1 == Integer.parseInt(vars.get("configurable_products_counter_for_edit"))) {
    editProductList = new ArrayList();
    props.put("configurable_products_list_for_edit", editProductList);
} else {
    editProductList = props.get("configurable_products_list_for_edit");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_for_edit_url_keys_" + vars.get("configurable_products_counter_for_edit"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map editProductMap = new HashMap();
editProductMap.put("id", vars.get("configurable_product_for_edit_id"));
editProductMap.put("title", vars.get("configurable_product_for_edit_names_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("sku", vars.get("configurable_product_for_edit_skus_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("url_key", vars.get("configurable_products_for_edit_url_keys_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
editProductList.add(editProductMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract simple products" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_simple_products.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get simple 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="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">simple</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${simple_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">attribute_set_id</stringProp>
                <stringProp name="Argument.metadata">!=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">4</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_products_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare simple products" enabled="true">
        <stringProp name="ForeachController.inputVal">simple_product_ids</stringProp>
        <stringProp name="ForeachController.returnVal">simple_product_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">simple_products_counter</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect simple product" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList productList;

// If it is first iteration of cycle then recreate productList
if (1 == Integer.parseInt(vars.get("simple_products_counter"))) {
    productList = new ArrayList();
    props.put("simple_products_list", productList);
} else {
    productList = props.get("simple_products_list");
}
String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map productMap = new HashMap();
productMap.put("id", vars.get("simple_product_id"));
productMap.put("title", vars.get("simple_product_names_" + vars.get("simple_products_counter")));
productMap.put("sku", vars.get("simple_product_skus_" + vars.get("simple_products_counter")));
productMap.put("url_key", vars.get("simple_products_url_keys_" + vars.get("simple_products_counter")));
productMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
productList.add(productMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract simple products for edit" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_simple_products_for_edit.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get simple products for edit" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">simple</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${simple_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[currentPage]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[currentPage]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][1][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">attribute_set_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][1][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][1][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">4</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][1][value]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_products_for_edit_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare simple products for edit" enabled="true">
        <stringProp name="ForeachController.inputVal">simple_product_for_edit_ids</stringProp>
        <stringProp name="ForeachController.returnVal">simple_product_for_edit_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter for edit" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">simple_products_counter_for_edit</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect simple product for edit" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList editProductList;

if (1 == Integer.parseInt(vars.get("simple_products_counter_for_edit"))) {
    editProductList = new ArrayList();
    props.put("simple_products_list_for_edit", editProductList);
} else {
    editProductList = props.get("simple_products_list_for_edit");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_for_edit_url_keys_" + vars.get("simple_products_counter_for_edit"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map editProductMap = new HashMap();
editProductMap.put("id", vars.get("simple_product_for_edit_id"));
editProductMap.put("title", vars.get("simple_product_for_edit_names_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("sku", vars.get("simple_product_for_edit_skus_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("url_key", vars.get("simple_products_for_edit_url_keys_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
editProductList.add(editProductMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories (First Level)" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_categories.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Categories Names and skus" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">path</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1/2/%</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][0][filters][0][conditionType]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">like</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][conditionType]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][1][filters][0][field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">level</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][field]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][1][filters][0][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][value]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${categories_count}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/categories/list</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">false</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var categoryData = [], categoryNames = [], categoryUrls = [];

for (var i in data.items) {
	var cat = data.items[i], urlKey = getUrlKey(cat);
     categoryData.push({"id": cat.id, "name": cat.name, "url_key": urlKey, "children": cat.children.split(",")});
     categoryNames.push(cat.name);
     categoryUrls.push(urlKey);
 }

function getUrlKey(cat) {
    for (var i in cat.custom_attributes) {
        if (cat.custom_attributes[i].attribute_code == "url_key") {
            return cat.custom_attributes[i].value;	
          }
    }
    return "";
}

props.put("categories", categoryData);
props.put("category_url_keys_list", categoryUrls);
props.put("category_names_list",categoryNames);</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories id of last level" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_categories_id_of_last_level.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Clear Admin Category Management properties" enabled="true">
        <stringProp name="BeanShellSampler.query">props.remove("admin_category_ids_list");</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get categories" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">children_count</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">0</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">level</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">2</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][conditionType]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">gt</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][conditionType]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${adminCategoryCount}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories/list</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">category_list_id</stringProp>
            <stringProp name="RegexExtractor.regex">\{\"id\":(\d+),</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Category Id" enabled="true">
          <stringProp name="ForeachController.inputVal">category_list_id</stringProp>
          <stringProp name="ForeachController.returnVal">category_id</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
        </ForeachController>
        <hashTree>
          <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process categories ids" enabled="true">
            <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

adminCategoryIdsList = props.get("admin_category_ids_list");
// If it is first iteration of cycle then recreate categories ids list
if (adminCategoryIdsList == null) {
    adminCategoryIdsList = new ArrayList();
    props.put("admin_category_ids_list", adminCategoryIdsList);
}
adminCategoryIdsList.add(vars.get("category_id"));</stringProp>
            <stringProp name="BeanShellSampler.filename"/>
            <stringProp name="BeanShellSampler.parameters"/>
            <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
          </BeanShellSampler>
          <hashTree/>
        </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract coupon codes" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_coupon_codes.jmx</stringProp>
    </TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get coupon codes" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">10</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/coupons/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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var couponCodes = [];

for (var i in data.items) {
	var coupon = data.items[i];
	couponCodes.push({"coupon_id":coupon.coupon_id, "rule_id":coupon.rule_id, "code": coupon.code});
 }

props.put("coupon_codes", couponCodes);
</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Validate properties and count users" enabled="true">
      <stringProp name="BeanShellSampler.query">Boolean stopTestOnError (String error) {
    log.error(error);
    System.out.println(error);
    SampleResult.setStopTest(true);
    return false;
}

if (props.get("simple_products_list") == null) {
    return stopTestOnError("Cannot find simple products. Test stopped.");
}
if (props.get("simple_products_list_for_edit") == null) {
    return stopTestOnError("Cannot find simple products for edit. Test stopped.");
}
if (props.get("configurable_products_list") == null) {
    return stopTestOnError("Cannot find configurable products. Test stopped.");
}
if (props.get("configurable_products_list_for_edit") == null) {
    return stopTestOnError("Cannot find configurable products for edit. Test stopped.");
}
if (props.get("customer_emails_list") == null) {
    return stopTestOnError("Cannot find customer emails. Test stopped.");
}
if (props.get("category_url_keys_list") == null) {
    return stopTestOnError("Cannot find category url keys. Test stopped.");
}
if (props.get("category_names_list") == null) {
    return stopTestOnError("Cannot find category names. Test stopped.");
}
if (props.get("cms_pages") == null) {
    return stopTestOnError("Cannot find cms pages. Test stopped.");
}
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/validate_properties.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - WarmUp Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/warmup_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Frontend Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${frontendPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog Browsing By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCatalogByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog Browsing By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${siteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">&lt;span class="toolbar-number"&gt;\d&lt;\/span&gt; Items|Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 1 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_1_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[1]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_1_filter_url</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 1 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_1_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter-first-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Url 2" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_1_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 1" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_1_filter_url}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
          <stringProp name="XPathExtractor.default">0</stringProp>
          <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
          <stringProp name="XPathExtractor.default"/>
          <stringProp name="XPathExtractor.refname">attribute_2_filter_url</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 2 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_2_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter-second-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Ul 3" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_2_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 2" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_2_filter_url}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Advanced Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/open_advanced_search_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="921122077">&lt;title&gt;Advanced Search&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute name" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_name</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">(//select[@class="multiselect"])[last()]/@name</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute options count" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//select[@class="multiselect"])[last()]/option)</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute value" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_value</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//select[@class="multiselect"])[last()]/option)[1]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
    </hashTree>


  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="name" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">name</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="sku" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">sku</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">description</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="short_description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">short_description</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bfrom%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bfrom%5D</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bto%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bto%5D</stringProp>
            <stringProp name="Argument.value">${priceTo}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <!-- Should be fixed in MAGETWO-80420 -->
          <!--<elementProp name="${attribute_name}" elementType="HTTPArgument">-->
            <!--<boolProp name="HTTPArgument.always_encode">true</boolProp>-->
            <!--<stringProp name="Argument.value">${attribute_value}</stringProp>-->
            <!--<stringProp name="Argument.metadata">=</stringProp>-->
            <!--<boolProp name="HTTPArgument.use_equals">true</boolProp>-->
            <!--<stringProp name="Argument.name">${attribute_name}</stringProp>-->
          <!--</elementProp>-->
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_advanced.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1851531284">items&lt;/strong&gt; were found using the following search criteria</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Produts to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Wishlist" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="uenc" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_uenc}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uenc</stringProp>
            </elementProp>
            <elementProp name="product" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/add/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/add_to_wishlist.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">wishListItems</stringProp>
          <stringProp name="RegexExtractor.regex">data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Wishlist Section ${_counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="sections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">wishlist,messages</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sections</stringProp>
            </elementProp>
            <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
            </elementProp>
            <elementProp name="_" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">_</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/load_wishlist_section.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1865430343">{"wishlist":{"counter":"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
          <stringProp name="ConstantTimer.delay">${wishlistDelay}*1000</stringProp>
        </ConstantTimer>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Clear Wishlist" enabled="true">
      <stringProp name="ForeachController.inputVal">wishListItems</stringProp>
      <stringProp name="ForeachController.returnVal">wishListItem</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/clear_wishlist.jmx</stringProp></ForeachController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end">5</stringProp>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Clear Wishlist ${counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="item" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${wishListItem}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">item</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/remove/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${compareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Random Product Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">random_product_compare_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\"</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Random Product Id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">random_product_compare_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/index/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Compare - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${productCompareDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products_pause.jmx</stringProp></TestAction>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products Clear" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/clear</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products_clear.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${checkoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"customerEmail":"test@example.com"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/isEmailAvailable</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_email_available.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="3569038">true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="1635682758">Your order # is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${checkoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">address_id</stringProp>
        <stringProp name="RegexExtractor.regex">"default_billing":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Customer Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_id</stringProp>
        <stringProp name="RegexExtractor.regex">"customer_id":([^'",]+),</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Address Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">address_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressId":"${addressId}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/shipping-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-740937264">{"payment_methods"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/payment-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8 </stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert order number" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="-1590086334">Your order number is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Clear Cookie" enabled="true">
      <boolProp name="resetInterpreter">false</boolProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="script">curSampler = ctx.getCurrentSampler();
if(curSampler.getName().contains("Checkout success")) {
	manager = curSampler.getCookieManager();
	manager.clear();
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Product Review By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${reviewByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Product Review By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Review Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 Rate and Review" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="ratings[1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">3</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ratings[1]</stringProp>
          </elementProp>
          <elementProp name="validate_rating" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validate_rating</stringProp>
          </elementProp>
          <elementProp name="nickname" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">FirstName</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">nickname</stringProp>
          </elementProp>
          <elementProp name="title" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some Review Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">title</stringProp>
          </elementProp>
          <elementProp name="detail" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some Review Text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">detail</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}review/product/post/id/${product_id}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_review/product_review.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1606201635">HTTP/1.1 200 OK</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Review Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">review,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_review/load_review.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Rating and Review - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${reviewDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_review/product_review_pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add To Cart By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToCartByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add To Cart By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Make Cart Empty" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Cart" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}checkout/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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/open_cart.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Opened" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract cart qty inputs" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">cart_items_qty_inputs</stringProp>
          <stringProp name="RegexExtractor.regex">name="cart\[([^\[\]]+)\]\[qty\]"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Remove Items From Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${cart_items_qty_inputs_matchNr}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data for Removing from Cart" enabled="true">
      <stringProp name="BeanShellSampler.query">
id = vars.get("_counter");
vars.put("uenc", vars.get("cart_items_uencs_" + id));
vars.put("item_id", vars.get("cart_items_qty_inputs_" + id));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove item" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments">
               <elementProp name="form_key" elementType="HTTPArgument">
                 <boolProp name="HTTPArgument.always_encode">true</boolProp>
                 <stringProp name="Argument.value">${form_key}</stringProp>
                 <stringProp name="Argument.metadata">=</stringProp>
                 <boolProp name="HTTPArgument.use_equals">true</boolProp>
                 <stringProp name="Argument.name">form_key</stringProp>
               </elementProp>
               <elementProp name="uenc" elementType="HTTPArgument">
                 <boolProp name="HTTPArgument.always_encode">true</boolProp>
                 <stringProp name="Argument.value">${uenc}</stringProp>
                 <stringProp name="Argument.metadata">=</stringProp>
                 <boolProp name="HTTPArgument.use_equals">true</boolProp>
                 <stringProp name="Argument.name">uenc</stringProp>
               </elementProp>
               <elementProp name="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">id</stringProp>
               </elementProp>
             </collectionProp>
           </elementProp>
           <stringProp name="HTTPSampler.domain"/>
           <stringProp name="HTTPSampler.port"/>
           <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
           <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
           <stringProp name="HTTPSampler.protocol"/>
           <stringProp name="HTTPSampler.contentEncoding"/>
           <stringProp name="HTTPSampler.path">${base_path}checkout/cart/delete/</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.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"/>
         <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart.jmx</stringProp></HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Cart is Empty" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/check_cart_is_empty.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":0</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${accountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/history/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="220295440">&lt;title&gt;My Orders&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_orders.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract shipment tab" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">shipment_tab</stringProp>
          <stringProp name="RegexExtractor.regex">sales/order/shipment/order_id/(\d+)..Order Shipments</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Shipments Controller" enabled="true">
        <stringProp name="TestPlan.comments">May not have shipped</stringProp>
        <stringProp name="IfController.condition">"${shipment_tab}" != "NOT_FOUND"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order Shipments" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}sales/order/shipment/order_id/${orderId}</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="120578727">Track this shipment</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract popup link" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">popupLink</stringProp>
            <stringProp name="RegexExtractor.regex">popupWindow": {"windowURL":"([^'"]+)",</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Track Shipment" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${popupLink}</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="-760430210">&lt;title&gt;Tracking Information&lt;/title&gt;</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Downloadable Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/customer/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="358050505">&lt;title&gt;My Downloadable Products&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract linkId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">linkId</stringProp>
        <stringProp name="RegexExtractor.regex">downloadable/download/link/id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Downloadables Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_downloadables.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Downloadable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Download Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/download/link/id/${linkId}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/download_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract wishlistId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">wishlistId</stringProp>
        <stringProp name="RegexExtractor.regex">wishlist/index/update/wishlist_id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_wish_list.jmx</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Verify that there are items in the wishlist" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">buttonTitle</stringProp>
        <stringProp name="RegexExtractor.regex">Update Wish List</stringProp>
        <stringProp name="RegexExtractor.template">FOUND</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Wish List Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_wishlist.jmx</stringProp>
      <stringProp name="IfController.condition">"${buttonTitle}" === "FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Share Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/share/wishlist_id/${wishlistId}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/share_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1257102154">&lt;title&gt;Wish List Sharing&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="emails" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">emails</stringProp>
          </elementProp>
          <elementProp name="message" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">[TEST] See my wishlist!!!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">message</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/send/wishlist_id/${wishlistId}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/send_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Admin Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${adminPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" 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">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());
simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = categoryList.get(index);
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="CSR Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${csrPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</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">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="API Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${apiPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${apiBasePercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Create Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Create Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "customer": {&#xD;
&#xD;
        "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com",&#xD;
        "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "lastname": "Doe"&#xD;
    },&#xD;
    "password": "test@123"&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_customer.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer id" enabled="true">
        <stringProp name="VAR">customer_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check customer" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/${customer_id}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/check_customer.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${customer_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Catalog Browsing" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Catalog Browsing");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get categories" 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"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/get_categories.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract search category id" enabled="true">
        <stringProp name="VAR">search_category_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert search category id is not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">search_category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get category" 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"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories/${search_category_id}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/get_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get 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="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/get_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search for simple product on frontend" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Simple</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert results are present" enabled="true">
        <stringProp name="JSON_PATH">$.total_count</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract search product id" enabled="true">
        <stringProp name="VAR">search_product_id</stringProp>
        <stringProp name="JSONPATH">$.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert search product id is not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">search_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Checkout" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Checkout");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create quote" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_quote.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">quote_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add product to quote" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${quote_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/${quote_id}/items</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check products in quote" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/${quote_id}/items</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "storeId": 1&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">cart_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Guest Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add product to Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Gift Message to Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"sender": "John Doe",&#xD;
	"recipient": "Jane Roe",&#xD;
	"giftMessage": "Gift Message Text"&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Product Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Product Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "attributeSetId": 4&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
        <stringProp name="VAR">simple_product_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
        <stringProp name="VAR">simple_product_sku</stringProp>
        <stringProp name="JSONPATH">$.sku</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
        <stringProp name="VAR">simple_stock_item_id</stringProp>
        <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_sku</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_stock_item_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update product stock info" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
        "stock_item": {   &#xD;
        	"manage_stock": 1,    &#xD;
        	"is_in_stock": 1,&#xD;
          "qty": ${simple_product_id}&#xD;
        }&#xD;
    }</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id}</stringProp>
      <stringProp name="HTTPSampler.method">PUT</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/update_product_stock_info.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/check_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product id" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert stock item id" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert updated quantity" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.qty</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create product with extensible data objects" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "visibility": "4",&#xD;
        "type_id": "simple",&#xD;
        "price": "3.62",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":0,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
        <stringProp name="VAR">simple_product_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
        <stringProp name="VAR">simple_product_sku</stringProp>
        <stringProp name="JSONPATH">$.sku</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
        <stringProp name="VAR">simple_stock_item_id</stringProp>
        <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_sku</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_stock_item_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check product with extensible data objects" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product id" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert stock item id" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert updated quantity" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.qty</stringProp>
        <stringProp name="EXPECTED_VALUE">100</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="One Thread Scenarios Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${oneThreadScenariosPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Import Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${importProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Import Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">vars.put("entity", "catalog_product");
String behavior = "${adminImportProductBehavior}";
vars.put("adminImportBehavior", behavior);
String filepath = "${files_folder}${adminImportProductFilePath}";
vars.put("adminImportFilePath", filepath);  </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/import_products/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">Import Settings</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/validate</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>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="37280142">File is valid! To start import process</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/start</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>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1731221824">Import successfully done</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Import Customers" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${importCustomersPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Import Customers");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">vars.put("entity", "customer");
String behavior = "${adminImportCustomerBehavior}";
vars.put("adminImportBehavior", behavior);
String filepath = "${files_folder}${adminImportCustomerFilePath}";
vars.put("adminImportFilePath", filepath);  </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/import_customers/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">Import Settings</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/validate</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>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="37280142">File is valid! To start import process</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/start</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>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/import_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1731221824">Import successfully done</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${apiSinglePercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Process Orders" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Process Orders");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">// Each thread gets an equal number of orders, based on how many orders are available.

      int apiProcessOrders = Integer.parseInt("${apiProcessOrders}");
      if (apiProcessOrders &gt; 0) {
      ordersPerThread = apiProcessOrders;
      } else {
      ordersPerThread = 1;
      }


      threadNum = ${__threadNum};
      vars.put("ordersPerThread", String.valueOf(ordersPerThread));
      vars.put("threadNum", String.valueOf(threadNum));

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/process_orders/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">status</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${ordersPerThread}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${threadNum}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/orders</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract entity ids" enabled="true">
        <stringProp name="VAR">entity_ids</stringProp>
        <stringProp name="JSONPATH">$.items[*].entity_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Order" enabled="true">
      <stringProp name="ForeachController.inputVal">entity_ids</stringProp>
      <stringProp name="ForeachController.returnVal">order_id</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx</stringProp></ForeachController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Invoice" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/order/${order_id}/invoice</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="34237953">"\d+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Shipment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/order/${order_id}/ship</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="34237953">"\d+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Product Attribute Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Product Attribute Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute set" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attributeSet": {&#xD;
        "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "sort_order": 500&#xD;
    },&#xD;
    "skeletonId": "4"&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_attribute_set.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_set_id" enabled="true">
        <stringProp name="VAR">attribute_set_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_set_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_set_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_set_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute group" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "group": {&#xD;
        "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "attribute_set_id": ${attribute_set_id}&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/groups</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_attribute_group.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_group_id" enabled="true">
        <stringProp name="VAR">attribute_group_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_group_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_group_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_set_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attribute": {&#xD;
        "attribute_code": "attr_code_${__time()}",&#xD;
        "frontend_labels": [&#xD;
            {&#xD;
                "store_id": 0,&#xD;
                "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}"&#xD;
            }&#xD;
        ],&#xD;
        "default_value": "default value",&#xD;
        "frontend_input": "textarea",&#xD;
        "is_required": 1&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_attribute.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_id" enabled="true">
        <stringProp name="VAR">attribute_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_code" enabled="true">
        <stringProp name="VAR">attribute_code</stringProp>
        <stringProp name="JSONPATH">$.attribute_code</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_code not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2131456825">^[a-z0-9-_]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_code</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add attribute to attribute set" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attributeSetId": "${attribute_set_id}",&#xD;
    "attributeGroupId": "${attribute_group_id}",&#xD;
    "attributeCode": "${attribute_code}",&#xD;
    "sortOrder": 3&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/attributes</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert response is not null" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">(\d+)</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</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">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog GraphQL" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${catalogGraphQLPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog GraphQL");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Admin Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Indexer Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Indexers Management Catalog Set On Save" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_indexers_management/admin_indexer_management_catalog_set_on_save.jmx</stringProp>
    </TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Index Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/indexer/indexer/list/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Indexers on Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="indexer_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">catalog_category_product,catalog_product_category,catalog_product_price,catalog_product_attribute,cataloginventory_stock,catalogsearch_fulltext</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">indexer_ids</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="massaction_prepare_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">indexer_ids</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">massaction_prepare_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/indexer/indexer/massOnTheFly/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());
simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Test Fragment" enabled="true"/>
    <hashTree>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Create Cms Page with Page Builder Product List" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ee/admin_create_cms_page_with_page_builder_product_list/admin_create_cms_page_with_page_builder_product_list.jmx</stringProp>
      </GenericController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="content" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">&amp;lt;div data-content-type=&amp;quot;row&amp;quot; data-appearance=&amp;quot;contained&amp;quot; data-element=&amp;quot;main&amp;quot;&amp;gt;&amp;lt;div data-enable-parallax=&amp;quot;0&amp;quot; data-parallax-speed=&amp;quot;0.5&amp;quot; data-background-images=&amp;quot;{}&amp;quot; data-element=&amp;quot;inner&amp;quot; style=&amp;quot;justify-content: flex-start; display: flex; flex-direction: column; background-position: left top; background-size: cover; background-repeat: no-repeat; background-attachment: scroll; border-style: none; border-width: 1px; border-radius: 0px; margin: 0px 0px 10px; padding: 10px;&amp;quot;&amp;gt;&amp;lt;div data-content-type=&amp;quot;products&amp;quot; data-appearance=&amp;quot;grid&amp;quot; data-element=&amp;quot;main&amp;quot; style=&amp;quot;border-style: none; border-width: 1px; border-radius: 0px; margin: 0px; padding: 0px;&amp;quot;&amp;gt;{{widget type=&amp;quot;Magento\CatalogWidget\Block\Product\ProductsList&amp;quot; template=&amp;quot;Magento_CatalogWidget::product/widget/content/grid.phtml&amp;quot; anchor_text=&amp;quot;&amp;quot; id_path=&amp;quot;&amp;quot; show_pager=&amp;quot;0&amp;quot; products_count=&amp;quot;5&amp;quot; sort_order=&amp;quot;date_newest_top&amp;quot; type_name=&amp;quot;Catalog Products List&amp;quot; conditions_encoded=&amp;quot;^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,`aggregator`:`any`,`value`:`1`,`new_child`:``^]^]&amp;quot;}}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">content</stringProp>
              </elementProp>
              <elementProp name="content_heading" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">content_heading</stringProp>
              </elementProp>
              <elementProp name="form_key" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${admin_form_key}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">form_key</stringProp>
              </elementProp>
              <elementProp name="identifier" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">identifier</stringProp>
              </elementProp>
              <elementProp name="is_active" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">is_active</stringProp>
              </elementProp>
              <elementProp name="layout_update_xml" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">layout_update_xml</stringProp>
              </elementProp>
              <elementProp name="meta_description" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">meta_description</stringProp>
              </elementProp>
              <elementProp name="meta_keywords" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">meta_keywords</stringProp>
              </elementProp>
              <elementProp name="meta_title" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">meta_title</stringProp>
              </elementProp>
              <elementProp name="nodes_data" 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">nodes_data</stringProp>
              </elementProp>
              <elementProp name="node_ids" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">node_ids</stringProp>
              </elementProp>
              <elementProp name="page_id" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value"/>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">page_id</stringProp>
              </elementProp>
              <elementProp name="page_layout" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1column</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">page_layout</stringProp>
              </elementProp>
              <elementProp name="store_id[0]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">0</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">store_id[0]</stringProp>
              </elementProp>
              <elementProp name="title" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">Page Builder Products ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">title</stringProp>
              </elementProp>
              <elementProp name="website_root" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">0</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">website_root</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/back/edit</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="-398886250">You saved the page.</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">16</intProp>
          </ResponseAssertion>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
            <stringProp name="RegexExtractor.refname">cms_page_id</stringProp>
            <stringProp name="RegexExtractor.regex">/page_id\/([0-9]*)\/back/</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Product Fixtures Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create product with extensible data objects" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "visibility": "4",&#xD;
        "type_id": "simple",&#xD;
        "price": "3.62",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":0,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
        <stringProp name="VAR">simple_product_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
        <stringProp name="VAR">simple_product_sku</stringProp>
        <stringProp name="JSONPATH">$.sku</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
        <stringProp name="VAR">simple_stock_item_id</stringProp>
        <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_sku</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_stock_item_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create configurable product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_configurable_product_with_extensible_data_objects.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="configurable_product_attribute_color_1" elementType="Argument">
            <stringProp name="Argument.name">configurable_product_attribute_color_1</stringProp>
            <stringProp name="Argument.value">color123X</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="configurable_product_attribute_color_2" elementType="Argument">
            <stringProp name="Argument.name">configurable_product_attribute_color_2</stringProp>
            <stringProp name="Argument.value">color567Y</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="color_attribute_section" elementType="Argument">
            <stringProp name="Argument.name">color_attribute_section</stringProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If color is assigned to default attribute set" enabled="true">
        <stringProp name="IfController.condition">"${color_attribute_section}" == "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Assign color to attribute set" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{&#xD;
          "attributeSetId": 4,&#xD;
          "attributeGroupId": 7,&#xD;
          "attributeCode": "color",&#xD;
          "sortOrder": 0&#xD;
}&#xD;
</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/attributes</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Id" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="1865724479">^\"\d+\"$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
          </ResponseAssertion>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract color_attribute_section id" enabled="true">
            <stringProp name="VAR">color_attribute_section</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Get color values ids" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/color/options</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Extract color value #1" enabled="true">
          <stringProp name="JSONPostProcessor.referenceNames">color_1_value_id</stringProp>
          <stringProp name="JSONPostProcessor.jsonPathExprs">$.[?(@.label =~ /${configurable_product_attribute_color_1}/i)].value</stringProp>
          <stringProp name="JSONPostProcessor.match_numbers"/>
          <stringProp name="JSONPostProcessor.defaultValues">null</stringProp>
        </JSONPostProcessor>
        <hashTree/>
        <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Extract color value #2" enabled="true">
          <stringProp name="JSONPostProcessor.referenceNames">color_2_value_id</stringProp>
          <stringProp name="JSONPostProcessor.jsonPathExprs">$.[?(@.label =~ /${configurable_product_attribute_color_2}/i)].value</stringProp>
          <stringProp name="JSONPostProcessor.match_numbers"/>
          <stringProp name="JSONPostProcessor.defaultValues">null</stringProp>
        </JSONPostProcessor>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If color value #1 is null" enabled="true">
        <stringProp name="IfController.condition">"${color_1_value_id}" == "null"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create color #1 from existing color attribute " enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{&#xD;
  "option": {&#xD;
      "label": "${configurable_product_attribute_color_1}"&#xD;
  }&#xD;
}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/color/options</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Option Id" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="89649215">^[a-z0-9_\"]+$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Get color values ids" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/color/options</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Extract color value #1" enabled="true">
            <stringProp name="JSONPostProcessor.referenceNames">color_1_value_id</stringProp>
            <stringProp name="JSONPostProcessor.jsonPathExprs">$.[?(@.label =~ /${configurable_product_attribute_color_1}/i)].value</stringProp>
            <stringProp name="JSONPostProcessor.match_numbers"/>
          </JSONPostProcessor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If color value #2 is null" enabled="true">
        <stringProp name="IfController.condition">"${color_2_value_id}" == "null"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create color #2 from existing color attribute " enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{&#xD;
  "option": {&#xD;
      "label": "${configurable_product_attribute_color_2}"&#xD;
  }&#xD;
}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/color/options</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Option Id" enabled="true">
            <collectionProp name="Asserion.test_strings">
                <stringProp name="484395188">^[a-z0-9_\"]+$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Get color values ids" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/color/options</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="Extract color value #1" enabled="true">
            <stringProp name="JSONPostProcessor.referenceNames">color_2_value_id</stringProp>
            <stringProp name="JSONPostProcessor.jsonPathExprs">$.[?(@.label =~ /${configurable_product_attribute_color_2}/i)].value</stringProp>
            <stringProp name="JSONPostProcessor.match_numbers"/>
          </JSONPostProcessor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create configurable product with extensible data objects" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "configurable-apsku-test-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Configurable Extensible_Product_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "visibility": "4",&#xD;
        "type_id": "configurable",&#xD;
        "price": "99",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"configurable_test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":false,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "configurable_test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
          <stringProp name="VAR">configurable_product_id</stringProp>
          <stringProp name="JSONPATH">$.id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
          <stringProp name="VAR">configurable_product_sku</stringProp>
          <stringProp name="JSONPATH">$.sku</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
          <stringProp name="VAR">configurable_stock_item_id</stringProp>
          <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_product_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_product_sku</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_stock_item_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create child product with variation red" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "apsku-test-${configurable_product_attribute_color_1}",&#xD;
        "name": "Extensible_Product_${configurable_product_attribute_color_1}",&#xD;
        "visibility": "1",&#xD;
        "type_id": "simple",&#xD;
        "price": "3.62",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "color",&#xD;
                "value": "${color_1_value_id}"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":false,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
          <stringProp name="VAR">configurable_red_product_id</stringProp>
          <stringProp name="JSONPATH">$.id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
          <stringProp name="VAR">configurable_red_product_sku</stringProp>
          <stringProp name="JSONPATH">$.sku</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
          <stringProp name="VAR">configurable_red_stock_item_id</stringProp>
          <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_red_product_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-425311000">^[A-Za-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_red_product_sku</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_red_stock_item_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create child product with variation blue" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "apsku-test-${configurable_product_attribute_color_2}",&#xD;
        "name": "Extensible_Product_${configurable_product_attribute_color_2}",&#xD;
        "visibility": "1",&#xD;
        "type_id": "simple",&#xD;
        "price": "3.62",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "color",&#xD;
                "value": "${color_2_value_id}"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":false,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
          <stringProp name="VAR">configurable_blue_product_id</stringProp>
          <stringProp name="JSONPATH">$.id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
          <stringProp name="VAR">configurable_blue_product_sku</stringProp>
          <stringProp name="JSONPATH">$.sku</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
          <stringProp name="VAR">configurable_blue_stock_item_id</stringProp>
          <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_blue_product_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-425311000">^[A-Za-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_blue_product_sku</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">configurable_blue_stock_item_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create color option for configurable product" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{&#xD;
  "option": {&#xD;
    "attribute_id": "93",&#xD;
    "label": "Color",&#xD;
    "position": 0,&#xD;
    "is_use_default": 1,&#xD;
    "values": [&#xD;
      {&#xD;
        "value_index": 0&#xD;
      }&#xD;
    ]&#xD;
  }&#xD;
}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${configurable_product_sku}/options</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert option id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1865724479">^\"\d+\"$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Scope.variable"/>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create children from variation color #1" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"childSku": "apsku-test-${configurable_product_attribute_color_1}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${configurable_product_sku}/child</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert True" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="3569038">true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create children from variation color #2" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"childSku": "apsku-test-${configurable_product_attribute_color_2}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${configurable_product_sku}/child</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert True" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="3569038">true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create bundle product" enabled="true">
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_bundle_product_with_extensible_data_objects.jmx</stringProp>
        </OnceOnlyController>
        <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create bundle product with extensible data objects" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "product": {&#xD;
                                "sku": "bundle-apsku-test-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "name": "Bundle Extensible_Product_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "visibility": "4",&#xD;
                                "type_id": "bundle",&#xD;
                                "price": "99",&#xD;
                                "status": "1",&#xD;
                                "attribute_set_id": "4",&#xD;
                                "custom_attributes": [&#xD;
                                {&#xD;
                                "attribute_code": "price_view",&#xD;
                                "value": "0"&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "price_type",&#xD;
                                "value": "0"&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "weight_type",&#xD;
                                "value": "0"&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "cost",&#xD;
                                "value": ""&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "description",&#xD;
                                "value": "Description"&#xD;
                                }&#xD;
                                ],&#xD;
                                "extension_attributes":{&#xD;
                                "stock_item":{&#xD;
                                "manage_stock": 1,    &#xD;
                                "is_in_stock": 1,&#xD;
                                "qty":"100"&#xD;
                                }&#xD;
                                }        ,&#xD;
                                "media_gallery_entries":&#xD;
                                [{&#xD;
                                "id": null,&#xD;
                                "label":"bundle_test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "position":1,&#xD;
                                "disabled":false,&#xD;
                                "media_type":"image",&#xD;
                                "types":["image"],&#xD;
                                "content":{&#xD;
                                "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                "type": "image/jpeg",&#xD;
                                "name": "bundle_test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                                }&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract bundle product id" enabled="true">
                    <stringProp name="VAR">bundle_product_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
                    <stringProp name="VAR">bundle_product_sku</stringProp>
                    <stringProp name="JSONPATH">$.sku</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_product_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_product_sku</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create child product child simple 1" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "product": {&#xD;
                                "sku": "apsku-test-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "name": "Extensible_Product_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "visibility": "1",&#xD;
                                "type_id": "simple",&#xD;
                                "price": "3.62",&#xD;
                                "status": "1",&#xD;
                                "attribute_set_id": "4",&#xD;
                                "custom_attributes": [&#xD;
                                {&#xD;
                                "attribute_code": "cost",&#xD;
                                "value": ""&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "description",&#xD;
                                "value": "Description"&#xD;
                                }&#xD;
                                ],&#xD;
                                "extension_attributes":{&#xD;
                                "stock_item":{&#xD;
                                "manage_stock": 1,    &#xD;
                                "is_in_stock": 1,&#xD;
                                "qty":"100"&#xD;
                                }&#xD;
                                }        ,&#xD;
                                "media_gallery_entries":&#xD;
                                [{&#xD;
                                "id": null,&#xD;
                                "label":"test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "position":1,&#xD;
                                "disabled":false,&#xD;
                                "media_type":"image",&#xD;
                                "types":["image"],&#xD;
                                "content":{&#xD;
                                "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                "type": "image/jpeg",&#xD;
                                "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                                }&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
                    <stringProp name="VAR">bundle_child_1_product_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
                    <stringProp name="VAR">bundle_child_1_product_sku</stringProp>
                    <stringProp name="JSONPATH">$.sku</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
                    <stringProp name="VAR">bundle_child_1_product_stock_item_id</stringProp>
                    <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_1_product_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="-425311000">^[A-Za-z0-9-]+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_1_product_sku</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_1_product_stock_item_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create child product child simple 2" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "product": {&#xD;
                                "sku": "apsku-test-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "name": "Extensible_Product_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "visibility": "1",&#xD;
                                "type_id": "simple",&#xD;
                                "price": "3.62",&#xD;
                                "status": "1",&#xD;
                                "attribute_set_id": "4",&#xD;
                                "custom_attributes": [&#xD;
                                {&#xD;
                                "attribute_code": "cost",&#xD;
                                "value": ""&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "description",&#xD;
                                "value": "Description"&#xD;
                                }&#xD;
                                ],&#xD;
                                "extension_attributes":{&#xD;
                                "stock_item":{&#xD;
                                "manage_stock": 1,    &#xD;
                                "is_in_stock": 1,&#xD;
                                "qty":"100"&#xD;
                                }&#xD;
                                }        ,&#xD;
                                "media_gallery_entries":&#xD;
                                [{&#xD;
                                "id": null,&#xD;
                                "label":"test_label_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "position":1,&#xD;
                                "disabled":false,&#xD;
                                "media_type":"image",&#xD;
                                "types":["image"],&#xD;
                                "content":{&#xD;
                                "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                "type": "image/jpeg",&#xD;
                                "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                                }&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
                    <stringProp name="VAR">bundle_child_2_product_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
                    <stringProp name="VAR">bundle_child_2_product_sku</stringProp>
                    <stringProp name="JSONPATH">$.sku</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
                    <stringProp name="VAR">bundle_child_2_product_stock_item_id</stringProp>
                    <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_2_product_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="-425311000">^[A-Za-z0-9-]+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_2_product_sku</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">bundle_child_2_product_stock_item_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create option and values for bundle product" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "option": {&#xD;
                                "title": "option-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "required": 1,&#xD;
                                "type": "select",&#xD;
                                "position": 0,&#xD;
                                "sku": "${bundle_product_sku}",&#xD;
                                "product_links": [&#xD;
                                {&#xD;
                                "sku": "${bundle_child_1_product_sku}",&#xD;
                                "qty": 1,&#xD;
                                "position": 0,&#xD;
                                "is_default": 1,&#xD;
                                "can_change_quantity": 0&#xD;
                                },&#xD;
                                {&#xD;
                                "sku": "${bundle_child_2_product_sku}",&#xD;
                                "qty": 1,&#xD;
                                "position": 0,&#xD;
                                "is_default": 0,&#xD;
                                "can_change_quantity": 0&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/bundle-products/options/add</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert option id" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="1865724479">^\"\d+\"$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Scope.variable"/>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
        </hashTree>
    
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create downloadable product" enabled="true">
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_downloadable_product_with_extensible_data_objects.jmx</stringProp>
        </OnceOnlyController>
        <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create downloadable product with extensible data objects" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "product": {&#xD;
                                "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "visibility": "4",&#xD;
                                "type_id": "downloadable",&#xD;
                                "price": "3.62",&#xD;
                                "status": "1",&#xD;
                                "attribute_set_id": "4",&#xD;
                                "custom_attributes": [&#xD;
                                {&#xD;
                                "attribute_code": "cost",&#xD;
                                "value": ""&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "description",&#xD;
                                "value": "Description"&#xD;
                                }&#xD;
                                ],&#xD;
                                "extension_attributes":{&#xD;
                                "stock_item":{&#xD;
                                "manage_stock": 1,    &#xD;
                                "is_in_stock": 1,&#xD;
                                "qty":"100"&#xD;
                                }&#xD;
                                }        ,&#xD;
                                "media_gallery_entries":&#xD;
                                [{&#xD;
                                "id": null,&#xD;
                                "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "position":1,&#xD;
                                "disabled":false,&#xD;
                                "media_type":"image",&#xD;
                                "types":["image"],&#xD;
                                "content":{&#xD;
                                "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                "type": "image/jpeg",&#xD;
                                "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                                }&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable product id" enabled="true">
                    <stringProp name="VAR">downloadable_product_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable product sku" enabled="true">
                    <stringProp name="VAR">downloadable_product_sku</stringProp>
                    <stringProp name="JSONPATH">$.sku</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">downloadable_product_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">downloadable_product_sku</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create Links and samples" enabled="true"/>
            <hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create link 1" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "link": {&#xD;
                                    "title": "link1",&#xD;
                                    "sort_order": 0,&#xD;
                                    "is_shareable": 1,&#xD;
                                    "price": 10,&#xD;
                                    "number_of_downloads": 10,&#xD;
                                    "link_type": "file",&#xD;
                                    "link_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "sample_type": "file",&#xD;
                                    "sample_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "isGlobalScopeContent": 1&#xD;
                                    }&#xD;
                                </stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${downloadable_product_sku}/downloadable-links</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable link id" enabled="true">
                        <stringProp name="VAR">downloadable_link_id</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert response id not null" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="89649215">^\d+$</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">1</intProp>
                        <stringProp name="Scope.variable">downloadable_link_id</stringProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create link 2" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "link": {&#xD;
                                    "title": "link2",&#xD;
                                    "sort_order": 0,&#xD;
                                    "is_shareable": 1,&#xD;
                                    "price": 10,&#xD;
                                    "number_of_downloads": 10,&#xD;
                                    "link_type": "file",&#xD;
                                    "link_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "sample_type": "file",&#xD;
                                    "sample_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "isGlobalScopeContent": 1&#xD;
                                    }&#xD;
                                </stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${downloadable_product_sku}/downloadable-links</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable link id" enabled="true">
                        <stringProp name="VAR">downloadable_link_id</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert response id not null" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="89649215">^\d+$</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">1</intProp>
                        <stringProp name="Scope.variable">downloadable_link_id</stringProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create link 3" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "link": {&#xD;
                                    "title": "link3",&#xD;
                                    "sort_order": 0,&#xD;
                                    "is_shareable": 1,&#xD;
                                    "price": 10,&#xD;
                                    "number_of_downloads": 10,&#xD;
                                    "link_type": "file",&#xD;
                                    "link_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "sample_type": "file",&#xD;
                                    "sample_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file1.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "isGlobalScopeContent": 1&#xD;
                                    }&#xD;
                                </stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${downloadable_product_sku}/downloadable-links</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable link id" enabled="true">
                        <stringProp name="VAR">downloadable_link_id</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert response id not null" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="89649215">^\d+$</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">1</intProp>
                        <stringProp name="Scope.variable">downloadable_link_id</stringProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create sample 1" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "sample": {&#xD;
                                    "title": "sample1",&#xD;
                                    "sort_order": 0,&#xD;
                                    "sample_type": "file",&#xD;
                                    "sample_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file2.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "sample_url": "string",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "isGlobalScopeContent": 1&#xD;
                                    }</stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${downloadable_product_sku}/downloadable-links/samples</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable sample id" enabled="true">
                        <stringProp name="VAR">sample_link_id</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert response id not null" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="89649215">^\d+$</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">1</intProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                        <stringProp name="Scope.variable">sample_link_id</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create sample 2" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "sample": {&#xD;
                                    "title": "sample2",&#xD;
                                    "sort_order": 0,&#xD;
                                    "sample_type": "file",&#xD;
                                    "sample_file_content": {&#xD;
                                    "file_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                    "name": "file2.jpeg",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "sample_url": "string",&#xD;
                                    "extension_attributes": {}&#xD;
                                    },&#xD;
                                    "isGlobalScopeContent": 1&#xD;
                                    }</stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${downloadable_product_sku}/downloadable-links/samples</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable sample id" enabled="true">
                        <stringProp name="VAR">sample_link_id</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert response id not null" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="89649215">^\d+$</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">1</intProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                        <stringProp name="Scope.variable">sample_link_id</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
            </hashTree>
        </hashTree>
    
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create virtual product with extensible data objects" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{&#xD;
                            "product": {&#xD;
                            "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                            "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                            "visibility": "4",&#xD;
                            "type_id": "virtual",&#xD;
                            "price": "3.62",&#xD;
                            "status": "1",&#xD;
                            "attribute_set_id": "4",&#xD;
                            "custom_attributes": [&#xD;
                            {&#xD;
                            "attribute_code": "cost",&#xD;
                            "value": ""&#xD;
                            },&#xD;
                            {&#xD;
                            "attribute_code": "description",&#xD;
                            "value": "Description"&#xD;
                            }&#xD;
                            ],&#xD;
                            "extension_attributes":{&#xD;
                            "stock_item":{&#xD;
                            "manage_stock": 1,    &#xD;
                            "is_in_stock": 1,&#xD;
                            "qty":"100"&#xD;
                            }&#xD;
                            }        ,&#xD;
                            "media_gallery_entries":&#xD;
                            [{&#xD;
                            "id": null,&#xD;
                            "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                            "position":1,&#xD;
                            "disabled":0,&#xD;
                            "media_type":"image",&#xD;
                            "types":["image"],&#xD;
                            "content":{&#xD;
                            "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                            "type": "image/jpeg",&#xD;
                            "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                            }&#xD;
                            }&#xD;
                            ]&#xD;
                            }&#xD;
                            }</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_virtual_product_with_extensible_data_objects.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
                <stringProp name="VAR">virtual_product_id</stringProp>
                <stringProp name="JSONPATH">$.id</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
                <stringProp name="VAR">virtual_product_sku</stringProp>
                <stringProp name="JSONPATH">$.sku</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
                <stringProp name="VAR">virtual_stock_item_id</stringProp>
                <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="89649215">^\d+$</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">1</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable">virtual_product_id</stringProp>
            </ResponseAssertion>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">1</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable">virtual_product_sku</stringProp>
            </ResponseAssertion>
            <hashTree/>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="89649215">^\d+$</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">1</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable">virtual_stock_item_id</stringProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create grouped product" enabled="true">
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_grouped_product_with_extensible_data_objects.jmx</stringProp>
        </OnceOnlyController>
        <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create grouped product with extensible data objects" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "product": {&#xD;
                                "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "visibility": "4",&#xD;
                                "type_id": "grouped",&#xD;
                                "price": "3.62",&#xD;
                                "status": "1",&#xD;
                                "attribute_set_id": "4",&#xD;
                                "custom_attributes": [&#xD;
                                {&#xD;
                                "attribute_code": "cost",&#xD;
                                "value": ""&#xD;
                                },&#xD;
                                {&#xD;
                                "attribute_code": "description",&#xD;
                                "value": "Description"&#xD;
                                }&#xD;
                                ],&#xD;
                                "extension_attributes":{&#xD;
                                "stock_item":{&#xD;
                                "manage_stock": 1,    &#xD;
                                "is_in_stock": 1,&#xD;
                                "qty":"100"&#xD;
                                }&#xD;
                                }        ,&#xD;
                                "media_gallery_entries":&#xD;
                                [{&#xD;
                                "id": null,&#xD;
                                "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "position":1,&#xD;
                                "disabled":false,&#xD;
                                "media_type":"image",&#xD;
                                "types":["image"],&#xD;
                                "content":{&#xD;
                                "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
                                "type": "image/jpeg",&#xD;
                                "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
                                }&#xD;
                                }&#xD;
                                ]&#xD;
                                }&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable product id" enabled="true">
                    <stringProp name="VAR">grouped_product_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract downloadable product sku" enabled="true">
                    <stringProp name="VAR">grouped_product_sku</stringProp>
                    <stringProp name="JSONPATH">$.sku</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">grouped_product_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">grouped_product_sku</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Create Links" enabled="true"/>
            <hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="API - Create child bundle, configurable, simple, downloadable,  for grouped" enabled="true">
                    <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                    <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                        <collectionProp name="Arguments.arguments">
                            <elementProp name="" elementType="HTTPArgument">
                                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                                <stringProp name="Argument.value">{&#xD;
                                    "items": [&#xD;
                                    {&#xD;
                                    "sku": "${grouped_product_sku}",&#xD;
                                    "link_type": "associated",&#xD;
                                    "linked_product_sku": "${bundle_product_sku}",&#xD;
                                    "linked_product_type": "bundle",&#xD;
                                    "position": 1,&#xD;
                                    "extension_attributes": {&#xD;
                                    "qty": 1&#xD;
                                    }&#xD;
                                    },&#xD;
                                    {&#xD;
                                    "sku": "${grouped_product_sku}",&#xD;
                                    "link_type": "associated",&#xD;
                                    "linked_product_sku": "${configurable_product_sku}",&#xD;
                                    "linked_product_type": "configurable",&#xD;
                                    "position": 2,&#xD;
                                    "extension_attributes": {&#xD;
                                    "qty": 1&#xD;
                                    }&#xD;
                                    },&#xD;
                                    {&#xD;
                                    "sku": "${grouped_product_sku}",&#xD;
                                    "link_type": "associated",&#xD;
                                    "linked_product_sku": "${simple_product_sku}",&#xD;
                                    "linked_product_type": "simple",&#xD;
                                    "position": 3,&#xD;
                                    "extension_attributes": {&#xD;
                                    "qty": 1&#xD;
                                    }&#xD;
                                    },&#xD;
                                    {&#xD;
                                    "sku": "${grouped_product_sku}",&#xD;
                                    "link_type": "associated",&#xD;
                                    "linked_product_sku": "${downloadable_product_sku}",&#xD;
                                    "linked_product_type": "downloadable",&#xD;
                                    "position": 4,&#xD;
                                    "extension_attributes": {&#xD;
                                    "qty": 1&#xD;
                                    }&#xD;
                                    }&#xD;
                                    ]&#xD;
                                    }&#xD;
                                </stringProp>
                                <stringProp name="Argument.metadata">=</stringProp>
                            </elementProp>
                        </collectionProp>
                    </elementProp>
                    <stringProp name="HTTPSampler.domain"/>
                    <stringProp name="HTTPSampler.port"/>
                    <stringProp name="HTTPSampler.connect_timeout"/>
                    <stringProp name="HTTPSampler.response_timeout"/>
                    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                    <stringProp name="HTTPSampler.contentEncoding"/>
                    <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${grouped_product_sku}/links</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.monitor">false</boolProp>
                    <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
                        <stringProp name="VAR">grouped_product_response</stringProp>
                        <stringProp name="JSONPATH">$</stringProp>
                        <stringProp name="DEFAULT"/>
                        <stringProp name="VARIABLE"/>
                        <stringProp name="SUBJECT">BODY</stringProp>
                    </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                    <hashTree/>
                    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert add true" enabled="true">
                        <collectionProp name="Asserion.test_strings">
                            <stringProp name="3569038">true</stringProp>
                        </collectionProp>
                        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                        <boolProp name="Assertion.assume_success">false</boolProp>
                        <intProp name="Assertion.test_type">8</intProp>
                        <stringProp name="Assertion.scope">variable</stringProp>
                        <stringProp name="Scope.variable">grouped_product_response</stringProp>
                    </ResponseAssertion>
                    <hashTree/>
                </hashTree>
            </hashTree>
        </hashTree>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Graphql Query Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query multiple products" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{"query":"{\n  products(\n    filter: {\n         price: {from: \"5\"}\n         name:{match:\"Product\"}\n     }\n    pageSize: 20\n    currentPage: 1\n    sort: {\n      price: ASC\n      name:DESC\n    }\n  ) {\n    total_count\n    items {\n        attribute_set_id\n        country_of_manufacture\n        created_at\n        description {\n            html\n        }\n        gift_message_available\n        image\n        {\n            url\n            label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n            options\n            {\n                title\n                required\n                sort_order\n            }\n        }\n        \n        price {\n            minimalPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n            maximalPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n            regularPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n        }\n        short_description {\n            html\n        }\n        sku\n        small_image {\n            url\n            label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n            url\n            label\n        }\n        tier_price\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n      \t... on PhysicalProductInterface {\n        \tweight\n      \t}\n    }\n    page_info {\n      page_size\n      current_page\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_filter_only.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
                <stringProp name="VAR">graphql_multiple_products_query_total_count</stringProp>
                <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 200" enabled="true">
                <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_multiple_products_query_total_count");
                    if (totalCount == null) {
                    Failure = true;
                    FailureMessage = "Not Expected \"totalCount\" to be null";
                    } else {
                    if (Integer.parseInt(totalCount) &lt; 200) {
                    Failure = true;
                    FailureMessage = "Expected \"totalCount\" to be greater than 200, Actual: " + totalCount;
                    } else {
                    Failure = false;
                    }
                    }
                </stringProp>
                <stringProp name="BeanShellAssertion.filename"/>
                <stringProp name="BeanShellAssertion.parameters"/>
                <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
            </BeanShellAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query simple product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: { eq: \"${simple_product_sku}\" } },sort: {name: ASC})\n    {\n       total_count\n       items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n           price {\n               minimalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               maximalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               regularPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n           }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t  }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_simple_product_with_extensible_data_objects.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_simple_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>

        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract response" enabled="true">
            <stringProp name="VAR">graphql_multiple_products_query_response</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_simple_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) != 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query configurable product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: {eq:\"${configurable_product_sku}\"} }, sort: {name: ASC}) {\n        total_count\n        items {\n            ... on PhysicalProductInterface {\n                weight\n            }\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_configurable_product_with_extensible_data_objects.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_configurable_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_configurable_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) != 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert configurable product sku" enabled="true">
        <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${configurable_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filter" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"configurable\"\n        filter: {name: {match: \"Configurable Product\"} }\n        sort: {name: ASC}\n    ) {\n        total_count\n        page_info {\n          current_page\n          page_size\n          total_pages\n        }\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filter.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_pages" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_pages_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.page_info.total_pages</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
      <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count_fulltext_filter");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filter last page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:${graphql_search_products_query_total_pages_fulltext_filter}\n    search: \"configurable\"\n        filter: {name: {match: \"Configurable Product\"} }\n        sort: {name: ASC}\n    ) {\n        total_count\n        page_info {\n          current_page\n          page_size\n          total_pages\n        }\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filter_last_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count_fulltext_filter");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search only" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"configurable\"\n    sort: {name: ASC}) {\n        total_count\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_only.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filters" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"Option 1\"\n    sort: {name: ASC}) {\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n                items_count\n                ... on SwatchLayerFilterItemInterface {\n                    swatch_data {\n                        type\n                        value\n                    }\n                }\n            }\n        }\n        total_count\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n                    weight\n                  }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filters.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and aggregations" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"Option 1\"\n    sort: {name: ASC}) {\n        aggregations{\n          attribute_code\n          count\n          label\n          options{\n        count\n        label\n        value\n          }\n        }\n        total_count\n        items {\n        attribute_set_id\n        categories\n        {\n        id\n        position\n        }\n        country_of_manufacture\n        created_at\n        description {\n        html\n        }\n        gift_message_available\n        id\n        image\n        {\n        url\n        label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        media_gallery_entries\n        {\n        disabled\n        file\n        id\n        label\n        media_type\n        position\n        types\n        content\n        {\n        base64_encoded_data\n        type\n        name\n        }\n        video_content\n        {\n        media_type\n        video_description\n        video_metadata\n        video_provider\n        video_title\n        video_url\n        }\n        }\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n        options\n        {\n        title\n        required\n        sort_order\n        }\n        }\n        \n        price {\n        minimalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        maximalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        regularPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        }\n        product_links\n        {\n        link_type\n        linked_product_sku\n        linked_product_type\n        position\n        sku\n        }\n        short_description {\n        html\n        }\n        sku\n        small_image\n        {\n        url\n        label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n        url\n        label\n        }\n        tier_price\n        tier_prices\n        {\n        customer_group_id\n        percentage_value\n        qty\n        value\n        website_id\n        }\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n        ... on PhysicalProductInterface {\n        weight\n          }\n        ... on ConfigurableProduct {\n        configurable_options {\n        id\n        attribute_id\n        label\n        position\n        use_default\n        attribute_code\n        values {\n        value_index\n        label\n        store_label\n        default_label\n        use_default_value\n        }\n        product_id\n        }\n        variants {\n        product {\n        ... on PhysicalProductInterface {\n        weight\n        }\n        sku\n        color\n        attribute_set_id\n        categories\n        {\n        id\n        position\n        }\n        country_of_manufacture\n        created_at\n        description {\n        html\n        }\n        gift_message_available\n        id\n        image\n        {\n        url\n        label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        media_gallery_entries\n        {\n        disabled\n        file\n        id\n        label\n        media_type\n        position\n        types\n        content\n        {\n        base64_encoded_data\n        type\n        name\n        }\n        video_content\n        {\n        media_type\n        video_description\n        video_metadata\n        video_provider\n        video_title\n        video_url\n        }\n        }\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n        options\n        {\n        title\n        required\n        sort_order\n        }\n        }\n        \n        price {\n        minimalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        maximalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        regularPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        }\n        product_links\n        {\n        link_type\n        linked_product_sku\n        linked_product_type\n        position\n        sku\n        }\n        short_description {\n        html\n        }\n        sku\n        small_image\n        {\n        url\n        label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n        url\n        label\n        }\n        tier_price\n        tier_prices\n        {\n        customer_group_id\n        percentage_value\n        qty\n        value\n        website_id\n        }\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n\n\n        }\n        attributes {\n        label\n        code\n        value_index\n        }\n        }\n        }\n        }\n    }\n}","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_aggregations.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
          <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
          <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
        <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
          <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");
                if (totalCount == null) {
                        Failure = true;
                        FailureMessage = "Not Expected \"totalCount\" to be null";
                } else {
                    if (Integer.parseInt(totalCount) &lt; 1) {
                   Failure = true;
                   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
                    } else {
                        Failure = false;
                    }
                }
          </stringProp>
          <stringProp name="BeanShellAssertion.filename"/>
          <stringProp name="BeanShellAssertion.parameters"/>
          <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
        </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query bundle product" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{"query":"{\nproducts(filter: {sku: {eq:\"${bundle_product_sku}\"} }, sort: {name: ASC}) {\n        total_count\n        items {\n            ... on PhysicalProductInterface {\n                weight\n            }\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n               url\n               label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on BundleProduct {\n                weight\n                price_view\n                dynamic_price\n                dynamic_sku\n                ship_bundle_items\n                dynamic_weight\n                items {\n                  option_id\n                  title\n                  required\n                  type\n                  position\n                  sku\n                  options {\n                        id\n                        qty\n                        position\n                        is_default\n                        price\n                        price_type\n                        can_change_quantity\n                    product {\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n                    }\n                  }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_bundle_product_with_extensible_data_objects.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
                <stringProp name="VAR">graphql_bundle_products_query_total_count</stringProp>
                <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
                <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_bundle_products_query_total_count");

                    if (totalCount == null) {
                    Failure = true;
                    FailureMessage = "Not Expected \"totalCount\" to be null";
                    } else {
                    if (Integer.parseInt(totalCount) != 1) {
                    Failure = true;
                    FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
                    } else {
                    Failure = false;
                    }
                    }


                </stringProp>
                <stringProp name="BeanShellAssertion.filename"/>
                <stringProp name="BeanShellAssertion.parameters"/>
                <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
            </BeanShellAssertion>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert bundle product sku" enabled="true">
                <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE">${bundle_product_sku}</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query downloadable product" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: { eq: \"${downloadable_product_sku}\" } }, sort: {name: ASC})\n    {\n       total_count\n       items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n           price {\n               minimalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               maximalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               regularPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n           }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t  }\n              ... on DownloadableProduct {\n                links_purchased_separately\n                links_title\n                downloadable_product_samples {\n                  id\n                  title\n                  sort_order\n                  sample_type\n                  sample_file\n                  sample_url\n                }\n                downloadable_product_links {\n                        id\n                        title\n                        sort_order\n                        is_shareable\n                        price\n                        number_of_downloads\n                        link_type\n                        sample_type\n                        sample_file\n                            sample_url\n                }\n              }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_downloadable_product_with_extensible_data_objects.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
                <stringProp name="VAR">graphql_downloadable_products_query_total_count</stringProp>
                <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
                <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_downloadable_products_query_total_count");

                    if (totalCount == null) {
                    Failure = true;
                    FailureMessage = "Not Expected \"totalCount\" to be null";
                    } else {
                    if (Integer.parseInt(totalCount) != 1) {
                    Failure = true;
                    FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
                    } else {
                    Failure = false;
                    }
                    }


                </stringProp>
                <stringProp name="BeanShellAssertion.filename"/>
                <stringProp name="BeanShellAssertion.parameters"/>
                <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
            </BeanShellAssertion>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert downloadable product sku" enabled="true">
                <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE">${downloadable_product_sku}</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">true</boolProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert link samples titles" enabled="true">
                <stringProp name="JSON_PATH">$.data.products.items[0].downloadable_product_samples..title</stringProp>
                <stringProp name="EXPECTED_VALUE">["sample1","sample2"]</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert sample titles" enabled="true">
                <stringProp name="JSON_PATH">$.data.products.items[0].downloadable_product_samples..title</stringProp>
                <stringProp name="EXPECTED_VALUE">["sample1","sample2"]</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query virtual product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: { eq: \"${virtual_product_sku}\" } },sort: {name: ASC})\n    {\n       total_count\n       items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n           price {\n               minimalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               maximalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               regularPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n           }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t  }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_virtual_product_with_extensible_data_objects.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_virtual_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_virtual_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) != 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${virtual_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query grouped product" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{"query":"{\nproducts(filter: {sku: {eq:\"${grouped_product_sku}\"} }, sort: {name: ASC}) {\n        total_count\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on GroupedProduct {\n                weight\n                items {\n                  qty\n                  position\n                  product {\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n                  }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_grouped_product_with_extensible_data_objects.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
                <stringProp name="VAR">graphql_grouped_products_query_total_count</stringProp>
                <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
                <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_grouped_products_query_total_count");

                    if (totalCount == null) {
                    Failure = true;
                    FailureMessage = "Not Expected \"totalCount\" to be null";
                    } else {
                    if (Integer.parseInt(totalCount) != 1) {
                    Failure = true;
                    FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
                    } else {
                    Failure = false;
                    }
                    }


                </stringProp>
                <stringProp name="BeanShellAssertion.filename"/>
                <stringProp name="BeanShellAssertion.parameters"/>
                <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
            </BeanShellAssertion>
            <hashTree/>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert grouped product sku" enabled="true">
                <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE">${grouped_product_sku}</stringProp>
                <boolProp name="JSONVALIDATION">true</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">true</boolProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Query Customer" enabled="true"/>
        <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "customer": {&#xD;
                                &#xD;
                                "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com",&#xD;
                                "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "lastname": "Doe"&#xD;
                                },&#xD;
                                "password": "test@123"&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_frontend_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer id" enabled="true">
                    <stringProp name="VAR">customer_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">customer_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check customer" enabled="true">
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/${customer_id}</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/check_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                    <stringProp name="JSON_PATH">$.id</stringProp>
                    <stringProp name="EXPECTED_VALUE">${customer_id}</stringProp>
                    <boolProp name="JSONVALIDATION">true</boolProp>
                    <boolProp name="EXPECT_NULL">false</boolProp>
                    <boolProp name="INVERT">false</boolProp>
                    <boolProp name="ISREGEX">true</boolProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer email" enabled="true">
                    <stringProp name="VAR">customer_email</stringProp>
                    <stringProp name="JSONPATH">$.email</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer token" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "username":"${customer_email}",&#xD;
                                "password":"test@123"&#xD;
                                }&#xD;
                            </stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/integration/customer/token</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/create_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer token" enabled="true">
                    <stringProp name="VAR">customer_token</stringProp>
                    <stringProp name="JSONPATH">$</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query customer with token" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{"query":"{\n  customer {\n    created_at\n    group_id\n\n    prefix\n    firstname\n    middlename\n    lastname\n    suffix\n    email\n    default_billing\n    default_shipping\n\n    dob\n    taxvat\n\n    id\n    addresses {\n        id\n        customer_id\n        region {\n            region_code\n          region\n          region_id\n        }\n        region_id\n        country_id\n        street \n        company\n        telephone\n        fax\n        postcode\n        city\n        firstname\n        lastname\n        middlename\n        prefix\n        suffix\n        vat_id\n        default_shipping\n        default_billing\n    }\n    is_subscribed\n  }\n}","variables":null,"operationName":null}</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_frontend_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                        sampler.getHeaderManager().removeHeaderNamed("Authorization");

                        sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
                </BeanShellPreProcessor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert customer lastname" enabled="true">
                    <stringProp name="JSON_PATH">$.data.customer.lastname</stringProp>
                    <stringProp name="EXPECTED_VALUE">Doe</stringProp>
                    <boolProp name="JSONVALIDATION">true</boolProp>
                    <boolProp name="EXPECT_NULL">false</boolProp>
                    <boolProp name="INVERT">false</boolProp>
                    <boolProp name="ISREGEX">true</boolProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
                <hashTree/>
            </hashTree>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query Category" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  category(id: 1) {\n      name\n      id\n      level\n      description\n      path\n      path_in_store\n      url_key\n      url_path\n      children {\n        id\n        description\n        default_sort_by\n        children {\n          id\n          description\n          level\n          children {\n            level\n            id\n            children {\n              id\n            }\n          }\n        }\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_root_category.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_category_query_name</stringProp>
        <stringProp name="JSONPATH">$.data.category.name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
        <stringProp name="BeanShellAssertion.query">String name = vars.get("graphql_category_query_name");
if (name == null) {
	Failure = true;
	FailureMessage = "Not Expected \"children\" to be null";
} else {
	if (!name.equals("Root Catalog")) {
		Failure = true;
		FailureMessage = "Expected \"name\" to equal \"Root Catalog\", Actual: " + name;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query CategoryList" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  categoryList{\n      name\n      id\n      level\n      description\n      path\n      path_in_store\n      url_key\n      url_path\n      children {\n        id\n        description\n        default_sort_by\n        children {\n          id\n          description\n          level\n          children {\n            level\n            id\n            children {\n              id\n            }\n          }\n        }\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/query_root_category_list.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_categoryList_query_name</stringProp>
        <stringProp name="JSONPATH">$.data.categoryList[0].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
        <stringProp name="INPUT_FORMAT">JSON</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
        <stringProp name="BeanShellAssertion.query">String name = vars.get("graphql_categoryList_query_name");
if (name == null) {
	Failure = true;
	FailureMessage = "Not Expected \"children\" to be null";
} else {
	if (!name.equals("Default Category")) {
		Failure = true;
		FailureMessage = "Expected \"name\" to equal \"Default Category\", Actual: " + name;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="GraphQL Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${graphQLPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get List of Products by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetListOfProductsByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get List of Products by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Simple Product Details by product_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetSimpleProductDetailsByProductUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Simple Product Details by product_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Simple Product Details by name" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetSimpleProductDetailsByNamePercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Simple Product Details by name");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($product_sku: String, $onServer: Boolean!) {\n    productDetail: products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_simple_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Configurable Product Detail by product_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Configurable Product Detail by product_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Configurable Product Detail by name" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetConfigurableProductDetailsByNamePercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Configurable Product Detail by name");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Product Search by text and category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetProductSearchByTextAndCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Product Search by text and category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Product Search by text and category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productSearch($inputText: String!, $categoryId: String) {\n    products(\n   pageSize:12\n    search: $inputText, filter: { category_id: { eq: $categoryId } }, sort: {name: ASC}) {\n        items {\n            id\n            name\n            small_image {\n              label\n              url\n            }\n            url_key\n            price {\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                }\n            }\n        }\n        total_count\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n            }\n        }\n    }\n}","variables":{"inputText":"Product","categoryId":"${category_id}"},"operationName":"productSearch"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_product_search_by_text_and_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Category List by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Category List by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query categoryList($id: Int!) {\n    category(id: $id) {\n        id\n        children {\n            id\n            name\n            url_key\n            url_path\n            children_count\n            path\n            image\n            productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n                items {\n                    small_image {\n                      label\n                      url\n                    }\n                }\n            }\n        }\n    }\n}","variables":{"id":${category_id}},"operationName":"categoryList"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_category_list_by_category_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert found categories" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var category = vars.getObject("category");
var response = JSON.parse(prev.getResponseDataAsString());

assertCategoryId(category, response);
assertCategoryChildren(category, response);

function assertCategoryId(category, response) {
    if (response.data == undefined || response.data.category == undefined || response.data.category.id != category.id) {
      AssertionResult.setFailureMessage("Cannot find category with id \"" + category.id + "\"");
      AssertionResult.setFailure(true);
     }
}

function assertCategoryChildren(category, response) {
    foundCategory = response.data &amp;&amp; response.data.category ? response.data.category : null;
    if (foundCategory) {
        var childrenFound = foundCategory.children.map(function (c) {return parseInt(c.id)});
        var children = category.children.map(function (c) {return parseInt(c)});
        if (JSON.stringify(children.sort()) != JSON.stringify(childrenFound.sort())) {
           AssertionResult.setFailureMessage("Cannot math children categories \"" + JSON.stringify(children) + "\" for to found one: \"" + JSON.stringify(childrenFound) +  "\"");
           AssertionResult.setFailure(true);
        }
    }
 
}

</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Category List by category_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Category List by category_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List by category_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query" : "{\n categoryList(filters:{url_key: {in: [\"${category_url_key}\"]}}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_category_list_by_category_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert found categories" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var category = vars.getObject("category");
var response = JSON.parse(prev.getResponseDataAsString());

assertCategoryId(category, response);
assertCategoryChildren(category, response);

function assertCategoryId(category, response) {
    if (response.data == undefined || response.data.categoryList == undefined || response.data.categoryList[0].id != category.id) {
      AssertionResult.setFailureMessage("Cannot find category with id \"" + category.id + "\"");
      AssertionResult.setFailure(true);
     }
}

function assertCategoryChildren(category, response) {
    foundCategory = response.data &amp;&amp; response.data.categoryList ? response.data.categoryList[0] : null;
    if (foundCategory) {
        var childrenFound = foundCategory.children.map(function (c) {return parseInt(c.id)});
        var children = category.children.map(function (c) {return parseInt(c)});
        if (JSON.stringify(children.sort()) != JSON.stringify(childrenFound.sort())) {
           AssertionResult.setFailureMessage("Cannot math children categories \"" + JSON.stringify(children) + "\" for to found one: \"" + JSON.stringify(childrenFound) +  "\"");
           AssertionResult.setFailure(true);
        }
    }
 
}

</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Multiple Categories" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Multiple Categories");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");

var numbers = [];

var sanity = 0;
for(var i = 0; i &lt; 4; i++){
	sanity++;
	if(sanity &gt; 100){
		break;
	}
	var number = random.nextInt(categories.length)
	if(numbers.indexOf(number) &gt;= 0){
		i--;
		continue;
	}
	numbers.push(number);
}

vars.put("category_id_1", categories[numbers[0]].id);
vars.put("category_id_2", categories[numbers[1]].id);
vars.put("category_id_3", categories[numbers[2]].id);
vars.put("category_id_4", categories[numbers[3]].id);
</stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_multiple_categories_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get multiple categories by ID" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query" : "{\n categoryList(filters:{ids: {in: [\"${category_id_1}\", \"${category_id_2}\", \"${category_id_3}\", \"${category_id_4}\"]}}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_multiple_categories_by_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categoryList == undefined){
	AssertionResult.setFailureMessage("CategoryList results are empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categoryList.length !== 4){
	AssertionResult.setFailureMessage("CategoryList query expected to find 4 categories. " + response.data.categoryList.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Categories Query: Get Multiple Categories By Id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Categories Query: Get Multiple Categories By Id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");

var numbers = [];

var sanity = 0;
for(var i = 0; i &lt; 4; i++){
	sanity++;
	if(sanity &gt; 100){
		break;
	}
	var number = random.nextInt(categories.length)
	if(numbers.indexOf(number) &gt;= 0){
		i--;
		continue;
	}
	numbers.push(number);
}

vars.put("category_id_1", categories[numbers[0]].id);
vars.put("category_id_2", categories[numbers[1]].id);
vars.put("category_id_3", categories[numbers[2]].id);
vars.put("category_id_4", categories[numbers[3]].id);
</stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_multiple_categories_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="[categories query] Get multiple categories by ID" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query" : "{\n  categories(filters:{ids: {in: [\"${category_id_1}\", \"${category_id_2}\", \"${category_id_3}\", \"${category_id_4}\"]}}) {\n  total_count\n  page_info {\n    total_pages\n    current_page\n    page_size\n  }\n  items{\n   id\n   children {\n    id\n    name\n    url_key\n    url_path\n    children_count\n    path\n    image\n    productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n     items {\n      small_image {\n        label\n        url\n      }\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/categories_query_get_multiple_categories_by_id.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categories == undefined){
	AssertionResult.setFailureMessage("Categories result is empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categories.items.length !== 4){
	AssertionResult.setFailureMessage("Categories query expected to find 4 categories. " + response.data.categories.items.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
        </JSR223Assertion>
        <hashTree/>
      </hashTree>
    </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Categories Query: Get Many Categories with Pagination" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Categories Query: Get Many Categories with Pagination");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="[categories query] Get many categories by name" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query" : "{\n  categories(filters:{name: {match: \"Category\"}}) {\n  total_count\n  page_info {\n    total_pages\n    current_page\n    page_size\n  }\n  items{\n   id\n   children {\n    id\n    name\n    url_key\n    url_path\n    children_count\n    path\n    image\n    productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n     items {\n      small_image {\n        label\n        url\n      }\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/categories_query_get_many_categories_by_name_match.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categories == undefined){
	AssertionResult.setFailureMessage("Categories result is empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categories.items.length != 20){
	AssertionResult.setFailureMessage("Categories query expected to find 20 categories. " + response.data.categories.items.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
        </JSR223Assertion>
        <hashTree/>
      </hashTree>
    </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Url Info by url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUrlInfoByUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Url Info by url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Url Info by url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">&#xD;
            {"query":"query resolveUrl($urlKey: String!) {\n    urlResolver(url: $urlKey) {\n        type\n        id\n    }\n}","variables":{"urlKey":"${category_url_key}${url_suffix}"},"operationName":"resolveUrl"}&#xD;
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_url_info_by_url_key.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1062388959">{"type":"CATEGORY","id":${category_id}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Cms Page by id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCmsPageByIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Cms Page by id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare CMS Page" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var cmsPages = props.get("cms_pages");
var number = random.nextInt(cmsPages.length);

vars.put("cms_page_id", cmsPages[number].id);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/prepare_cms_page.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Navigation Menu by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetNavigationMenuByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Navigation Menu by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Navigation Menu by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query navigationMenu($id: Int!) {\n  category(id: $id) {\n    id\n    name\n    product_count\n    path\n    children {\n      id\n      name\n      position\n      level\n      url_key\n      url_path\n      product_count\n      children_count\n      path\n      productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n        items {\n          small_image {\n            label\n             url\n          }\n        }\n      }\n    }\n  }\n}","variables":{"id":${category_id}},"operationName":"navigationMenu"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_navigation_menu_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"id":${category_id},"name":"${category_name}","product_count"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Create Empty Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCreateEmptyCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Create Empty Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Empty Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetEmptyCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Empty Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Set Shipping Address On Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlSetShippingAddressOnCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Set Shipping Address On Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Set Billing Address On Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlSetBillingAddressOnCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Set Billing Address On Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Add Simple Product To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlAddSimpleProductToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Add Simple Product To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Add Configurable Product To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlAddConfigurableProductToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Add Configurable Product To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Simple Product Qty In Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateSimpleProductQtyInCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Simple Product Qty In Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Simple Product qty In Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/update_simple_product_qty_in_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="664196114">{"data":{"updateCartItems":{"cart":{"items":[{"id":"${item_id}","quantity":5}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Configurable Product Qty In Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateConfigurableProductQtyInCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Configurable Product Qty In Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Configurable Product qty In Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/update_configurable_product_qty_in_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="664196114">{"data":{"updateCartItems":{"cart":{"items":[{"id":"${item_id}","quantity":5}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Simple Product Qty In Cart with Prices" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateSimpleProductQtyInCartWithPricesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Simple Product Qty In Cart with Prices");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        prices {\n          row_total{\n            value\n          }\n          total_item_discount {\n            currency\n            value\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          row_total_including_tax{\n            value\n          }\n        }\n        product {\n          sku\n        }\n      }\n      prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n    }\n  }\n}\n","variables":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      prices {\n        row_total{\n          value\n        }\n        row_total_including_tax{\n          value\n        }\n        total_item_discount{value}\n        discounts{\n          amount{value}\n          label\n        }\n      }\n      product {\n        sku\n      }\n    }\n    prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Simple Product qty In Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n          row_total{\n            value\n          }\n          total_item_discount {\n            currency\n            value\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          row_total_including_tax{\n            value\n          }\n        }\n        product {\n          sku\n        }\n      }\n      prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/update_simple_product_qty_in_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">"quantity":5</stringProp>
          <stringProp name="675049292">"id":"${item_id}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Configurable Product Qty In Cart with Prices" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Configurable Product Qty In Cart with Prices");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n              row_total{\n                value\n              }\n              total_item_discount {\n                currency\n                value\n              }\n              discounts {\n                amount {\n                  currency\n                  value\n                }\n                label\n              }\n              row_total_including_tax{\n                value\n              }\n            }\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n    prices {\n          applied_taxes {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          grand_total {\n            currency\n            value\n          }\n          subtotal_excluding_tax {\n            value\n            currency\n          }\n          subtotal_including_tax {\n            value\n            currency\n          }\n          subtotal_with_discount_excluding_tax {\n            value\n            currency\n          }\n        }\n   }\n  }\n}\n","variables":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_configurable_product_to_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      prices {\n        row_total{\n          value\n        }\n        row_total_including_tax{\n          value\n        }\n        total_item_discount{value}\n        discounts{\n          amount{value}\n          label\n        }\n      }\n      product {\n        sku\n      }\n    }\n    prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Configurable Product qty In Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n              row_total{\n                value\n              }\n              total_item_discount {\n                currency\n                value\n              }\n              discounts {\n                amount {\n                  currency\n                  value\n                }\n                label\n              }\n              row_total_including_tax{\n                value\n              }\n            }\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n    prices {\n          applied_taxes {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          grand_total {\n            currency\n            value\n          }\n          subtotal_excluding_tax {\n            value\n            currency\n          }\n          subtotal_including_tax {\n            value\n            currency\n          }\n          subtotal_with_discount_excluding_tax {\n            value\n            currency\n          }\n        }\n   }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/update_configurable_product_qty_in_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">"quantity":5</stringProp>
          <stringProp name="675049292">"id":"${item_id}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Simple Product From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveSimpleProductFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Simple Product From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Simple Product From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeItemFromCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_item_id: ${item_id}\n    }\n  ) {\n    cart {\n      items {\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/remove_simple_product_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1452665323">{"data":{"removeItemFromCart":{"cart":{"items":[]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Configurable Product From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveConfigurableProductFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Configurable Product From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Configurable Product From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeItemFromCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_item_id: ${item_id}\n    }\n  ) {\n    cart {\n      items {\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/remove_configurable_product_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1452665323">{"data":{"removeItemFromCart":{"cart":{"items":[]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Apply Coupon To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlApplyCouponToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Apply Coupon To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Coupon From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveCouponFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Coupon From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Coupon From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeCouponFromCart(input: {cart_id: \"${quote_id}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/remove_coupon_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-76201335">{"data":{"removeCouponFromCart":{"cart":{"applied_coupon":null}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCatalogBrowsingByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Navigation Menu by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query navigationMenu($id: Int!) {\n  category(id: $id) {\n    id\n    name\n    product_count\n    path\n    children {\n      id\n      name\n      position\n      level\n      url_key\n      url_path\n      product_count\n      children_count\n      path\n      productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n        items {\n          small_image {\n            label\n             url\n          }\n        }\n      }\n    }\n  }\n}","variables":{"id":${category_id}},"operationName":"navigationMenu"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_navigation_menu_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"id":${category_id},"name":"${category_name}","product_count"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Product Search by text and category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productSearch($inputText: String!, $categoryId: String) {\n    products(\n   pageSize:12\n    search: $inputText, filter: { category_id: { eq: $categoryId } }, sort: {name: ASC}) {\n        items {\n            id\n            name\n            small_image {\n              label\n              url\n            }\n            url_key\n            price {\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                }\n            }\n        }\n        total_count\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n            }\n        }\n    }\n}","variables":{"inputText":"Product","categoryId":"${category_id}"},"operationName":"productSearch"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_product_search_by_text_and_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Url Info by url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">&#xD;
            {"query":"query resolveUrl($urlKey: String!) {\n    urlResolver(url: $urlKey) {\n        type\n        id\n    }\n}","variables":{"urlKey":"${category_url_key}${url_suffix}"},"operationName":"resolveUrl"}&#xD;
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_url_info_by_url_key.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1062388959">{"type":"CATEGORY","id":${category_id}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($product_sku: String, $onServer: Boolean!) {\n    productDetail: products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_simple_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare CMS Page" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var cmsPages = props.get("cms_pages");
var number = random.nextInt(cmsPages.length);

vars.put("cms_page_id", cmsPages[number].id);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/prepare_cms_page.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Payment Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setPaymentMethodOnCart(input: {\n    cart_id: \"${quote_id}\", \n    payment_method: {\n      code: \"checkmo\"\n    }\n  }) {\n    cart {\n      selected_payment_method {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_payment_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1830199373">{"data":{"setPaymentMethodOnCart":{"cart":{"selected_payment_method":{"code":"checkmo"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Current Shipping Address" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    shipping_addresses {\n      postcode\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/get_current_shipping_address.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingMethodsOnCart(input: \n    {\n      cart_id: \"${quote_id}\", \n      shipping_methods: [{\n        carrier_code: \"flatrate\"\n        method_code: \"flatrate\"\n      }]\n    }) {\n    cart {\n      shipping_addresses {\n        selected_shipping_method {\n          carrier_code\n          method_code\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/set_shipping_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="644143859">{"data":{"setShippingMethodsOnCart":{"cart":{"shipping_addresses":[{"selected_shipping_method":{"carrier_code":"flatrate","method_code":"flatrate"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Coupon From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeCouponFromCart(input: {cart_id: \"${quote_id}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/graphql/remove_coupon_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-76201335">{"data":{"removeCouponFromCart":{"cart":{"applied_coupon":null}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Combined Benchmark Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${combinedBenchmarkPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cBrowseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cSiteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">&lt;span class="toolbar-number"&gt;\d&lt;\/span&gt; Items|Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 1 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_1_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[1]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_1_filter_url</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 1 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_1_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter-first-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Url 2" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_1_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 1" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_1_filter_url}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
          <stringProp name="XPathExtractor.default">0</stringProp>
          <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
          <stringProp name="XPathExtractor.default"/>
          <stringProp name="XPathExtractor.refname">attribute_2_filter_url</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 2 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_2_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_quick_filter-second-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Ul 3" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_2_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 2" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_2_filter_url}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Advanced Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/open_advanced_search_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="921122077">&lt;title&gt;Advanced Search&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute name" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_name</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">(//select[@class="multiselect"])[last()]/@name</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute options count" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//select[@class="multiselect"])[last()]/option)</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute value" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_value</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//select[@class="multiselect"])[last()]/option)[1]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
    </hashTree>


  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="name" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">name</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="sku" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">sku</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">description</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="short_description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">short_description</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bfrom%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bfrom%5D</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bto%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bto%5D</stringProp>
            <stringProp name="Argument.value">${priceTo}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <!-- Should be fixed in MAGETWO-80420 -->
          <!--<elementProp name="${attribute_name}" elementType="HTTPArgument">-->
            <!--<boolProp name="HTTPArgument.always_encode">true</boolProp>-->
            <!--<stringProp name="Argument.value">${attribute_value}</stringProp>-->
            <!--<stringProp name="Argument.metadata">=</stringProp>-->
            <!--<boolProp name="HTTPArgument.use_equals">true</boolProp>-->
            <!--<stringProp name="Argument.name">${attribute_name}</stringProp>-->
          <!--</elementProp>-->
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/result/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/search_advanced.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1851531284">items&lt;/strong&gt; were found using the following search criteria</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Produts to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Wishlist" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="uenc" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_uenc}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uenc</stringProp>
            </elementProp>
            <elementProp name="product" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/add/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/add_to_wishlist.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">wishListItems</stringProp>
          <stringProp name="RegexExtractor.regex">data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Wishlist Section ${_counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="sections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">wishlist,messages</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sections</stringProp>
            </elementProp>
            <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
            </elementProp>
            <elementProp name="_" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">_</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/load_wishlist_section.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1865430343">{"wishlist":{"counter":"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
          <stringProp name="ConstantTimer.delay">${wishlistDelay}*1000</stringProp>
        </ConstantTimer>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Clear Wishlist" enabled="true">
      <stringProp name="ForeachController.inputVal">wishListItems</stringProp>
      <stringProp name="ForeachController.returnVal">wishListItem</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/wishlist/clear_wishlist.jmx</stringProp></ForeachController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end">5</stringProp>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Clear Wishlist ${counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="item" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${wishListItem}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">item</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/remove/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCompareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Random Product Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">random_product_compare_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\"</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Random Product Id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">random_product_compare_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/index/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Compare - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${productCompareDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products_pause.jmx</stringProp></TestAction>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products Clear" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/clear</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_compare/compare_products_clear.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"customerEmail":"test@example.com"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/isEmailAvailable</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_email_available.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="3569038">true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/guest_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="1635682758">Your order # is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</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="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">address_id</stringProp>
        <stringProp name="RegexExtractor.regex">"default_billing":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Customer Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_id</stringProp>
        <stringProp name="RegexExtractor.regex">"customer_id":([^'",]+),</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Address Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">address_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressId":"${addressId}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/shipping-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-740937264">{"payment_methods"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/payment-information</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8 </stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert order number" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="-1590086334">Your order number is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Clear Cookie" enabled="true">
      <boolProp name="resetInterpreter">false</boolProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="script">curSampler = ctx.getCurrentSampler();
if(curSampler.getName().contains("Checkout success")) {
	manager = curSampler.getCookieManager();
	manager.clear();
}
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAccountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customernUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/history/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="220295440">&lt;title&gt;My Orders&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_orders.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract shipment tab" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">shipment_tab</stringProp>
          <stringProp name="RegexExtractor.regex">sales/order/shipment/order_id/(\d+)..Order Shipments</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Shipments Controller" enabled="true">
        <stringProp name="TestPlan.comments">May not have shipped</stringProp>
        <stringProp name="IfController.condition">"${shipment_tab}" != "NOT_FOUND"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order Shipments" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}sales/order/shipment/order_id/${orderId}</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="120578727">Track this shipment</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract popup link" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">popupLink</stringProp>
            <stringProp name="RegexExtractor.regex">popupWindow": {"windowURL":"([^'"]+)",</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Track Shipment" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${popupLink}</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="-760430210">&lt;title&gt;Tracking Information&lt;/title&gt;</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Downloadable Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/customer/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="358050505">&lt;title&gt;My Downloadable Products&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract linkId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">linkId</stringProp>
        <stringProp name="RegexExtractor.regex">downloadable/download/link/id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Downloadables Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_downloadables.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Downloadable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Download Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/download/link/id/${linkId}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/download_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract wishlistId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">wishlistId</stringProp>
        <stringProp name="RegexExtractor.regex">wishlist/index/update/wishlist_id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/my_wish_list.jmx</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Verify that there are items in the wishlist" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">buttonTitle</stringProp>
        <stringProp name="RegexExtractor.regex">Update Wish List</stringProp>
        <stringProp name="RegexExtractor.template">FOUND</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Wish List Controller" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/if_wishlist.jmx</stringProp>
      <stringProp name="IfController.condition">"${buttonTitle}" === "FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Share Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/share/wishlist_id/${wishlistId}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/share_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1257102154">&lt;title&gt;Wish List Sharing&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="emails" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">emails</stringProp>
          </elementProp>
          <elementProp name="message" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">[TEST] See my wishlist!!!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">message</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/send/wishlist_id/${wishlistId}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/account_management/send_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" 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">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());
simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = categoryList.get(index);
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</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.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</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">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</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.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</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">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var testLabel = "${testLabel}" ? " (${testLabel})" : "";
if (testLabel
    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
    if (sampler.getName().indexOf(testLabel) == -1) {
       sampler.setName(sampler.getName() + testLabel);
    }
} else if (sampler.getName().indexOf("SetUp - ") == -1) {
    sampler.setName("SetUp - " + sampler.getName());
}
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == null) {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</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>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</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.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</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.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
    <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true">
      <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
      <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
        <boolProp name="LoopController.continue_forever">false</boolProp>
        <stringProp name="LoopController.loops">1</stringProp>
      </elementProp>
      <stringProp name="ThreadGroup.num_threads">1</stringProp>
      <stringProp name="ThreadGroup.ramp_time">1</stringProp>
      <longProp name="ThreadGroup.start_time">1395324075000</longProp>
      <longProp name="ThreadGroup.end_time">1395324075000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/tear_down.jmx</stringProp></PostThreadGroup>
    <hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller: Dashboard enabled?" enabled="true">
        <stringProp name="IfController.condition">"${dashboard_enabled}" == "1"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Trigger End Event" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="environment" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${__property(environment)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">environment</stringProp>
              </elementProp>
              <elementProp name="startTime" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${start_time}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">startTime</stringProp>
              </elementProp>
              <elementProp name="endTime" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">endTime</stringProp>
              </elementProp>
              <elementProp name="stats_server" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${redis_host}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">stats_server</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}DeploymentEvent.php</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.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert curl call was successful" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="185669135">Errors:</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
        <collectionProp name="CookieManager.cookies">
          <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
            <stringProp name="Cookie.value">30</stringProp>
            <stringProp name="Cookie.domain">${host}</stringProp>
            <stringProp name="Cookie.path">/</stringProp>
            <boolProp name="Cookie.secure">false</boolProp>
            <longProp name="Cookie.expires">0</longProp>
            <boolProp name="Cookie.path_specified">true</boolProp>
            <boolProp name="Cookie.domain_specified">true</boolProp>
          </elementProp>
        </collectionProp>
        <boolProp name="CookieManager.clearEachIteration">true</boolProp>
      </CookieManager>
      <hashTree/>
    </hashTree>
  
    <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" 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>
          <hostname>true</hostname>
          <threadCounts>true</threadCounts>
          <sampleCount>true</sampleCount>
        </value>
      </objProp>
      <stringProp name="filename">${response_time_file_name}</stringProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/common/aggregate_graph.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <DebugPostProcessor guiclass="TestBeanGUI" testclass="DebugPostProcessor" testname="Debug PostProcessor" enabled="false">
      <boolProp name="displayJMeterProperties">false</boolProp>
      <boolProp name="displayJMeterVariables">true</boolProp>
      <boolProp name="displaySamplerProperties">true</boolProp>
      <boolProp name="displaySystemProperties">false</boolProp>
    <stringProp name="TestPlan.comments">mpaf/tool/fragments/_system/debug.jmx</stringProp></DebugPostProcessor>
    <hashTree/>
  </hashTree>
    <WorkBench guiclass="WorkBenchGui" testclass="WorkBench" testname="WorkBench" enabled="true">
      <boolProp name="WorkBench.save">true</boolProp>
    </WorkBench>
  </hashTree>
</jmeterTestPlan>