diff --git a/setup/performance-toolkit/README.md b/setup/performance-toolkit/README.md
index 7bf7a1fbd4721..ede66e040753f 100644
--- a/setup/performance-toolkit/README.md
+++ b/setup/performance-toolkit/README.md
@@ -54,49 +54,139 @@ There are two JMeter scenarios located in `setup/performance-toolkit` folder: `b
The following parameters can be passed to the `benchmark.jmx` scenario:
+Main parameters:
+
| Parameter Name | Default Value | Description |
| --------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------- |
| host | localhost | URL component 'host' of application being tested (URL or IP). |
| base_path | / | Base path for tested site. |
+| files_folder | ./files/ | Path to various files that are used in scenario (`setup/performance-toolkit/files`). |
+| request_protocol | http | Hypertext Transfer Protocol (http or https). |
+| graphql_port_number | | Port number for GraphQL. |
+| admin_password | 123123q | Admin backend password. |
| admin_path | admin | Admin backend path. |
| admin_user | admin | Admin backend user. |
-| admin_password | 123123q | Admin backend password. |
-| customer_password | 123123q | Storefront customer password. |
-| customers_page_size | 50 | Page size for customers grid in Magento Admin. |
-| files_folder | ./files/ | Path to various files that are used in scenario (`setup/performance-toolkit/files`). |
+| cache_hits_percentage | 100 | Cache hits percentage. |
+| seedForRandom | 1 | System option for setting random number method |
| loops | 1 | Number of loops to run. |
-| frontendPoolUsers | 1 | Total number of Frontend threads. |
-| adminPoolUsers | 1 | Total number of Admin threads. |
-| browseCatalogByGuestPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog browsing activities. |
-| browseCatalogByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate catalog browsing activities. |
-| siteSearchPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog search activities. |
-| searchQuickPercentage | 60 | Percentage of threads in Frontend Pool that emulate catalog search activities. |
-| searchQuickFilterPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog search activities. |
-| searchAdvancedPercentage | 10 | Percentage of threads in Frontend Pool that emulate catalog search activities. |
-| checkoutByGuestPercentage | 4 | Percentage of threads in Frontend Pool that emulate checkout by guest. |
-| checkoutByCustomerPercentage | 4 | Percentage of threads in Frontend Pool that emulate checkout by customer. |
-| addToCartByGuestPercentage | 28 | Percentage of threads in Frontend Pool that emulate abandoned cart activities. |
-| addToWishlistPercentage | 2 | Percentage of threads in Frontend Pool that emulate adding products to Wishlist. |
-| compareProductsPercentage | 2 | Percentage of threads in Frontend Pool that emulate products comparison. |
-| productCompareDelay | 0 | Delay (s) between iterations of product comparison. |
-| promotionRulesPercentage | 10 | Percentage of threads in Admin Pool that emulate creation of promotion rules. |
-| adminPromotionsManagementDelay | 0 | Delay (s) between creation of promotion rules. |
-| adminCategoryManagementPercentage | 10 | Percentage of threads in Merchandising Pool that emulate category management activities. |
-| adminProductEditingPercentage | 35 | Percentage of threads in Merchandising Pool that emulate product editing. |
-| adminProductCreationPercentage | 25 | Percentage of threads in Merchandising Pool that emulate creation of products. |
-| adminPromotionRulesPercentage | 15 | Percentage of threads in Admin Pool that emulate admin rules creating activities. |
-| adminCategoryManagementDelay | 0 | Delay (s) between iterations of category management activities. |
-| apiProcessOrders | 5 | Number of orders for process in Admin API - Process Orders. |
-| adminEditOrderPercentage | 15 | Percentage of threads in Admin Pool that emulate order edit. |
-| csrPoolUsers | 0 | Users of Customer Support Request (CSR) Pool. |
-| othersPoolUsers | 0 | Users of Others Pool. |
-| browseCustomerGridPercentage | 10 | Percentage of threads in CSR Pool that emulate customers browsing activities. |
-| adminCreateOrderPercentage | 70 | Percentage of threads in CSR Pool that emulate creation of orders. |
-| adminReturnsManagementPercentage | 20 | Percentage of threads in CSR Pool that emulate creation/processing of returns. |
-| adminCreateProcessReturnsDelay | 0 | Delay (s) between creation of returns. |
-| wishlistDelay | 0 | Delay (s) between adding products to Wishlist. |
-| categories_count | 100 | Total number of categories that are be used in scenario. |
-| simple_products_count | 30 | Total number of simple products that are be used in scenario. |
+| frontendPoolUsers | 0 | Total number of Frontend threads. |
+| adminPoolUsers | 0 | Total number of Admin threads. |
+| csrPoolUsers | 0 | Total number of CSR threads. |
+| apiPoolUsers | 0 | Total number of API threads. |
+| oneThreadScenariosPoolUsers | 0 | Total number of One Thread Scenarios threads. |
+| graphQLPoolUsers | 0 | Total number of GraphQL threads. |
+| combinedBenchmarkPoolUsers | 0 | Total number of Combined Benchmark threads. |
+
+Parameters for Frontend pool:
+
+| Parameter Name | Default Value | Description |
+| --------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------- |
+| browseCatalogByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate customer catalog browsing activities. |
+| browseCatalogByGuestPercentage | 0 | Percentage of threads in Frontend Pool that emulate guest catalog browsing activities. |
+| siteSearchPercentage | 0 | Percentage of threads in Frontend Pool that emulate catalog search activities. |
+| addToCartByGuestPercentage | 0 | Percentage of threads in Frontend Pool that emulate abandoned cart activities by guest. |
+| addToWishlistPercentage | 0 | Percentage of threads in Frontend Pool that emulate adding products to Wishlist. |
+| compareProductsPercentage | 0 | Percentage of threads in Frontend Pool that emulate products comparison. |
+| checkoutByGuestPercentage | 0 | Percentage of threads in Frontend Pool that emulate checkout by guest. |
+| checkoutByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate checkout by customer. |
+| reviewByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate reviewing products. |
+| addToCartByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate abandoned cart activities by customer.|
+| accountManagementPercentage | 0 | Percentage of threads in Frontend Pool that emulate account management. |
+
+Parameters for Admin pool:
+
+| Parameter Name | Default Value | Description |
+| --------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------- |
+| adminCMSManagementPercentage | 0 | Percentage of threads in Admin Pool that emulate CMS management activities. |
+| browseProductGridPercentage | 0 | Percentage of threads in Admin Pool that emulate products grid browsing activities. |
+| browseOrderGridPercentage | 0 | Percentage of threads in Admin Pool that emulate orders grid browsing activities. |
+| adminProductCreationPercentage | 0 | Percentage of threads in Admin Pool that emulate product creation activities. |
+| adminProductEditingPercentage | 0 | Percentage of threads in Admin Pool that emulate product editing activities. |
+
+Parameters for CSR pool:
+
+| Parameter Name | Default Value | Description |
+| --------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------- |
+| adminReturnsManagementPercentage | 0 | Percentage of threads in CSR Pool that emulate admin returns management activities. |
+| browseCustomerGridPercentage | 0 | Percentage of threads in CSR Pool that emulate customers grid browsing activities. |
+| adminCreateOrderPercentage | 0 | Percentage of threads in CSR Pool that emulate creating orders activities. |
+
+Parameters for API pool:
+
+| Parameter Name | Default Value | Description |
+| --------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------- |
+| apiBasePercentage | 0 | Percentage of threads in API Pool that emulate API requests activities. |
+
+Parameters for One Thread Scenarios pool:
+
+| Parameter Name | Default Value | Description |
+| --------------------------------------------- | ------------------- | ----------------------------------------------------------------------------- |
+| productGridMassActionPercentage | 0 | Percentage of threads that emulate product mass action activities. |
+| importProductsPercentage | 0 | Percentage of threads that emulate products import activities. |
+| importCustomersPercentage | 0 | Percentage of threads that emulate customers import activities. |
+| exportProductsPercentage | 0 | Percentage of threads that emulate products export activities. |
+| exportCustomersPercentage | 0 | Percentage of threads that emulate customers export activities. |
+| apiSinglePercentage | 0 | Percentage of threads that emulate API nonparallel requests activities. |
+| adminCategoryManagementPercentage | 0 | Percentage of threads that emulate category management activities. |
+| adminPromotionRulesPercentage | 0 | Percentage of threads that emulate promotion rules activities. |
+| adminCustomerManagementPercentage | 0 | Percentage of threads that emulate customer management activities. |
+| adminEditOrderPercentage | 0 | Percentage of threads that emulate edit order activities. |
+| catalogGraphQLPercentage | 0 | Percentage of threads that emulate nonparallel catalogGraphQL activities. |
+
+Parameters for GraphQL pool:
+
+| Parameter Name | Default Value | Description |
+| ----------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------- |
+| graphqlGetListOfProductsByCategoryIdPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetSimpleProductDetailsByProductUrlKeyPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetSimpleProductDetailsByNamePercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetConfigurableProductDetailsByNamePercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetProductSearchByTextAndCategoryIdPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetCategoryListByCategoryIdPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlUrlInfoByUrlKeyPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetCmsPageByIdPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetNavigationMenuByCategoryIdPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlCreateEmptyCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlGetEmptyCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlSetShippingAddressOnCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlSetBillingAddressOnCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlAddSimpleProductToCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlAddConfigurableProductToCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlUpdateSimpleProductQtyInCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlUpdateConfigurableProductQtyInCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlRemoveSimpleProductFromCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlRemoveConfigurableProductFromCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlApplyCouponToCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlRemoveCouponFromCartPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlCatalogBrowsingByGuestPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+| graphqlCheckoutByGuestPercentage | 0 | Percentage of threads in GraphQL Pool that emulate GraphQL requests activities. |
+
+Parameters for Combined Benchmark pool:
+
+| Parameter Name | Default Value | Description |
+| ----------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------- |
+| cBrowseCatalogByGuestPercentage | 29 | Percentage of threads in Combined Benchmark Pool that emulate customer catalog browsing activities. |
+| cSiteSearchPercentage | 29 | Percentage of threads in Combined Benchmark Pool that emulate catalog search activities. |
+| cAddToCartByGuestPercentage | 26 | Percentage of threads in Combined Benchmark Pool that emulate abandoned cart activities. |
+| cAddToWishlistPercentage | 1.5 | Percentage of threads in Combined Benchmark Pool that emulate adding products to Wishlist. |
+| cCompareProductsPercentage | 1.5 | Percentage of threads in Combined Benchmark Pool that emulate products comparison. |
+| cCheckoutByGuestPercentage | 3.5 | Percentage of threads in Combined Benchmark Pool that emulate checkout by guest. |
+| cCheckoutByCustomerPercentage | 3.5 | Percentage of threads in Combined Benchmark Pool that emulate checkout by customer. |
+| cAccountManagementPercentage | 1 | Percentage of threads in Combined Benchmark Pool that emulate account management. |
+| cAdminCMSManagementPercentage | 0.35 | Percentage of threads in Combined Benchmark Pool that emulate CMS management activities. |
+| cAdminBrowseProductGridPercentage | 0.2 | Percentage of threads in Combined Benchmark Pool that emulate products grid browsing activities. |
+| cAdminBrowseOrderGridPercentage | 0.2 | Percentage of threads in Combined Benchmark Pool that emulate orders grid browsing activities. |
+| cAdminProductCreationPercentage | 0.5 | Percentage of threads in Combined Benchmark Pool that emulate product creation activities. |
+| cAdminProductEditingPercentage | 0.65 | Percentage of threads in Combined Benchmark Pool that emulate product editing activities. |
+| cAdminReturnsManagementPercentage | 0.75 | Percentage of threads in Combined Benchmark Pool that emulate admin returns management activities. |
+| cAdminBrowseCustomerGridPercentage | 0.1 | Percentage of threads in Combined Benchmark Pool that emulate customers grid browsing activities. |
+| cAdminCreateOrderPercentage | 0.5 | Percentage of threads in Combined Benchmark Pool that emulate creating orders activities. |
+| cAdminCategoryManagementPercentage | 0.15 | Percentage of threads in Combined Benchmark Pool that emulate admin category management activities. |
+| cAdminPromotionRulesPercentage | 0.2 | Percentage of threads in Combined Benchmark Pool that emulate admin promotion rules activities. |
+| cAdminCustomerManagementPercentage | 0.4 | Percentage of threads in Combined Benchmark Pool that emulate admin customers management activities. |
+| cAdminEditOrderPercentage | 1 | Percentage of threads in Combined Benchmark Pool that emulate admin edit order activities. |
+
Parameters must be passed to the command line with the `J` prefix:
@@ -113,10 +203,17 @@ There are some options that you should pass to JMeter in the console mode:
To get more details about available JMeter options, read [Non-GUI Mode](http://jmeter.apache.org/usermanual/get-started.html#non_gui).
-For example, you can run the B2C scenario via console with 90 threads for the Frontend Pool and 10 threads for the Admin Pool:
+For example, you can run the B2C scenario via console with:
+90 threads for the Frontend Pool where:
+- 80% - guest catalog browsing activities.
+- 20% - checkout by customer.
+
+10 threads for the Admin Pool where:
+- 10% - admin products grid browsing activities.
+- 90% - admin product creation activities.
cd {JMeter path}/bin/
- jmeter -n -t {path to performance toolkit}/benchmark.jmx -j ./jmeter.log -l ./jmeter-results.jtl -Jhost=magento2.dev -Jbase_path=/ -Jadmin_path=admin -JfrontendPoolUsers=90 -JadminPoolUsers=10
+ jmeter -n -t {path to performance toolkit}/benchmark.jmx -j ./jmeter.log -l ./jmeter-results.jtl -Jhost=magento2.dev -Jbase_path=/ -Jadmin_path=admin -JfrontendPoolUsers=90 -JadminPoolUsers=10 -JbrowseCatalogByGuestPercentage=80 -JcheckoutByCustomerPercentage=20 -JbrowseProductGridPercentage=10 -JadminProductCreationPercentage=90
As a result, you will get `jmeter.log` and `jmeter-results.jtl`. The`jmeter.log` contains information about the test run and can be helpful in determining the cause of an error. The JTL file is a text file containing the results of a test run. It can be opened in the GUI mode to perform analysis of the results (see the *Output* section below).
@@ -190,42 +287,21 @@ For more details, read [Summary Report](http://jmeter.apache.org/usermanual/comp
### Scenarios
-`benchmark.jmx` scenario has the following pools and default percentage breakdown for each scenario:
+`benchmark.jmx` scenario has the following pools:
**Frontend Pool** (frontendPoolUsers)
-| Scenario Name | % of Pool |
-| ------------------------- | --------- |
-| Catalog Browsing By Guest | 30 |
-| Site Search | 30 |
-| Add To Cart By Guest | 28 |
-| Add to Wishlist | 2 |
-| Compare Products | 2 |
-| Checkout By Guest | 4 |
-| Checkout By Customer | 4 |
-
-Site Search thread group contains 3 variations:
-- Quick Search (60%)
-- Quick Search With Filtration (30%)
-- Advanced Search (10%)
-
**Admin Pool** (adminPoolUsers)
-| Scenario Name |% of Pool |
-| ----------------------------| --------- |
-| Admin Promotion Rules | 15 |
-| Admin Edit Order | 15 |
-| Admin Category Management | 10 |
-| Admin Edit Product | 35 |
-| Admin Create Product | 25 |
-
**CSR Pool** (csrPoolUsers)
-| Scenario Name | % of Pool |
-| -------------------------- | --------- |
-| Browse Customer Grid | 10 |
-| Admin Create Order | 70 |
-| Admin Returns Management | 20 |
+**API Pool** (apiPoolUsers)
+
+**One Thread Scenarios Pool** (oneThreadScenariosPoolUsers)
+
+**GraphQL Pool** (graphQLPoolUsers)
+
+**Combined Benchmark Pool** (combinedBenchmarkPoolUsers)
**Legacy Threads**
diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx
index a8a7e419373b8..c2e64b9c244b8 100644
--- a/setup/performance-toolkit/benchmark.jmx
+++ b/setup/performance-toolkit/benchmark.jmx
@@ -54,6 +54,11 @@
${__P(admin_user,admin)}
=
+
+ cache_hits_percentage
+ ${__P(cache_hits_percentage,100)}
+ =
+
seedForRandom
${__P(seedForRandom,1)}
@@ -64,6 +69,41 @@
${__P(loops,1)}
=
+
+ frontendPoolUsers
+ ${__P(frontendPoolUsers,0)}
+ =
+
+
+ adminPoolUsers
+ ${__P(adminPoolUsers,0)}
+ =
+
+
+ csrPoolUsers
+ ${__P(csrPoolUsers,0)}
+ =
+
+
+ apiPoolUsers
+ ${__P(apiPoolUsers,0)}
+ =
+
+
+ oneThreadScenariosPoolUsers
+ ${__P(oneThreadScenariosPoolUsers,0)}
+ =
+
+
+ graphQLPoolUsers
+ ${__P(graphQLPoolUsers,0)}
+ =
+
+
+ combinedBenchmarkPoolUsers
+ ${__P(combinedBenchmarkPoolUsers,0)}
+ =
+
accountManagementPercentage
${__P(accountManagementPercentage,0)}
@@ -76,12 +116,12 @@
addToCartByGuestPercentage
- ${__P(addToCartByGuestPercentage,28)}
+ ${__P(addToCartByGuestPercentage,0)}
=
addToWishlistPercentage
- ${__P(addToWishlistPercentage,2)}
+ ${__P(addToWishlistPercentage,0)}
=
@@ -106,12 +146,12 @@
adminCategoryManagementPercentage
- ${__P(adminCategoryManagementPercentage,10)}
+ ${__P(adminCategoryManagementPercentage,0)}
=
adminCreateOrderPercentage
- ${__P(adminCreateOrderPercentage,70)}
+ ${__P(adminCreateOrderPercentage,0)}
=
@@ -134,19 +174,9 @@
${__P(adminCustomerManagementPercentage,0)}
=
-
- adminEditOrder
- ${__P(adminEditOrder,0)}
- =
-
adminEditOrderPercentage
- ${__P(adminEditOrderPercentage,15)}
- =
-
-
- adminEditProduct
- ${__P(adminEditProduct,0)}
+ ${__P(adminEditOrderPercentage,0)}
=
@@ -169,24 +199,19 @@
${__P(adminImportProductFilePath,import_products/product_import_append_1.csv)}
=
-
- adminPoolUsers
- ${__P(adminPoolUsers,1)}
- =
-
adminProductCreationPercentage
- ${__P(adminProductCreationPercentage,25)}
+ ${__P(adminProductCreationPercentage,0)}
=
adminProductEditingPercentage
- ${__P(adminProductEditingPercentage,35)}
+ ${__P(adminProductEditingPercentage,0)}
=
adminPromotionRulesPercentage
- ${__P(adminPromotionRulesPercentage,15)}
+ ${__P(adminPromotionRulesPercentage,0)}
=
@@ -201,7 +226,7 @@
adminReturnsManagementPercentage
- ${__P(adminReturnsManagementPercentage,20)}
+ ${__P(adminReturnsManagementPercentage,0)}
=
@@ -234,16 +259,16 @@
${__P(apiOrderInvoiceShipmentSync,0)}
=
-
- apiPoolUsers
- ${__P(apiPoolUsers,0)}
- =
-
apiProcessOrders
${__P(apiProcessOrders,1)}
=
+
+ apiSinglePercentage
+ ${__P(apiSinglePercentage,0)}
+ =
+
bamboo_build_number
${__P(bamboo_build_number,)}
@@ -256,12 +281,12 @@
browseCatalogByGuestPercentage
- ${__P(browseCatalogByGuestPercentage,30)}
+ ${__P(browseCatalogByGuestPercentage,0)}
=
browseCustomerGridPercentage
- ${__P(browseCustomerGridPercentage,10)}
+ ${__P(browseCustomerGridPercentage,0)}
=
@@ -274,9 +299,104 @@
${__P(browseProductGridPercentage,0)}
=
-
- cache_hits_percentage
- ${__P(cache_hits_percentage,100)}
+
+ cAccountManagementPercentage
+ ${__P(cAccountManagementPercentage,1)}
+ =
+
+
+ cAddToCartByGuestPercentage
+ ${__P(cAddToCartByGuestPercentage,26)}
+ =
+
+
+ cAddToWishlistPercentage
+ ${__P(cAddToWishlistPercentage,1.5)}
+ =
+
+
+ cAdminBrowseCustomerGridPercentage
+ ${__P(cAdminBrowseCustomerGridPercentage,0.1)}
+ =
+
+
+ cAdminBrowseOrderGridPercentage
+ ${__P(cAdminBrowseOrderGridPercentage,0.2)}
+ =
+
+
+ cAdminBrowseProductGridPercentage
+ ${__P(cAdminBrowseProductGridPercentage,0.2)}
+ =
+
+
+ cAdminCMSManagementPercentage
+ ${__P(cAdminCMSManagementPercentage,0.35)}
+ =
+
+
+ cAdminCategoryManagementPercentage
+ ${__P(cAdminCategoryManagementPercentage,0.15)}
+ =
+
+
+ cAdminCreateOrderPercentage
+ ${__P(cAdminCreateOrderPercentage,0.5)}
+ =
+
+
+ cAdminCustomerManagementPercentage
+ ${__P(cAdminCustomerManagementPercentage,0.4)}
+ =
+
+
+ cAdminEditOrderPercentage
+ ${__P(cAdminEditOrderPercentage,1)}
+ =
+
+
+ cAdminProductCreationPercentage
+ ${__P(cAdminProductCreationPercentage,0.5)}
+ =
+
+
+ cAdminProductEditingPercentage
+ ${__P(cAdminProductEditingPercentage,0.65)}
+ =
+
+
+ cAdminPromotionRulesPercentage
+ ${__P(cAdminPromotionRulesPercentage,0.2)}
+ =
+
+
+ cAdminReturnsManagementPercentage
+ ${__P(cAdminReturnsManagementPercentage,0.75)}
+ =
+
+
+ cBrowseCatalogByGuestPercentage
+ ${__P(cBrowseCatalogByGuestPercentage,29)}
+ =
+
+
+ cCheckoutByCustomerPercentage
+ ${__P(cCheckoutByCustomerPercentage,3.5)}
+ =
+
+
+ cCheckoutByGuestPercentage
+ ${__P(cCheckoutByGuestPercentage,3.5)}
+ =
+
+
+ cCompareProductsPercentage
+ ${__P(cCompareProductsPercentage,1.5)}
+ =
+
+
+ cSiteSearchPercentage
+ ${__P(cSiteSearchPercentage,29)}
=
@@ -291,17 +411,17 @@
checkoutByCustomerPercentage
- ${__P(checkoutByCustomerPercentage,4)}
+ ${__P(checkoutByCustomerPercentage,0)}
=
checkoutByGuestPercentage
- ${__P(checkoutByGuestPercentage,4)}
+ ${__P(checkoutByGuestPercentage,0)}
=
compareProductsPercentage
- ${__P(compareProductsPercentage,2)}
+ ${__P(compareProductsPercentage,0)}
=
@@ -309,11 +429,6 @@
${__P(configurable_products_count,15)}
=
-
- csrPoolUsers
- ${__P(csrPoolUsers,0)}
- =
-
customer_checkout_percent
${__P(customer_checkout_percent,100)}
@@ -334,11 +449,6 @@
${__P(dashboard_enabled,0)}
=
-
- deadLocksPoolUsers
- ${__P(deadLocksPoolUsers,1)}
- =
-
exportCustomersPercentage
${__P(exportCustomersPercentage,0)}
@@ -354,16 +464,6 @@
${__P(form_key,uVEW54r8kKday8Wk)}
=
-
- frontendPoolUsers
- ${__P(frontendPoolUsers,1)}
- =
-
-
- graphQLPoolUsers
- ${__P(graphQLPoolUsers,1)}
- =
-
graphqlAddConfigurableProductToCartPercentage
${__P(graphqlAddConfigurableProductToCartPercentage,0)}
@@ -399,11 +499,6 @@
${__P(graphqlGetCategoryListByCategoryIdPercentage,0)}
=
-
- graphqlGetCmsBlockByIdentifierPercentage
- ${__P(graphqlGetCmsBlockByIdentifierPercentage,0)}
- =
-
graphqlGetCmsPageByIdPercentage
${__P(graphqlGetCmsPageByIdPercentage,0)}
@@ -586,7 +681,7 @@
siteSearchPercentage
- ${__P(siteSearchPercentage,30)}
+ ${__P(siteSearchPercentage,0)}
=
@@ -25634,7 +25729,7 @@ catch (java.lang.Exception e) {
-
+
continue
false
@@ -27110,13 +27205,13 @@ if (testLabel
-
+
continue
false
${loops}
- ${deadLocksPoolUsers}
+ ${oneThreadScenariosPoolUsers}
${ramp_period}
1505803944000
1505803944000
@@ -28161,7 +28256,7 @@ vars.put("adminImportFilePath", filepath);
1
false
1
- ${apiBasePercentage}
+ ${apiSinglePercentage}
mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
@@ -44333,6 +44428,25754 @@ vars.put("coupon_code", coupons[number].code);
+
+
+
+
+ continue
+
+ false
+ ${loops}
+
+ ${combinedBenchmarkPoolUsers}
+ ${ramp_period}
+ 1505803944000
+ 1505803944000
+ false
+
+
+ mpaf/tool/fragments/_system/thread_group.jmx
+
+
+ javascript
+
+
+
+ var cacheHitPercent = vars.get("cache_hits_percentage");
+
+if (
+ cacheHitPercent < 100 &&
+ sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+) {
+ doCache();
+}
+
+function doCache(){
+ var random = Math.random() * 100;
+ if (cacheHitPercent < random) {
+ sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
+ }
+}
+
+ mpaf/tool/fragments/ce/common/cache_hit_miss.jmx
+
+
+
+ 1
+ false
+ 1
+ ${cBrowseCatalogByGuestPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Catalog Browsing By Guest");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ javascript
+
+
+
+ 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]);
+
+ mpaf/tool/fragments/ce/common/extract_category_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${category_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_category.jmx
+
+
+
+ <span class="base" data-ui-id="page-title">${category_name}</span>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ category_id
+ <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li>
+ $1$
+
+ 1
+ simple_product_1_url_key
+
+
+
+
+ ^[0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ category_id
+
+
+
+
+
+ true
+ 2
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cSiteSearchPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Site Search");
+
+ true
+
+
+
+
+ ${files_folder}search_terms.csv
+ UTF-8
+
+ ,
+ false
+ true
+ false
+ shareMode.thread
+ mpaf/tool/fragments/ce/search/search_terms.jmx
+
+
+
+ javascript
+
+
+
+ var cacheHitPercent = vars.get("cache_hits_percentage");
+
+if (
+ cacheHitPercent < 100 &&
+ sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+) {
+ doCache();
+}
+
+function doCache(){
+ var random = Math.random() * 100;
+ if (cacheHitPercent < random) {
+ sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
+ }
+}
+
+ mpaf/tool/fragments/ce/common/cache_hit_miss.jmx
+
+
+
+ 1
+ false
+ 1
+ ${searchQuickPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "Quick Search");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ q
+ ${searchTerm}
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalogsearch/result/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/search_quick.jmx
+
+
+
+ Search results for:
+ <span class="toolbar-number">\d<\/span> Items|Items <span class="toolbar-number">1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ product_url_keys
+ <a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).
+ $2$
+
+ -1
+
+
+
+ false
+ isPageCacheable
+ catalogsearch/searchTermsLog/save
+ $0$
+ 0
+ 1
+
+
+
+
+
+ "${isPageCacheable}" != "0"
+ false
+ mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx
+
+
+
+
+
+ true
+ q
+ ${searchTerm}
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalogsearch/searchTermsLog/save/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/search_terms_log_save.jmx
+
+
+
+
+ "success":true
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));
+
+if (foundProducts > 3) {
+ foundProducts = 3;
+}
+
+vars.put("foundProducts", String.valueOf(foundProducts));
+
+
+
+ true
+ mpaf/tool/fragments/ce/search/set_found_items.jmx
+
+
+
+ true
+ ${foundProducts}
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/search/searched_products_setup.jmx
+
+number = vars.get("_counter");
+product = vars.get("product_url_keys_"+number);
+
+vars.put("product_url_key", product);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${searchQuickFilterPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "Quick Search With Filtration");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ q
+ ${searchTerm}
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+
+
+ ${base_path}catalogsearch/result/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/search_quick_filter.jmx
+
+
+
+ Search results for:
+ Items <span class="toolbar-number">1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ 0
+ attribute_1_options_count
+ count((//div[@class="filter-options-content"])[1]//li[@class="item"])
+ false
+ true
+ false
+
+
+
+ 0
+ attribute_2_options_count
+ count((//div[@class="filter-options-content"])[2]//li[@class="item"])
+ false
+ true
+ false
+
+
+
+
+ attribute_1_filter_url
+ ((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href
+ false
+ true
+ false
+
+
+
+ false
+ product_url_keys
+ <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).
+ $2$
+
+ -1
+
+
+
+ false
+ isPageCacheable
+ catalogsearch/searchTermsLog/save
+ $0$
+ 0
+ 1
+
+
+
+
+
+ "${isPageCacheable}" != "0"
+ false
+ mpaf/tool/fragments/ce/search/if_page_cacheable_controller.jmx
+
+
+
+
+
+ true
+ q
+ ${searchTerm}
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalogsearch/searchTermsLog/save/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/search_terms_log_save.jmx
+
+
+
+
+ "success":true
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ ${attribute_1_options_count} > 0
+ false
+ mpaf/tool/fragments/ce/search/search_quick_filter-first-attribute.jmx
+
+
+ vars.put("search_url", vars.get("attribute_1_filter_url"));
+
+
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+
+
+ ${attribute_1_filter_url}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Search results for:
+ <span class="toolbar-number">[1-9]+
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ 0
+ attribute_2_options_count
+ count((//div[@class="filter-options-content"])[2]//li[@class="item"])
+ false
+ true
+ false
+
+
+
+
+ attribute_2_filter_url
+ ((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href
+ false
+ true
+ false
+
+
+
+ false
+ product_url_keys
+ <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).
+ $2$
+
+ -1
+
+
+
+
+
+
+ ${attribute_2_options_count} > 0
+ false
+ mpaf/tool/fragments/ce/search/search_quick_filter-second-attribute.jmx
+
+
+ vars.put("search_url", vars.get("attribute_2_filter_url"));
+
+
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+
+
+ ${attribute_2_filter_url}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Search results for:
+ <span class="toolbar-number">[1-9]+
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ product_url_keys
+ <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).
+ $2$
+
+ -1
+
+
+
+
+
+
+
+foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));
+
+if (foundProducts > 3) {
+ foundProducts = 3;
+}
+
+vars.put("foundProducts", String.valueOf(foundProducts));
+
+
+
+ true
+ mpaf/tool/fragments/ce/search/set_found_items.jmx
+
+
+
+ true
+ ${foundProducts}
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/search/searched_products_setup.jmx
+
+number = vars.get("_counter");
+product = vars.get("product_url_keys_"+number);
+
+vars.put("product_url_key", product);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${searchAdvancedPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "Advanced Search");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+
+
+ ${base_path}catalogsearch/advanced/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/open_advanced_search_page.jmx
+
+
+
+ <title>Advanced Search</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ attribute_name
+ (//select[@class="multiselect"])[last()]/@name
+ false
+ true
+ false
+
+
+
+ 0
+ attribute_options_count
+ count((//select[@class="multiselect"])[last()]/option)
+ false
+ true
+ false
+
+
+
+
+ attribute_value
+ ((//select[@class="multiselect"])[last()]/option)[1]/@value
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+ true
+ name
+
+ =
+ true
+
+
+ true
+ sku
+
+ =
+ true
+
+
+ true
+ description
+ ${searchTerm}
+ =
+ true
+
+
+ true
+ short_description
+
+ =
+ true
+
+
+ true
+ price%5Bfrom%5D
+
+ =
+ true
+
+
+ true
+ price%5Bto%5D
+ ${priceTo}
+ =
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalogsearch/advanced/result/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/search/search_advanced.jmx
+
+
+
+ items</strong> were found using the following search criteria
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ product_url_keys
+ <a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).
+ $2$
+
+ -1
+
+
+
+
+
+
+foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));
+
+if (foundProducts > 3) {
+ foundProducts = 3;
+}
+
+vars.put("foundProducts", String.valueOf(foundProducts));
+
+
+
+ true
+ mpaf/tool/fragments/ce/search/set_found_items.jmx
+
+
+
+ true
+ ${foundProducts}
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/search/searched_products_setup.jmx
+
+number = vars.get("_counter");
+product = vars.get("product_url_keys_"+number);
+
+vars.put("product_url_key", product);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAddToCartByGuestPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Add To Cart By Guest");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx
+
+vars.put("totalProductsAdded", "0");
+
+
+
+ true
+
+
+
+
+ javascript
+
+
+
+ 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]);
+
+ mpaf/tool/fragments/ce/common/extract_category_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${category_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_category.jmx
+
+
+
+ <span class="base" data-ui-id="page-title">${category_name}</span>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ category_id
+ <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li>
+ $1$
+
+ 1
+ simple_product_1_url_key
+
+
+
+
+ ^[0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ category_id
+
+
+
+
+
+ true
+ 2
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx
+
+
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ */*
+
+
+
+
+
+ true
+
+
+
+ false
+ {"username":"${admin_user}","password":"${admin_password}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/integration/admin/token
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ admin_token
+ $
+
+
+ BODY
+
+
+
+
+ ^[a-z0-9-]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_token
+
+
+
+
+
+
+ Authorization
+ Bearer ${admin_token}
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/configurable-products/${product_sku}/options/all
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ attribute_ids
+ $.[*].attribute_id
+ NO_VALUE
+
+ BODY
+
+
+
+ option_values
+ $.[*].values[0].value_index
+ NO_VALUE
+
+ BODY
+
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx
+
+
+ false
+
+
+
+ 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 < attribute_ids_array.length; i++) {
+ ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
+ }
+ } catch (Exception e) {
+ log.error("eror…", e);
+ }
+
+ mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAddToWishlistPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Add to Wishlist");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ get-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_customer_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/login/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_login_page.jmx
+
+
+
+ <title>Customer Login</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${customer_email}
+ =
+ true
+ login[username]
+
+
+ true
+ ${customer_password}
+ =
+ true
+ login[password]
+
+
+ true
+
+ =
+ true
+ send
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/loginPost/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/login.jmx
+
+
+
+ <title>My Account</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ addressId
+ customer/address/edit/id/([^'"]+)/
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ addressId
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ true
+ 5
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ ${product_uenc}
+ =
+ true
+ uenc
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}wishlist/index/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/wishlist/add_to_wishlist.jmx
+
+
+
+ <title>My Wish List</title>
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ wishListItems
+ data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)"
+ $2$
+
+ -1
+
+
+
+
+
+
+
+
+ true
+ wishlist,messages
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/wishlist/load_wishlist_section.jmx
+
+
+
+ {"wishlist":{"counter":"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ ${wishlistDelay}*1000
+
+
+
+
+
+
+ wishListItems
+ wishListItem
+ true
+ mpaf/tool/fragments/ce/wishlist/clear_wishlist.jmx
+
+
+ 1
+ 5
+ 1
+ counter
+
+ true
+ true
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+ true
+
+
+ true
+ ${wishListItem}
+ =
+ true
+ item
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}wishlist/index/remove/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/logout.jmx
+
+
+
+ You are signed out.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ false
+
+
+
+customerUserList = props.get("customer_emails_list");
+customerUserList.add(vars.get("customer_email"));
+
+ mpaf/tool/fragments/ce/common/return_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cCompareProductsPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Compare Products");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx
+
+vars.put("totalProductsAdded", "0");
+
+
+
+ true
+
+
+
+
+ javascript
+
+
+
+ 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]);
+
+ mpaf/tool/fragments/ce/common/extract_category_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${category_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/open_category.jmx
+
+
+
+ <span class="base" data-ui-id="page-title">${category_name}</span>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ random_product_compare_id
+ catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\"
+ $1$
+
+ 1
+
+
+
+
+ ^[0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ random_product_compare_id
+
+
+
+
+
+ true
+ 2
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${product_uenc}
+ =
+ true
+ uenc
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalog/product_compare/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx
+
+
+
+
+
+
+ true
+ compare-products,messages
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx
+
+
+
+ \"compare-products\":{\"count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${product_uenc}
+ =
+ true
+ uenc
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalog/product_compare/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx
+
+
+
+
+
+
+ true
+ compare-products,messages
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx
+
+
+
+ \"compare-products\":{\"count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalog/product_compare/index/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/compare_products.jmx
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${productCompareDelay}*1000))}
+ mpaf/tool/fragments/ce/product_compare/compare_products_pause.jmx
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}catalog/product_compare/clear
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_compare/compare_products_clear.jmx
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cCheckoutByGuestPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Checkout By Guest");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx
+
+vars.put("totalProductsAdded", "0");
+
+
+
+ true
+
+
+
+
+ javascript
+
+
+
+ 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]);
+
+ mpaf/tool/fragments/ce/common/extract_category_setup.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${category_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_category.jmx
+
+
+
+ <span class="base" data-ui-id="page-title">${category_name}</span>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ category_id
+ <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li>
+ $1$
+
+ 1
+ simple_product_1_url_key
+
+
+
+
+ ^[0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ category_id
+
+
+
+
+
+ true
+ 2
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx
+
+
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ */*
+
+
+
+
+
+ true
+
+
+
+ false
+ {"username":"${admin_user}","password":"${admin_password}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/integration/admin/token
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ admin_token
+ $
+
+
+ BODY
+
+
+
+
+ ^[a-z0-9-]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_token
+
+
+
+
+
+
+ Authorization
+ Bearer ${admin_token}
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/configurable-products/${product_sku}/options/all
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ attribute_ids
+ $.[*].attribute_id
+ NO_VALUE
+
+ BODY
+
+
+
+ option_values
+ $.[*].values[0].value_index
+ NO_VALUE
+
+ BODY
+
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx
+
+
+ false
+
+
+
+ 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 < attribute_ids_array.length; i++) {
+ ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
+ }
+ } catch (Exception e) {
+ log.error("eror…", e);
+ }
+
+ mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ javascript
+
+
+
+
+ vars.put("alabama_region_id", props.get("alabama_region_id"));
+ vars.put("california_region_id", props.get("california_region_id"));
+
+ mpaf/tool/fragments/ce/common/get_region_data.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_start.jmx
+
+
+
+ <title>Checkout</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ <title>Shopping Cart</title>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ cart_id
+ "quoteData":{"entity_id":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ cart_id
+
+
+
+
+
+ true
+
+
+
+ false
+ {"customerEmail":"test@example.com"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/customers/isEmailAvailable
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_email_available.jmx
+
+
+
+
+ Referer
+ ${base_path}checkout/onepage/
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+
+ true
+
+
+
+ false
+ {"address":{"country_id":"US","postcode":"95630"}}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx
+
+
+
+
+ Referer
+ ${base_path}checkout/onepage/
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ "available":true
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+
+
+
+ false
+ {"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"}}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx
+
+
+
+
+ Referer
+ ${base_path}checkout/onepage/
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ {"payment_methods":
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+
+
+
+ false
+ {"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"}}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx
+
+
+
+
+ Referer
+ ${base_path}checkout/onepage/
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ "[0-9]+"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ order_id
+ $
+
+
+ BODY
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ order_id
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/onepage/success/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/guest_checkout/checkout_success.jmx
+
+
+
+ Thank you for your purchase!
+ Your order # is
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cCheckoutByCustomerPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Checkout By Customer");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx
+
+import java.util.Random;
+
+Random random = new Random();
+if (${seedForRandom} > 0) {
+ random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+vars.putObject("randomIntGenerator", random);
+
+
+
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx
+
+vars.put("totalProductsAdded", "0");
+
+
+
+ true
+
+
+
+
+ javascript
+
+
+
+ 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]);
+
+ mpaf/tool/fragments/ce/common/extract_category_setup.jmx
+
+
+
+ get-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_customer_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/login/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_login_page.jmx
+
+
+
+ <title>Customer Login</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${customer_email}
+ =
+ true
+ login[username]
+
+
+ true
+ ${customer_password}
+ =
+ true
+ login[password]
+
+
+ true
+
+ =
+ true
+ send
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/loginPost/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/login.jmx
+
+
+
+ <title>My Account</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ addressId
+ customer/address/edit/id/([^'"]+)/
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ addressId
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${category_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_category.jmx
+
+
+
+ <span class="base" data-ui-id="page-title">${category_name}</span>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ category_id
+ <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li>
+ $1$
+
+ 1
+ simple_product_1_url_key
+
+
+
+
+ ^[0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ category_id
+
+
+
+
+
+ true
+ 2
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/loop_controller.jmx
+
+
+ 1
+
+ 1
+ _counter
+
+ true
+ true
+
+
+
+
+
+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"));
+
+
+
+ true
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx
+
+productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
+productsAdded = productsAdded + 1;
+
+vars.put("totalProductsAdded", String.valueOf(productsAdded));
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${product_url_key}${url_suffix}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx
+
+
+
+ <span>In stock</span>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+ 1
+ mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx
+
+
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ */*
+
+
+
+
+
+ true
+
+
+
+ false
+ {"username":"${admin_user}","password":"${admin_password}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/integration/admin/token
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ admin_token
+ $
+
+
+ BODY
+
+
+
+
+ ^[a-z0-9-]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_token
+
+
+
+
+
+
+ Authorization
+ Bearer ${admin_token}
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/configurable-products/${product_sku}/options/all
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ attribute_ids
+ $.[*].attribute_id
+ NO_VALUE
+
+ BODY
+
+
+
+ option_values
+ $.[*].values[0].value_index
+ NO_VALUE
+
+ BODY
+
+
+
+
+
+
+
+
+
+ true
+ ${product_id}
+ =
+ true
+ product
+
+
+ true
+
+ =
+ true
+ related_product
+
+
+ true
+ 1
+ =
+ true
+ qty
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/cart/add/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx
+
+
+ false
+
+
+
+ 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 < attribute_ids_array.length; i++) {
+ ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
+ }
+ } catch (Exception e) {
+ log.error("eror…", e);
+ }
+
+ mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+
+
+ true
+ cart,messages
+ =
+ true
+ sections
+
+
+ true
+ true
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/load_cart_section.jmx
+
+
+
+ You added ${product_name} to your shopping cart.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ This product is out of stock.
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ \"summary_count\":${totalProductsAdded}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ javascript
+
+
+
+
+ vars.put("alabama_region_id", props.get("alabama_region_id"));
+ vars.put("california_region_id", props.get("california_region_id"));
+
+ mpaf/tool/fragments/ce/common/get_region_data.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_start.jmx
+
+
+
+ <title>Checkout</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ <title>Shopping Cart</title>
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+ false
+ cart_id
+ "quoteData":{"entity_id":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ address_id
+ "default_billing":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ customer_id
+ "customer_id":([^'",]+),
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ cart_id
+
+
+
+
+ [0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ address_id
+
+
+
+
+ [0-9]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ customer_id
+
+
+
+
+
+ true
+
+
+
+ false
+ {"addressId":"${addressId}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx
+
+
+
+
+ Referer
+ ${base_path}checkout/onepage/
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ "available":true
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+
+
+
+ false
+ {"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"}}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/carts/mine/shipping-information
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx
+
+
+
+
+ Referer
+ ${host}${base_path}checkout/onepage
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ {"payment_methods"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ true
+
+
+
+ false
+ {"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"}}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/carts/mine/payment-information
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx
+
+
+
+
+ Referer
+ ${host}${base_path}checkout/onepage
+
+
+ Content-Type
+ application/json; charset=UTF-8
+
+
+ Accept
+ application/json
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+
+
+
+
+ "[0-9]+"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}checkout/onepage/success/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_success.jmx
+
+
+
+ Thank you for your purchase!
+ Your order number is
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/logout.jmx
+
+
+
+ You are signed out.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ false
+
+
+ curSampler = ctx.getCurrentSampler();
+if(curSampler.getName().contains("Checkout success")) {
+ manager = curSampler.getCookieManager();
+ manager.clear();
+}
+
+ mpaf/tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx
+
+
+
+ false
+
+
+
+customerUserList = props.get("customer_emails_list");
+customerUserList.add(vars.get("customer_email"));
+
+ mpaf/tool/fragments/ce/common/return_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAccountManagementPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Account management");
+
+ true
+
+
+
+
+
+
+ 30
+ ${host}
+ /
+ false
+ 0
+ true
+ true
+
+
+ ${form_key}
+ ${host}
+ ${base_path}
+ false
+ 0
+ true
+ true
+
+
+ true
+ mpaf/tool/fragments/ce/http_cookie_manager.jmx
+
+
+
+ get-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_customer_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_home_page.jmx
+
+
+
+ <title>Home page</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/login/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/open_login_page.jmx
+
+
+
+ <title>Customer Login</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${customer_email}
+ =
+ true
+ login[username]
+
+
+ true
+ ${customer_password}
+ =
+ true
+ login[password]
+
+
+ true
+
+ =
+ true
+ send
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/loginPost/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/login.jmx
+
+
+
+ <title>My Account</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ addressId
+ customer/address/edit/id/([^'"]+)/
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ addressId
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ sections
+
+
+ true
+ false
+ =
+ true
+ force_new_section_timestamp
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/section/load/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}sales/order/history/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/my_orders.jmx
+
+
+
+ <title>My Orders</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ orderId
+ sales/order/view/order_id/(\d+)/
+ $1$
+ NOT_FOUND
+ 1
+
+
+
+
+
+ mpaf/tool/fragments/ce/account_management/if_orders.jmx
+ "${orderId}" != "NOT_FOUND"
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}sales/order/view/order_id/${orderId}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ <title>Order #
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ shipment_tab
+ sales/order/shipment/order_id/(\d+)..Order Shipments
+ $1$
+ NOT_FOUND
+ 1
+
+
+
+
+ May not have shipped
+ "${shipment_tab}" != "NOT_FOUND"
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}sales/order/shipment/order_id/${orderId}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Track this shipment
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ popupLink
+ popupWindow": {"windowURL":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${popupLink}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ <title>Tracking Information</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}downloadable/customer/products
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx
+
+
+
+ <title>My Downloadable Products</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ orderId
+ sales/order/view/order_id/(\d+)/
+ $1$
+ NOT_FOUND
+ 1
+
+
+
+ false
+ linkId
+ downloadable/download/link/id/(\d+)/
+ $1$
+
+ 1
+
+
+
+
+
+ mpaf/tool/fragments/ce/account_management/if_downloadables.jmx
+ "${orderId}" != "NOT_FOUND"
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}sales/order/view/order_id/${orderId}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx
+
+
+
+ <title>Order #
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}downloadable/download/link/id/${linkId}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/download_product.jmx
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}wishlist
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ <title>My Wish List</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ wishlistId
+ wishlist/index/update/wishlist_id/([^'"]+)/
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/account_management/my_wish_list.jmx
+
+
+
+ false
+ buttonTitle
+ Update Wish List
+ FOUND
+ NOT_FOUND
+ 1
+
+
+
+
+
+ mpaf/tool/fragments/ce/account_management/if_wishlist.jmx
+ "${buttonTitle}" === "FOUND"
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/share_wish_list.jmx
+
+
+
+ <title>Wish List Sharing</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${form_key}
+ =
+ true
+ form_key
+ true
+
+
+ true
+ ${customer_email}
+ =
+ true
+ emails
+
+
+ true
+ [TEST] See my wishlist!!!
+ =
+ true
+ message
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/account_management/send_wish_list.jmx
+
+
+
+ <title>My Wish List</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}customer/account/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/common/logout.jmx
+
+
+
+ You are signed out.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ false
+
+
+
+customerUserList = props.get("customer_emails_list");
+customerUserList.add(vars.get("customer_email"));
+
+ mpaf/tool/fragments/ce/common/return_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminCMSManagementPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin CMS Management");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/cms/page/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/cms/page/new
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+ true
+ <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ content
+
+
+ true
+
+ =
+ true
+ content_heading
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+
+ =
+ true
+ identifier
+
+
+ true
+ 1
+ =
+ true
+ is_active
+
+
+ true
+
+ =
+ true
+ layout_update_xml
+
+
+ true
+
+ =
+ true
+ meta_description
+
+
+ true
+
+ =
+ true
+ meta_keywords
+
+
+ true
+
+ =
+ true
+ meta_title
+
+
+ false
+ {}
+ =
+ true
+ nodes_data
+
+
+ true
+
+ =
+ true
+ node_ids
+
+
+ true
+
+ =
+ true
+ page_id
+
+
+ true
+ 1column
+ =
+ true
+ page_layout
+
+
+ true
+ 0
+ =
+ true
+ store_id[0]
+
+
+ true
+ CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ title
+
+
+ true
+ 0
+ =
+ true
+ website_root
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/cms/page/save/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the page.
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminBrowseProductGridPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Browse Product Grid");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+
+ 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");
+
+ javascript
+ mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+ 1
+ ${grid_pages_count}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ 1
+ ${grid_pages_count_filtered}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx
+
+
+
+ grid_sort_field
+ grid_sort_field
+ true
+ 0
+ 3
+
+
+
+ grid_sort_order
+ grid_sort_order
+ true
+ 0
+ 2
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ false
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[${grid_filter_field}]
+ false
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ false
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ false
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ false
+
+
+ true
+ ${grid_sort_field}
+ =
+ true
+ sorting[field]
+ false
+
+
+ true
+ ${grid_sort_order}
+ =
+ true
+ sorting[direction]
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminBrowseOrderGridPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Browse Order Grid");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+
+ 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");
+
+ javascript
+ mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+ 1
+ ${grid_pages_count}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ 1
+ ${grid_pages_count_filtered}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx
+
+
+
+ grid_sort_field
+ grid_sort_field
+ true
+ 0
+ 3
+
+
+
+ grid_sort_order
+ grid_sort_order
+ true
+ 0
+ 2
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ false
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[${grid_filter_field}]
+ false
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ false
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ false
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ false
+
+
+ true
+ ${grid_sort_field}
+ =
+ true
+ sorting[field]
+ false
+
+
+ true
+ ${grid_sort_order}
+ =
+ true
+ sorting[direction]
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminProductCreationPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Create Product");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/once_only_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx
+ import org.apache.jmeter.samplers.SampleResult;
+import java.util.Random;
+Random random = new Random();
+if (${seedForRandom} > 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"));
+
+
+ true
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ */*
+
+
+ mpaf/tool/fragments/ce/api/header_manager_before_token.jmx
+
+
+
+ true
+
+
+
+ false
+ {"username":"${admin_user}","password":"${admin_password}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/integration/admin/token
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx
+
+
+ admin_token
+ $
+
+
+ BODY
+
+
+
+
+ ^[a-z0-9-]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_token
+
+
+
+
+
+
+
+ Authorization
+ Bearer ${admin_token}
+
+
+ mpaf/tool/fragments/ce/api/header_manager.jmx
+
+
+
+
+
+
+ false
+ mycolor
+ =
+ true
+ searchCriteria[filterGroups][0][filters][0][value]
+
+
+ false
+ attribute_code
+ =
+ true
+ searchCriteria[filterGroups][0][filters][0][field]
+
+
+ false
+ mysize
+ =
+ true
+ searchCriteria[filterGroups][0][filters][1][value]
+
+
+ false
+ attribute_code
+ =
+ true
+ searchCriteria[filterGroups][0][filters][1][field]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/default/V1/products/attributes
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx
+
+
+ product_attributes
+ $.items
+
+
+ BODY
+
+
+
+ javascript
+
+
+
+
+var attributesData = JSON.parse(vars.get("product_attributes")),
+maxOptions = 2;
+
+attributes = [];
+for (i in attributesData) {
+ if (i >= 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) > 0 && processedOptions < maxOptions) {
+ processedOptions++;
+ attribute.options.push(option);
+ }
+ }
+ attributes.push(attribute);
+}
+
+vars.putObject("product_attributes", attributes);
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx
+
+
+
+ false
+ attribute_set_id
+ catalog\/product_set\/edit\/id\/([\d]+)\/"[\D\d]*Attribute Set 1
+ $1$
+
+ 1
+
+
+
+ false
+
+
+ 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));
+
+
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ import org.apache.jmeter.samplers.SampleResult;
+import java.util.Random;
+Random random = new Random();
+if (${seedForRandom} > 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)}");
+
+
+
+
+ true
+ mpaf/tool/fragments/ce/admin_create_product/setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ records found
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ New Product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 42
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[configurable_variations]
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+
+ =
+ true
+ new-variations-attribute-set-id
+
+
+ true
+ 0
+ =
+ true
+ product[shipment_type]
+
+
+ true
+ option title one
+ =
+ true
+ bundle_options[bundle_options][0][title]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][option_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][delete]
+
+
+ true
+ select
+ =
+ true
+ bundle_options[bundle_options][0][type]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][required]
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][position]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][option_id]
+
+
+ true
+ ${simple_product_1_id}
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][product_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][delete]
+
+
+ true
+ 25
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_qty]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][position]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][option_id]
+
+
+ true
+ ${simple_product_2_id}
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][product_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][delete]
+
+
+ true
+ 10.99
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_qty]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][position]
+
+
+ true
+ option title two
+ =
+ true
+ bundle_options[bundle_options][1][title]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][option_id]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][delete]
+
+
+ true
+ select
+ =
+ true
+ bundle_options[bundle_options][1][type]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][required]
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][position]
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_id]
+ true
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][option_id]
+ true
+
+
+ true
+ ${simple_product_1_id}
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][product_id]
+ true
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][delete]
+ true
+
+
+ true
+ 5.00
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]
+ true
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]
+ true
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]
+ true
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][position]
+ true
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_id]
+ true
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][option_id]
+ true
+
+
+ true
+ ${simple_product_2_id}
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][product_id]
+ true
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][delete]
+ true
+
+
+ true
+ 7.00
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]
+ true
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]
+ true
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][position]
+ true
+
+
+ true
+ 2
+ =
+ true
+ affect_bundle_product_selections
+ true
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/set/4/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 42
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[configurable_variations]
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+
+ =
+ true
+ new-variations-attribute-set-id
+
+
+ true
+ 0
+ =
+ true
+ product[shipment_type]
+ false
+
+
+ true
+ option title one
+ =
+ true
+ bundle_options[bundle_options][0][title]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][option_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][delete]
+ false
+
+
+ true
+ select
+ =
+ true
+ bundle_options[bundle_options][0][type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][required]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][position]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][option_id]
+ false
+
+
+ true
+ ${simple_product_1_id}
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][product_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][delete]
+ false
+
+
+ true
+ 25
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][0][position]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][option_id]
+ false
+
+
+ true
+ ${simple_product_2_id}
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][product_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][delete]
+ false
+
+
+ true
+ 10.99
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][0][bundle_selections][1][position]
+ false
+
+
+ true
+ option title two
+ =
+ true
+ bundle_options[bundle_options][1][title]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][option_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][delete]
+ false
+
+
+ true
+ select
+ =
+ true
+ bundle_options[bundle_options][1][type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][required]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][position]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][option_id]
+ false
+
+
+ true
+ ${simple_product_1_id}
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][product_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][delete]
+ false
+
+
+ true
+ 5.00
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][0][position]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][option_id]
+ false
+
+
+ true
+ ${simple_product_2_id}
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][product_id]
+ false
+
+
+ true
+
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][delete]
+ false
+
+
+ true
+ 7.00
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]
+ false
+
+
+ true
+ 0
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ bundle_options[bundle_options][1][bundle_selections][1][position]
+ false
+
+
+ true
+ 2
+ =
+ true
+ affect_bundle_product_selections
+ false
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the product
+ option title one
+ option title two
+ ${simple_product_2_name}
+ ${simple_product_1_name}
+
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx
+
+
+
+ records found
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx
+
+
+
+ New Product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ true
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ true
+
+
+ true
+ ${attribute_set_id}
+ =
+ true
+ new-variations-attribute-set-id
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[affect_product_custom_options]
+ true
+
+
+ true
+ ${attribute_set_id}
+ =
+ true
+ product[attribute_set_id]
+ true
+
+
+ true
+ 4
+ =
+ true
+ product[category_ids][0]
+ true
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ true
+
+
+ true
+
+ =
+ true
+ product[description]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[gift_message_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[gift_wrapping_available]
+ true
+
+
+ true
+
+ =
+ true
+ product[gift_wrapping_price]
+ true
+
+
+ true
+
+ =
+ true
+ product[image]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[is_returnable]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Description
+ =
+ true
+ product[meta_description]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Keyword
+ =
+ true
+ product[meta_keyword]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Title
+ =
+ true
+ product[meta_title]
+ true
+
+
+ true
+ ${configurable_sku}
+ =
+ true
+ product[name]
+ true
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ true
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ true
+
+
+ true
+ 1000
+ =
+ true
+ product[quantity_and_stock_status][qty]
+ true
+
+
+ true
+
+ =
+ true
+ product[short_description]
+ true
+
+
+ true
+ ${configurable_sku}
+ =
+ true
+ product[sku]
+ true
+
+
+ true
+
+ =
+ true
+ product[small_image]
+ true
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][deferred_stock_update]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][manage_stock]
+ true
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][qty_increments]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_deferred_stock_update]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_enable_qty_increments]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+ true
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+ true
+
+
+ true
+
+ =
+ true
+ product[url_key]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_message_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_wrapping_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_is_returnable]
+ true
+
+
+ true
+ 4
+ =
+ true
+ product[visibility]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][1]
+ true
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ javascript
+
+
+
+
+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);
+}
+
+ mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ true
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ true
+
+
+ true
+ ${attribute_set_id}
+ =
+ true
+ new-variations-attribute-set-id
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[affect_product_custom_options]
+ true
+
+
+ true
+ ${attribute_set_id}
+ =
+ true
+ product[attribute_set_id]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][0]
+ true
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ true
+
+
+ true
+
+ =
+ true
+ product[description]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[gift_message_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[gift_wrapping_available]
+ true
+
+
+ true
+
+ =
+ true
+ product[gift_wrapping_price]
+ true
+
+
+ true
+
+ =
+ true
+ product[image]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[is_returnable]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Description
+ =
+ true
+ product[meta_description]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Keyword
+ =
+ true
+ product[meta_keyword]
+ true
+
+
+ true
+ ${configurable_sku} - Meta Title
+ =
+ true
+ product[meta_title]
+ true
+
+
+ true
+ ${configurable_sku}
+ =
+ true
+ product[name]
+ true
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ true
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ true
+
+
+ true
+ 1000
+ =
+ true
+ product[quantity_and_stock_status][qty]
+ true
+
+
+ true
+
+ =
+ true
+ product[short_description]
+ true
+
+
+ true
+ ${configurable_sku}
+ =
+ true
+ product[sku]
+ true
+
+
+ true
+
+ =
+ true
+ product[small_image]
+ true
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][deferred_stock_update]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][manage_stock]
+ true
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+ true
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][qty_increments]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_deferred_stock_update]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_enable_qty_increments]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+ true
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+ true
+
+
+ true
+
+ =
+ true
+ product[url_key]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_message_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_wrapping_available]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_is_returnable]
+ true
+
+
+ true
+ 4
+ =
+ true
+ product[visibility]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][1]
+ true
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx
+
+
+
+ You saved the product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ javascript
+
+
+
+
+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);
+ }
+});
+
+
+
+
+
+ javascript
+
+
+
+
+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);
+}
+
+ mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ records found
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ New Product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ ${files_folder}downloadable_original.txt
+ links
+ text/plain
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true
+ POST
+ false
+ false
+ true
+ true
+ false
+
+
+
+
+ original_file
+ $.file
+
+
+ BODY
+
+
+
+
+
+
+
+ ${files_folder}downloadable_sample.txt
+ samples
+ text/plain
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true
+ POST
+ false
+ false
+ true
+ true
+ false
+
+
+
+
+ sample_file
+ $.file
+
+
+ BODY
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 123
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+ on
+ =
+ true
+ is_downloadable
+
+
+ true
+ Links
+ =
+ true
+ product[links_title]
+
+
+ true
+ 0
+ =
+ true
+ product[links_purchased_separately]
+
+
+ true
+ ${original_file}
+ =
+ true
+ downloadable[link][0][file][0][file]
+ false
+
+
+ true
+ downloadable_original.txt
+ =
+ true
+ downloadable[link][0][file][0][name]
+ false
+
+
+ true
+ 13
+ =
+ true
+ downloadable[link][0][file][0][size]
+ false
+
+
+ true
+ new
+ =
+ true
+ downloadable[link][0][file][0][status]
+ false
+
+
+ true
+ 1
+ =
+ true
+ downloadable[link][0][is_shareable]
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][is_unlimited]
+
+
+ true
+
+ =
+ true
+ downloadable[link][0][link_url]
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][number_of_downloads]
+ true
+
+
+ true
+ 120
+ =
+ true
+ downloadable[link][0][price]
+ true
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][record_id]
+ true
+
+
+ true
+ file
+ =
+ true
+ downloadable[link][0][sample][type]
+
+
+ true
+
+ =
+ true
+ downloadable[link][0][sample][url]
+
+
+ true
+ 1
+ =
+ true
+ downloadable[link][0][sort_order]
+
+
+ true
+ Original Link
+ =
+ true
+ downloadable[link][0][title]
+
+
+ true
+ file
+ =
+ true
+ downloadable[link][0][type]
+
+
+ true
+ ${sample_file}
+ =
+ true
+ downloadable[sample][0][file][0][file]
+ true
+
+
+ true
+ downloadable_sample.txt
+ =
+ true
+ downloadable[sample][0][file][0][name]
+ true
+
+
+ true
+ 14
+ =
+ true
+ downloadable[sample][0][file][0][size]
+ true
+
+
+ true
+ new
+ =
+ true
+ downloadable[sample][0][file][0][status]
+ true
+
+
+ true
+ 0
+ =
+ true
+ downloadable[sample][0][record_id]
+ true
+
+
+ true
+
+ =
+ true
+ downloadable[sample][0][sample_url]
+ true
+
+
+ true
+ 1
+ =
+ true
+ downloadable[sample][0][sort_order]
+ true
+
+
+ true
+ Sample Link
+ =
+ true
+ downloadable[sample][0][title]
+ true
+
+
+ true
+ file
+ =
+ true
+ downloadable[sample][0][type]
+ true
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ false
+
+
+ true
+ 4
+ =
+ true
+ new-variations-attribute-set-id
+ false
+
+
+ true
+
+ =
+ true
+ product[configurable_variation]
+ false
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 123
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+ ${original_file}
+ =
+ true
+ downloadable[link][0][file][0][file]
+ false
+
+
+ true
+ downloadable_original.txt
+ =
+ true
+ downloadable[link][0][file][0][name]
+ false
+
+
+ true
+ 13
+ =
+ true
+ downloadable[link][0][file][0][size]
+ false
+
+
+ true
+ new
+ =
+ true
+ downloadable[link][0][file][0][status]
+ false
+
+
+ true
+ 1
+ =
+ true
+ downloadable[link][0][is_shareable]
+ true
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][is_unlimited]
+ true
+
+
+ true
+
+ =
+ true
+ downloadable[link][0][link_url]
+ true
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][number_of_downloads]
+ false
+
+
+ true
+ 120
+ =
+ true
+ downloadable[link][0][price]
+ false
+
+
+ true
+ 0
+ =
+ true
+ downloadable[link][0][record_id]
+ false
+
+
+ true
+ file
+ =
+ true
+ downloadable[link][0][sample][type]
+ true
+
+
+ true
+
+ =
+ true
+ downloadable[link][0][sample][url]
+ true
+
+
+ true
+ 1
+ =
+ true
+ downloadable[link][0][sort_order]
+ true
+
+
+ true
+ Original Link
+ =
+ true
+ downloadable[link][0][title]
+ true
+
+
+ true
+ file
+ =
+ true
+ downloadable[link][0][type]
+ true
+
+
+ true
+ ${sample_file}
+ =
+ true
+ downloadable[sample][0][file][0][file]
+ true
+
+
+ true
+ downloadable_sample.txt
+ =
+ true
+ downloadable[sample][0][file][0][name]
+ true
+
+
+ true
+ 14
+ =
+ true
+ downloadable[sample][0][file][0][size]
+ true
+
+
+ true
+ new
+ =
+ true
+ downloadable[sample][0][file][0][status]
+ true
+
+
+ true
+ 0
+ =
+ true
+ downloadable[sample][0][record_id]
+ true
+
+
+ true
+
+ =
+ true
+ downloadable[sample][0][sample_url]
+ true
+
+
+ true
+ 1
+ =
+ true
+ downloadable[sample][0][sort_order]
+ true
+
+
+ true
+ Sample Link
+ =
+ true
+ downloadable[sample][0][title]
+ true
+
+
+ true
+ file
+ =
+ true
+ downloadable[sample][0][type]
+ true
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ false
+
+
+ true
+ 4
+ =
+ true
+ new-variations-attribute-set-id
+ false
+
+
+ true
+
+ =
+ true
+ product[configurable_variation]
+ false
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ violation
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ records found
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ New Product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 123
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+
+ =
+ true
+ product[options][1][is_delete]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[options][1][is_require]
+ false
+
+
+ true
+ select
+ =
+ true
+ product[options][1][previous_group]
+ false
+
+
+ true
+ drop_down
+ =
+ true
+ product[options][1][previous_type]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[options][1][sort_order]
+ false
+
+
+ true
+ Product Option Title One
+ =
+ true
+ product[options][1][title]
+ false
+
+
+ true
+ drop_down
+ =
+ true
+ product[options][1][type]
+ false
+
+
+ true
+
+ =
+ true
+ product[options][1][values][1][is_delete]
+ false
+
+
+ true
+ 200
+ =
+ true
+ product[options][1][values][1][price]
+ false
+
+
+ true
+ fixed
+ =
+ true
+ product[options][1][values][1][price_type]
+ false
+
+
+ true
+ sku-one
+ =
+ true
+ product[options][1][values][1][sku]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[options][1][values][1][sort_order]
+ false
+
+
+ true
+ Row Title
+ =
+ true
+ product[options][1][values][1][title]
+ false
+
+
+ true
+
+ =
+ true
+ product[options][2][is_delete]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[options][2][is_require]
+ false
+
+
+ true
+ 250
+ =
+ true
+ product[options][2][max_characters]
+ false
+
+
+ true
+ text
+ =
+ true
+ product[options][2][previous_group]
+ false
+
+
+ true
+ field
+ =
+ true
+ product[options][2][previous_type]
+ false
+
+
+ true
+ 500
+ =
+ true
+ product[options][2][price]
+ false
+
+
+ true
+ fixed
+ =
+ true
+ product[options][2][price_type]
+ false
+
+
+ true
+ sku-two
+ =
+ true
+ product[options][2][sku]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[options][2][sort_order]
+ false
+
+
+ true
+ Field Title
+ =
+ true
+ product[options][2][title]
+ false
+
+
+ true
+ field
+ =
+ true
+ product[options][2][type]
+ false
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ true
+
+
+ true
+ 4
+ =
+ true
+ new-variations-attribute-set-id
+ true
+
+
+ true
+
+ =
+ true
+ product[configurable_variation]
+ true
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/set/4/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ 123
+ =
+ true
+ product[price]
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+
+
+ true
+ 111
+ =
+ true
+ product[quantity_and_stock_status][qty]
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 2
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[description]
+
+
+ true
+ <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p>
+ =
+ true
+ product[short_description]
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+
+
+ true
+
+ =
+ true
+ product[image]
+
+
+ true
+
+ =
+ true
+ product[small_image]
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+
+
+ true
+ simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ product[url_key]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title
+ =
+ true
+ product[meta_title]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword
+ =
+ true
+ product[meta_keyword]
+
+
+ true
+ Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description
+ =
+ true
+ product[meta_description]
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+
+
+ true
+ 99
+ =
+ true
+ product[special_price]
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+
+
+ true
+
+ =
+ true
+ product[cost]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][0][website_id]
+
+
+ true
+ 32000
+ =
+ true
+ product[tier_price][0][cust_group]
+
+
+ true
+ 100
+ =
+ true
+ product[tier_price][0][price_qty]
+
+
+ true
+ 90
+ =
+ true
+ product[tier_price][0][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][0][delete]
+
+
+ true
+ 0
+ =
+ true
+ product[tier_price][1][website_id]
+
+
+ true
+ 1
+ =
+ true
+ product[tier_price][1][cust_group]
+
+
+ true
+ 101
+ =
+ true
+ product[tier_price][1][price_qty]
+
+
+ true
+ 99
+ =
+ true
+ product[tier_price][1][price]
+
+
+ true
+
+ =
+ true
+ product[tier_price][1][delete]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][original_inventory_qty]
+
+
+ true
+ 100500
+ =
+ true
+ product[stock_data][qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+
+
+ true
+
+ =
+ true
+ product[options][1][is_delete]
+ true
+
+
+ true
+ 1
+ =
+ true
+ product[options][1][is_require]
+
+
+ true
+ select
+ =
+ true
+ product[options][1][previous_group]
+ false
+
+
+ true
+ drop_down
+ =
+ true
+ product[options][1][previous_type]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[options][1][sort_order]
+ false
+
+
+ true
+ Product Option Title One
+ =
+ true
+ product[options][1][title]
+
+
+ true
+ drop_down
+ =
+ true
+ product[options][1][type]
+
+
+ true
+
+ =
+ true
+ product[options][1][values][1][is_delete]
+ false
+
+
+ true
+ 200
+ =
+ true
+ product[options][1][values][1][price]
+
+
+ true
+ fixed
+ =
+ true
+ product[options][1][values][1][price_type]
+
+
+ true
+ sku-one
+ =
+ true
+ product[options][1][values][1][sku]
+
+
+ true
+ 0
+ =
+ true
+ product[options][1][values][1][sort_order]
+
+
+ true
+ Row Title
+ =
+ true
+ product[options][1][values][1][title]
+
+
+ true
+
+ =
+ true
+ product[options][2][is_delete]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[options][2][is_require]
+
+
+ true
+ 250
+ =
+ true
+ product[options][2][max_characters]
+
+
+ true
+ text
+ =
+ true
+ product[options][2][previous_group]
+
+
+ true
+ field
+ =
+ true
+ product[options][2][previous_type]
+
+
+ true
+ 500
+ =
+ true
+ product[options][2][price]
+
+
+ true
+ fixed
+ =
+ true
+ product[options][2][price_type]
+
+
+ true
+ sku-two
+ =
+ true
+ product[options][2][sku]
+
+
+ true
+ 1
+ =
+ true
+ product[options][2][sort_order]
+
+
+ true
+ Field Title
+ =
+ true
+ product[options][2][title]
+
+
+ true
+ field
+ =
+ true
+ product[options][2][type]
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ true
+
+
+ true
+ 4
+ =
+ true
+ new-variations-attribute-set-id
+ true
+
+
+ true
+
+ =
+ true
+ product[configurable_variation]
+ true
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[related][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[related][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[upsell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[upsell][0][position]
+
+
+ true
+ ${related_product_id}
+ =
+ true
+ links[crosssell][0][id]
+
+
+ true
+ 1
+ =
+ true
+ links[crosssell][0][position]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ violation
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminProductEditingPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Edit Product");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx
+ import java.util.ArrayList;
+ import java.util.HashMap;
+ import java.util.Random;
+
+ try {
+ Random random = new Random();
+ if (${seedForRandom} > 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 > 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 >= 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);
+}
+
+
+ false
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Product
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ simple_product_name
+ ,"name":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ simple_product_sku
+ ,"sku":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ simple_product_category_id
+ ,"category_ids":."(\d+)".
+ $1$
+
+ 1
+
+
+
+
+ Passing arguments between threads
+ //Additional category to be added
+ import java.util.Random;
+
+ Random randomGenerator = new Random();
+ if (${seedForRandom} > 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() > 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");
+
+
+
+ false
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ ${simple_product_name}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ ${simple_product_sku}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ false
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[quantity_and_stock_status][qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ false
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ false
+
+
+ true
+ ${simple_product_category_id}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ <p>Full simple product Description ${simple_product_id} Edited</p>
+ =
+ true
+ product[description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ false
+
+
+ true
+
+ =
+ true
+ product[configurable_variations]
+ false
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ false
+
+
+ true
+
+ =
+ true
+ product[image]
+ false
+
+
+ true
+
+ =
+ true
+ product[small_image]
+ false
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+ false
+
+
+ true
+ ${simple_product_name}
+ =
+ true
+ product[url_key]
+ false
+
+
+ true
+ ${simple_product_name} Meta Title Edited
+ =
+ true
+ product[meta_title]
+ false
+
+
+ true
+ ${simple_product_name} Meta Keyword Edited
+ =
+ true
+ product[meta_keyword]
+ false
+
+
+ true
+ ${simple_product_name} Meta Description Edited
+ =
+ true
+ product[meta_description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+ false
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[cost]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[stock_data][original_inventory_qty]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[stock_data][qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ false
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ false
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+ false
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ false
+
+
+ true
+
+ =
+ true
+ new-variations-attribute-set-id
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ ${simple_product_name}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ ${simple_product_sku}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ false
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[quantity_and_stock_status][qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ false
+
+
+ true
+ 1.0000
+ =
+ true
+ product[weight]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ false
+
+
+ true
+ ${simple_product_category_id}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ ${category_additional}
+ =
+ true
+ product[category_ids][]
+
+
+ true
+ <p>Full simple product Description ${simple_product_id} Edited</p>
+ =
+ true
+ product[description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ false
+
+
+ true
+
+ =
+ true
+ product[configurable_variations]
+ false
+
+
+ true
+ 1
+ =
+ true
+ affect_configurable_product_attributes
+ false
+
+
+ true
+
+ =
+ true
+ product[image]
+ false
+
+
+ true
+
+ =
+ true
+ product[small_image]
+ false
+
+
+ true
+
+ =
+ true
+ product[thumbnail]
+ false
+
+
+ true
+ ${simple_product_name}
+ =
+ true
+ product[url_key]
+ false
+
+
+ true
+ ${simple_product_name} Meta Title Edited
+ =
+ true
+ product[meta_title]
+ false
+
+
+ true
+ ${simple_product_name} Meta Keyword Edited
+ =
+ true
+ product[meta_keyword]
+ false
+
+
+ true
+ ${simple_product_name} Meta Description Edited
+ =
+ true
+ product[meta_description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+ false
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[cost]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[stock_data][original_inventory_qty]
+ false
+
+
+ true
+ ${quantity_new}
+ =
+ true
+ product[stock_data][qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ false
+
+
+ true
+ 10000
+ =
+ true
+ product[stock_data][max_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ false
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+ false
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ false
+
+
+ true
+
+ =
+ true
+ new-variations-attribute-set-id
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the product
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Product
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ configurable_product_name
+ ,"name":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ configurable_product_sku
+ ,"sku":"([^'"]+)",
+ $1$
+
+ 1
+
+
+
+ false
+ configurable_product_category_id
+ ,"category_ids":."(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ configurable_attribute_id
+ ,"configurable_variation":"([^'"]+)",
+ $1$
+
+ 1
+ true
+
+
+
+ false
+ configurable_matrix
+ "configurable-matrix":(\[.*?\])
+ $1$
+
+ 1
+ true
+
+
+
+ associated_products_ids
+ $.[*].id
+
+ configurable_matrix
+ VAR
+
+
+
+ false
+ configurable_product_data
+ (\{"product":.*?configurable_attributes_data.*?\})\s*<
+ $1$
+
+ 1
+
+
+
+ configurable_attributes_data
+ $.product.configurable_attributes_data
+
+ configurable_product_data
+ VAR
+
+
+
+ false
+ configurable_attribute_ids
+ "attribute_id":"(\d+)"
+ $1$
+
+ -1
+ variable
+ configurable_attributes_data
+
+
+
+ false
+ configurable_attribute_codes
+ "code":"(\w+)"
+ $1$
+
+ -1
+ variable
+ configurable_attributes_data
+
+
+
+ false
+ configurable_attribute_labels
+ "label":"(.*?)"
+ $1$
+
+ -1
+ variable
+ configurable_attributes_data
+
+
+
+ false
+ configurable_attribute_values
+ "values":(\{(?:\}|.*?\}\}))
+ $1$
+
+ -1
+ variable
+ configurable_attributes_data
+
+
+
+
+ configurable_attribute_ids
+ configurable_attribute_id
+ true
+
+
+
+ 1
+ ${configurable_attribute_ids_matchNr}
+ 1
+ attribute_counter
+
+ true
+ true
+
+
+
+ return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));
+
+
+ false
+
+
+
+ false
+ attribute_${configurable_attribute_id}_values
+ "value_index":"(\d+)"
+ $1$
+
+ -1
+ configurable_attribute_values_${attribute_counter}
+
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ ${configurable_product_name}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ ${configurable_product_sku}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ false
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ false
+
+
+ true
+ 3
+ =
+ true
+ product[weight]
+ false
+
+
+ true
+ ${configurable_product_category_id}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ ${category_additional}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ <p>Configurable product description ${configurable_product_id} Edited</p>
+ =
+ true
+ product[description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Title Edited
+ =
+ true
+ product[meta_title]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Keyword Edited
+ =
+ true
+ product[meta_keyword]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Description Edited
+ =
+ true
+ product[meta_description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+ false
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[cost]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ false
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+ false
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ false
+
+
+ true
+ ${configurable_attribute_id}
+ =
+ true
+ product[configurable_variation]
+ false
+
+
+ true
+ ${configurable_product_name}
+ =
+ true
+ product[url_key]
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_message_available]
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_wrapping_available]
+
+
+ true
+ 4
+ =
+ true
+ product[visibility]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 50
+ =
+ true
+ product[stock_data][qty]
+ false
+
+
+ true
+ configurable
+ =
+ true
+ product[stock_data][type_id]
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ false
+
+
+ try {
+ int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
+ for (int i = 1; i <= 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 <= 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);
+ }
+
+
+
+
+ {"error":false}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ ajax
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ ${configurable_product_name}
+ =
+ true
+ product[name]
+ false
+
+
+ true
+ ${configurable_product_sku}
+ =
+ true
+ product[sku]
+ false
+
+
+ true
+ ${price_new}
+ =
+ true
+ product[price]
+ false
+
+
+ true
+ 2
+ =
+ true
+ product[tax_class_id]admin
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[quantity_and_stock_status][is_in_stock]
+ false
+
+
+ true
+ 3
+ =
+ true
+ product[weight]
+ false
+
+
+ true
+ ${configurable_product_category_id}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ ${category_additional}
+ =
+ true
+ product[category_ids][]
+ false
+
+
+ true
+ <p>Configurable product description ${configurable_product_id} Edited</p>
+ =
+ true
+ product[description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[status]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Title Edited
+ =
+ true
+ product[meta_title]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Keyword Edited
+ =
+ true
+ product[meta_keyword]
+ false
+
+
+ true
+ ${configurable_product_name} Meta Description Edited
+ =
+ true
+ product[meta_description]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[website_ids][]
+ false
+
+
+ true
+ ${special_price_new}
+ =
+ true
+ product[special_price]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_from_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[special_to_date]
+ false
+
+
+ true
+
+ =
+ true
+ product[cost]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_manage_stock]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_min_sale_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_max_sale_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_qty_decimal]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][is_decimal_divided]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_backorders]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][notify_stock_qty]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_notify_stock_qty]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][enable_qty_increments]
+ false
+
+
+ true
+ 0
+ =
+ true
+ product[stock_data][qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][use_config_qty_increments]
+ false
+
+
+ true
+ 1
+ =
+ true
+ product[stock_data][is_in_stock]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_from]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_design_to]
+ false
+
+
+ true
+
+ =
+ true
+ product[custom_layout_update]
+ false
+
+
+ true
+
+ =
+ true
+ product[page_layout]
+ false
+
+
+ true
+ container2
+ =
+ true
+ product[options_container]
+ false
+
+
+ true
+ ${configurable_attribute_id}
+ =
+ true
+ product[configurable_variation]
+ false
+
+
+ true
+ ${configurable_product_name}
+ =
+ true
+ product[url_key]
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_message_available]
+
+
+ true
+ 1
+ =
+ true
+ product[use_config_gift_wrapping_available]
+
+
+ true
+ 4
+ =
+ true
+ product[visibility]
+
+
+ true
+ 1
+ =
+ true
+ product[product_has_weight]
+ true
+
+
+ true
+ 50
+ =
+ true
+ product[stock_data][qty]
+ false
+
+
+ true
+ configurable
+ =
+ true
+ product[stock_data][type_id]
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ false
+
+
+ try {
+ int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
+ for (int i = 1; i <= 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 <= 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);
+ }
+
+
+
+
+ You saved the product
+
+ Assertion.response_data
+ false
+ 2
+ if have trouble see messages-message-error
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminReturnsManagementPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Returns Management");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx
+
+
+
+ Create New Order
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ sales_order_grid
+ =
+ true
+ namespace
+
+
+ true
+
+ =
+ true
+ search
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+
+
+ true
+ 200
+ =
+ true
+ paging[pageSize]
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+
+
+ true
+ increment_id
+ =
+ true
+ sorting[field]
+
+
+ true
+ desc
+ =
+ true
+ sorting[direction]
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ pending
+ =
+ true
+ filters[status]
+ true
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx
+
+
+
+ totalRecords
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ sales_order_grid
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ 200
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ increment_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+ true
+ pending
+ =
+ true
+ filters[status]
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx
+
+
+
+ totalRecords
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ order_numbers
+ \"increment_id\":\"(\d+)\"\,
+ $1$
+
+ -1
+ simple_products
+
+
+
+ false
+ order_ids
+ \"entity_id\":\"(\d+)\"\,
+ $1$
+
+ -1
+ simple_products
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx
+
+ 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} > 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);
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx
+
+
+
+ #${order_number}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ order_status
+ <span id="order_status">([^<]+)</span>
+ $1$
+
+ 1
+ simple_products
+
+
+
+
+
+ "${order_status}" == "Pending"
+ false
+ mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx
+
+
+
+ Invoice Totals
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ item_ids
+ <div id="order_item_(\d+)_title"\s*class="product-title">
+ $1$
+
+ -1
+ simple_products
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ 1
+ =
+ true
+ invoice[items][${item_ids_1}]
+
+
+ true
+ 1
+ =
+ true
+ invoice[items][${item_ids_2}]
+
+
+ true
+ Invoiced
+ =
+ true
+ invoice[comment_text]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx
+
+
+
+ The invoice has been created
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx
+
+
+
+ New Memo
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ 1
+ =
+ true
+ creditmemo[items][${item_ids_1}][qty]
+
+
+ true
+ 1
+ =
+ true
+ creditmemo[items][${item_ids_2}][qty]
+
+
+ true
+ 1
+ =
+ true
+ creditmemo[do_offline]
+
+
+ true
+ Credit Memo added
+ =
+ true
+ creditmemo[comment_text]
+
+
+ true
+ 10
+ =
+ true
+ creditmemo[shipping_amount]
+
+
+ true
+ 0
+ =
+ true
+ creditmemo[adjustment_positive]
+
+
+ true
+ 0
+ =
+ true
+ creditmemo[adjustment_negative]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx
+
+
+
+ You created the credit memo
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}
+ mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminBrowseCustomerGridPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Browse Customer Grid");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+
+ 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");
+
+ javascript
+ mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx
+
+
+ $.totalRecords
+ 0
+ true
+ false
+ true
+ true
+
+
+
+ entity_total_records
+ $.totalRecords
+
+
+ BODY
+
+
+
+
+
+
+ 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);
+
+ javascript
+
+
+
+
+
+ 1
+ ${grid_pages_count}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ 1
+ ${grid_pages_count_filtered}
+ 1
+ page_number
+
+ true
+ false
+ mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx
+
+
+
+ grid_sort_field
+ grid_sort_field
+ true
+ 0
+ 3
+
+
+
+ grid_sort_order
+ grid_sort_order
+ true
+ 0
+ 2
+
+
+
+
+
+
+ true
+ ${grid_namespace}
+ =
+ true
+ namespace
+ false
+
+
+ true
+ ${grid_admin_browse_filter_text}
+ =
+ true
+ filters[${grid_filter_field}]
+ false
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ false
+
+
+ true
+ ${grid_entity_page_size}
+ =
+ true
+ paging[pageSize]
+ false
+
+
+ true
+ ${page_number}
+ =
+ true
+ paging[current]
+ false
+
+
+ true
+ ${grid_sort_field}
+ =
+ true
+ sorting[field]
+ false
+
+
+ true
+ ${grid_sort_order}
+ =
+ true
+ sorting[direction]
+ false
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ \"totalRecords\":[^0]\d*
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminCreateOrderPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Create Order");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ javascript
+
+
+
+
+ vars.put("alabama_region_id", props.get("alabama_region_id"));
+ vars.put("california_region_id", props.get("california_region_id"));
+
+ mpaf/tool/fragments/ce/common/get_region_data.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx
+ import org.apache.jmeter.samplers.SampleResult;
+import java.util.Random;
+Random random = new Random();
+if (${seedForRandom} > 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);
+}
+
+
+ true
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_create/start/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ Detected the start of a redirect chain
+
+
+
+
+
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ */*
+
+
+
+
+
+ true
+
+
+
+ false
+ {"username":"${admin_user}","password":"${admin_password}"}
+ =
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/integration/admin/token
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ admin_token
+ $
+
+
+ BODY
+
+
+
+
+ ^[a-z0-9-]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_token
+
+
+
+
+
+
+ Authorization
+ Bearer ${admin_token}
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ attribute_ids
+ $.[*].attribute_id
+ NO_VALUE
+
+ BODY
+
+
+
+ option_values
+ $.[*].values[0].value_index
+ NO_VALUE
+
+ BODY
+
+
+
+
+
+
+
+
+ true
+ item[${simple_product_1_id}][qty]
+ 1
+ =
+ true
+
+
+ true
+ item[${simple_product_2_id}][qty]
+ 1
+ =
+ true
+
+
+ true
+ item[${configurable_product_1_id}][qty]
+ 1
+ =
+ true
+
+
+ true
+ customer_id
+ ${customer_id}
+ =
+ true
+
+
+ true
+ store_id
+ 1
+ =
+ true
+
+
+ true
+ currency_id
+
+ =
+ true
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+ true
+ payment[method]
+ checkmo
+ =
+ true
+
+
+ true
+ reset_shipping
+ 1
+ =
+ true
+
+
+ true
+ json
+ 1
+ =
+ true
+
+
+ true
+ as_js_varname
+ iFrameResponse
+ =
+ true
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ Detected the start of a redirect chain
+
+
+
+ false
+
+
+ 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 < 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);
+}
+
+
+
+
+
+
+
+ true
+ collect_shipping_rates
+ 1
+ =
+ true
+
+
+ true
+ customer_id
+ ${customer_id}
+ =
+ true
+
+
+ true
+ store_id
+ 1
+ =
+ true
+
+
+ true
+ currency_id
+ false
+ =
+ true
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+ true
+ payment[method]
+ checkmo
+ =
+ true
+
+
+ true
+ json
+ true
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ shipping_method
+ Flat Rate
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_create/index/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ Detected the start of a redirect chain
+
+
+
+
+ Select from existing customer addresses
+ Submit Order
+ Items Ordered
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+ true
+ limit
+ 20
+ =
+ true
+
+
+ true
+ entity_id
+
+ =
+ true
+
+
+ true
+ name
+
+ =
+ true
+
+
+ true
+ email
+
+ =
+ true
+
+
+ true
+ Telephone
+
+ =
+ true
+
+
+ true
+ billing_postcode
+
+ =
+ true
+
+
+ true
+ billing_country_id
+
+ =
+ true
+
+
+ true
+ billing_regione
+
+ =
+ true
+
+
+ true
+ store_name
+
+ =
+ true
+
+
+ true
+ page
+ 1
+ =
+ true
+
+
+ true
+ order[currency]
+ USD
+ =
+ true
+
+
+ true
+ sku
+
+ =
+ true
+
+
+ true
+ qty
+
+ =
+ true
+
+
+ true
+ limit
+ 20
+ =
+ true
+
+
+ true
+ entity_id
+
+ =
+ true
+
+
+ true
+ name
+
+ =
+ true
+
+
+ true
+ sku
+
+ =
+ true
+
+
+ true
+ price[from]
+
+ =
+ true
+
+
+ true
+ price[to]
+
+ =
+ true
+
+
+ true
+ in_products
+
+ =
+ true
+
+
+ true
+ page
+ 1
+ =
+ true
+
+
+ true
+ coupon_code
+
+ =
+ true
+
+
+ true
+ order[account][group_id]
+ 1
+ =
+ true
+
+
+ true
+ order[account][email]
+ user_${customer_id}@example.com
+ =
+ true
+
+
+ true
+ order[billing_address][customer_address_id]
+
+ =
+ true
+
+
+ true
+ order[billing_address][prefix]
+
+ =
+ true
+
+
+ true
+ order[billing_address][firstname]
+ Anthony
+ =
+ true
+
+
+ true
+ order[billing_address][middlename]
+
+ =
+ true
+
+
+ true
+ order[billing_address][lastname]
+ Nealy
+ =
+ true
+
+
+ true
+ order[billing_address][suffix]
+
+ =
+ true
+
+
+ true
+ order[billing_address][company]
+
+ =
+ true
+
+
+ true
+ order[billing_address][street][0]
+ 123 Freedom Blvd. #123
+ =
+ true
+
+
+ true
+ order[billing_address][street][1]
+
+ =
+ true
+
+
+ true
+ order[billing_address][city]
+ Fayetteville
+ =
+ true
+
+
+ true
+ order[billing_address][country_id]
+ US
+ =
+ true
+
+
+ true
+ order[billing_address][region]
+
+ =
+ true
+
+
+ true
+ order[billing_address][region_id]
+ ${alabama_region_id}
+ =
+ true
+
+
+ true
+ order[billing_address][postcode]
+ 123123
+ =
+ true
+
+
+ true
+ order[billing_address][telephone]
+ 022-333-4455
+ =
+ true
+
+
+ true
+ order[billing_address][fax]
+
+ =
+ true
+
+
+ true
+ order[billing_address][vat_id]
+
+ =
+ true
+
+
+ true
+ shipping_same_as_billing
+ on
+ =
+ true
+
+
+ true
+ payment[method]
+ checkmo
+ =
+ true
+
+
+ true
+ order[shipping_method]
+ flatrate_flatrate
+ =
+ true
+
+
+ true
+ order[comment][customer_note]
+
+ =
+ true
+
+
+ true
+ order[comment][customer_note_notify]
+ 1
+ =
+ true
+
+
+ true
+ order[send_confirmation]
+ 1
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_create/save/
+ POST
+ true
+ false
+ true
+ true
+ false
+
+ Detected the start of a redirect chain
+
+
+
+ false
+ order_id
+ ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/
+ $1$
+
+ 1
+
+
+
+ false
+ order_item_1
+ order_item_(\d+)_title
+ $1$
+
+ 1
+
+
+
+ false
+ order_item_2
+ order_item_(\d+)_title
+ $1$
+
+ 2
+
+
+
+ false
+ order_item_3
+ order_item_(\d+)_title
+ $1$
+
+ 3
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ order_id
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ order_item_1
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ order_item_2
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ order_item_3
+
+
+
+
+ You created the order.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+ true
+ invoice[items][${order_item_1}]
+ 1
+ =
+ true
+
+
+ true
+ invoice[items][${order_item_2}]
+ 1
+ =
+ true
+
+
+ true
+ invoice[items][${order_item_3}]
+ 1
+ =
+ true
+
+
+ true
+ invoice[comment_text]
+
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ Detected the start of a redirect chain
+
+
+
+
+ The invoice has been created.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ form_key
+ ${admin_form_key}
+ =
+ true
+
+
+ true
+ shipment[items][${order_item_1}]
+ 1
+ =
+ true
+
+
+ true
+ shipment[items][${order_item_2}]
+ 1
+ =
+ true
+
+
+ true
+ shipment[items][${order_item_3}]
+ 1
+ =
+ true
+
+
+ true
+ shipment[comment_text]
+
+ =
+ true
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ Detected the start of a redirect chain
+
+
+
+
+ The shipment has been created.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminCategoryManagementPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Category Management");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx
+
+
+
+ javascript
+
+
+
+ random = new java.util.Random();
+if (${seedForRandom} > 0) {
+random.setSeed(${seedForRandom} + ${__threadNum});
+}
+
+/**
+ * Get unique ids for fix concurrent category saving
+ */
+function getNextProductNumber(i) {
+ number = productsVariationsSize * ${__threadNum} - i;
+ if (number >= 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<= 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));
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ Accept-Language
+ en-US,en;q=0.5
+
+
+ Accept
+ text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+
+
+ User-Agent
+ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+
+
+ Accept-Encoding
+ gzip, deflate
+
+
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ Accept-Language
+ en-US,en;q=0.5
+
+
+ Accept
+ text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+
+
+ User-Agent
+ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+
+
+ Accept-Encoding
+ gzip, deflate
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ <title>New Category
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ id
+
+
+ true
+ ${parent_category_id}
+ =
+ true
+ parent
+
+
+ true
+
+ =
+ true
+ path
+
+
+ true
+
+ =
+ true
+ store_id
+
+
+ true
+ 0
+ =
+ true
+ is_active
+
+
+ true
+ 0
+ =
+ true
+ include_in_menu
+
+
+ true
+ 1
+ =
+ true
+ is_anchor
+
+
+ true
+ true
+ =
+ true
+ use_config[available_sort_by]
+
+
+ true
+ true
+ =
+ true
+ use_config[default_sort_by]
+
+
+ true
+ true
+ =
+ true
+ use_config[filter_price_range]
+
+
+ true
+ false
+ =
+ true
+ use_default[url_key]
+
+
+ true
+ 0
+ =
+ true
+ url_key_create_redirect
+
+
+ true
+ 0
+ =
+ true
+ custom_use_parent_settings
+
+
+ true
+ 0
+ =
+ true
+ custom_apply_to_products
+
+
+ true
+ Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ name
+
+
+ true
+ admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ url_key
+
+
+ true
+
+ =
+ true
+ meta_title
+
+
+ true
+
+ =
+ true
+ description
+
+
+ true
+ PRODUCTS
+ =
+ true
+ display_mode
+
+
+ true
+ position
+ =
+ true
+ default_sort_by
+
+
+ true
+
+ =
+ true
+ meta_keywords
+
+
+ true
+
+ =
+ true
+ meta_description
+
+
+ true
+
+ =
+ true
+ custom_layout_update
+
+
+ false
+ {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}
+ =
+ true
+ category_products
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/save/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+ URL
+ admin_category_id
+ /catalog/category/edit/id/(\d+)/
+ $1$
+
+ 1
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_id
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ Accept-Language
+ en-US,en;q=0.5
+
+
+ Accept
+ text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+
+
+ User-Agent
+ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+
+
+ Accept-Encoding
+ gzip, deflate
+
+
+
+
+
+ false
+ admin_category_entity_id
+ "entity_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_attribute_set_id
+ "attribute_set_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_parent_id
+ "parent_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_created_at
+ "created_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_updated_at
+ "updated_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_path
+ "entity_id":(.+)"path":"([^\"]+)"
+ $2$
+
+ 1
+
+
+
+ false
+ admin_category_level
+ "level":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_name
+ "entity_id":(.+)"name":"([^"]+)"
+ $2$
+
+ 1
+
+
+
+ false
+ admin_category_url_key
+ "url_key":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_category_url_path
+ "url_path":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_entity_id
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_attribute_set_id
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_parent_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_created_at
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_updated_at
+
+
+
+
+ ^[\d\\\/]+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_path
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_level
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_name
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_url_key
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_category_url_path
+
+
+
+
+ ${simple_product_1_name}
+ ${simple_product_2_name}
+ ${simple_product_3_name}
+ ${simple_product_4_name}
+ ${simple_product_5_name}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ true
+ ${admin_category_id}
+ =
+ true
+ id
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ append
+ =
+ true
+ point
+
+
+ true
+ ${new_parent_category_id}
+ =
+ true
+ pid
+
+
+ true
+ ${parent_category_id}
+ =
+ true
+ paid
+
+
+ true
+ 0
+ =
+ true
+ aid
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/move/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You deleted the category.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminPromotionRulesPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Promotion Rules");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales_rule/promo_quote/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales_rule/promo_quote/new
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ true
+
+
+ true
+ 1--1
+ =
+ true
+ id
+
+
+ true
+ Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal
+ =
+ true
+ type
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+
+ true
+ Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ name
+
+
+ true
+ 0
+ =
+ true
+ is_active
+
+
+ true
+ 0
+ =
+ true
+ use_auto_generation
+
+
+ true
+ 1
+ =
+ true
+ is_rss
+
+
+ true
+ 0
+ =
+ true
+ apply_to_shipping
+
+
+ true
+ 0
+ =
+ true
+ stop_rules_processing
+
+
+ true
+
+ =
+ true
+ coupon_code
+
+
+ true
+
+ =
+ true
+ uses_per_coupon
+
+
+ true
+
+ =
+ true
+ uses_per_customer
+
+
+ true
+
+ =
+ true
+ sort_order
+
+
+ true
+ 5
+ =
+ true
+ discount_amount
+
+
+ true
+ 0
+ =
+ true
+ discount_qty
+
+
+ true
+
+ =
+ true
+ discount_step
+
+
+ true
+
+ =
+ true
+ reward_points_delta
+
+
+ true
+
+ =
+ true
+ store_labels[0]
+
+
+ true
+ Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}
+ =
+ true
+ description
+
+
+ true
+ 1
+ =
+ true
+ coupon_type
+
+
+ true
+ cart_fixed
+ =
+ true
+ simple_action
+
+
+ true
+ 1
+ =
+ true
+ website_ids[0]
+
+
+ true
+ 0
+ =
+ true
+ customer_group_ids[0]
+
+
+ true
+
+ =
+ true
+ from_date
+
+
+ true
+
+ =
+ true
+ to_date
+
+
+ true
+ Magento\SalesRule\Model\Rule\Condition\Combine
+ =
+ true
+ rule[conditions][1][type]
+
+
+ true
+ all
+ =
+ true
+ rule[conditions][1][aggregator]
+
+
+ true
+ 1
+ =
+ true
+ rule[conditions][1][value]
+
+
+ true
+ Magento\SalesRule\Model\Rule\Condition\Address
+ =
+ true
+ rule[conditions][1--1][type]
+
+
+ true
+ base_subtotal
+ =
+ true
+ rule[conditions][1--1][attribute]
+
+
+ true
+ >=
+ =
+ true
+ rule[conditions][1--1][operator]
+
+
+ true
+ 100
+ =
+ true
+ rule[conditions][1--1][value]
+
+
+ true
+
+ =
+ true
+ rule[conditions][1][new_chlid]
+
+
+ true
+ Magento\SalesRule\Model\Rule\Condition\Product\Combine
+ =
+ true
+ rule[actions][1][type]
+
+
+ true
+ all
+ =
+ true
+ rule[actions][1][aggregator]
+
+
+ true
+ 1
+ =
+ true
+ rule[actions][1][value]
+
+
+ true
+
+ =
+ true
+ rule[actions][1][new_child]
+
+
+ true
+
+ =
+ true
+ store_labels[1]
+
+
+ true
+
+ =
+ true
+ store_labels[2]
+
+
+ true
+
+ =
+ true
+ related_banners
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales_rule/promo_quote/save/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ You saved the rule.
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminCustomerManagementPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Customer Management");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/customer/index
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ Accept-Language
+ en-US,en;q=0.5
+
+
+ Accept
+ text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+
+
+ User-Agent
+ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+
+
+ Accept-Encoding
+ gzip, deflate
+
+
+
+
+
+
+
+
+
+ true
+ customer_listing
+ =
+ true
+ namespace
+
+
+ true
+
+ =
+ true
+ search
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+
+
+ true
+ 20
+ =
+ true
+ paging[pageSize]
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+
+
+
+
+
+
+
+ true
+ customer_listing
+ =
+ true
+ namespace
+
+
+ true
+ Lastname
+ =
+ true
+ search
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+
+
+ true
+ 20
+ =
+ true
+ paging[pageSize]
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+
+
+ true
+ entity_id
+ =
+ true
+ sorting[field]
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+
+ X-Requested-With
+ XMLHttpRequest
+
+
+
+
+
+ false
+ customer_edit_url_path
+ actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",
+ /customer/index/edit/id/$2$/
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ customer_edit_url_path
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}${customer_edit_url_path}
+ GET
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ Customer Information
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_customer_entity_id
+ "entity_id":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_website_id
+ "website_id":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_firstname
+ "firstname":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_lastname
+ "lastname":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_email
+ "email":"([^\@]+@[^.]+.[^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_group_id
+ "group_id":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_store_id
+ "store_id":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_created_at
+ "created_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_updated_at
+ "updated_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_is_active
+ "is_active":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_disable_auto_group_change
+ "disable_auto_group_change":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_created_in
+ "created_in":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_dob
+ "dob":"(\d+)-(\d+)-(\d+)"
+ $2$/$3$/$1$
+
+ 1
+
+
+
+ false
+ admin_customer_default_billing
+ "default_billing":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_default_shipping
+ "default_shipping":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_gender
+ "gender":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_failures_num
+ "failures_num":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_entity_id
+ _address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_created_at
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_updated_at
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_is_active
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_city
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_country_id
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_firstname
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_lastname
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_postcode
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_region
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_region_id
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_street
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_telephone
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+ false
+ admin_customer_address_customer_id
+ _address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"
+ $1$
+
+ 1
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_entity_id
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_website_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_firstname
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_lastname
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_email
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_group_id
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_store_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_created_at
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_updated_at
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_is_active
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_disable_auto_group_change
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_created_in
+
+
+
+
+ ^\d+/\d+/\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_dob
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_default_billing
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_default_shipping
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_gender
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_failures_num
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_entity_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_created_at
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_updated_at
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_is_active
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_city
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_country_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_firstname
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_lastname
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_postcode
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_region
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_region_id
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_street
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_telephone
+
+
+
+
+ ^\d+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_customer_address_customer_id
+
+
+
+
+
+ Accept-Language
+ en-US,en;q=0.5
+
+
+ Accept
+ text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+
+
+ User-Agent
+ Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
+
+
+ Accept-Encoding
+ gzip, deflate
+
+
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+ true
+ ${admin_customer_entity_id}
+ =
+ true
+ customer[entity_id]
+
+
+ true
+ ${admin_customer_website_id}
+ =
+ true
+ customer[website_id]
+
+
+ true
+ ${admin_customer_email}
+ =
+ true
+ customer[email]
+
+
+ true
+ ${admin_customer_group_id}
+ =
+ true
+ customer[group_id]
+
+
+ true
+ ${admin_customer_store_id}
+ =
+ true
+ customer[store_id]
+
+
+ true
+ ${admin_customer_created_at}
+ =
+ true
+ customer[created_at]
+
+
+ true
+ ${admin_customer_updated_at}
+ =
+ true
+ customer[updated_at]
+
+
+ true
+ ${admin_customer_is_active}
+ =
+ true
+ customer[is_active]
+
+
+ true
+ ${admin_customer_disable_auto_group_change}
+ =
+ true
+ customer[disable_auto_group_change]
+
+
+ true
+ ${admin_customer_created_in}
+ =
+ true
+ customer[created_in]
+
+
+ true
+
+ =
+ true
+ customer[prefix]
+
+
+ true
+ ${admin_customer_firstname} 1
+ =
+ true
+ customer[firstname]
+
+
+ true
+
+ =
+ true
+ customer[middlename]
+
+
+ true
+ ${admin_customer_lastname} 1
+ =
+ true
+ customer[lastname]
+
+
+ true
+
+ =
+ true
+ customer[suffix]
+
+
+ true
+ ${admin_customer_dob}
+ =
+ true
+ customer[dob]
+
+
+ true
+ ${admin_customer_default_billing}
+ =
+ true
+ customer[default_billing]
+
+
+ true
+ ${admin_customer_default_shipping}
+ =
+ true
+ customer[default_shipping]
+
+
+ true
+
+ =
+ true
+ customer[taxvat]
+
+
+ true
+ ${admin_customer_gender}
+ =
+ true
+ customer[gender]
+
+
+ true
+ ${admin_customer_failures_num}
+ =
+ true
+ customer[failures_num]
+
+
+ true
+ ${admin_customer_store_id}
+ =
+ true
+ customer[sendemail_store_id]
+
+
+ true
+ ${admin_customer_address_entity_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][entity_id]
+
+
+ true
+ ${admin_customer_address_created_at}
+ =
+ true
+ address[${admin_customer_address_entity_id}][created_at]
+
+
+ true
+ ${admin_customer_address_updated_at}
+ =
+ true
+ address[${admin_customer_address_entity_id}][updated_at]
+
+
+ true
+ ${admin_customer_address_is_active}
+ =
+ true
+ address[${admin_customer_address_entity_id}][is_active]
+
+
+ true
+ ${admin_customer_address_city}
+ =
+ true
+ address[${admin_customer_address_entity_id}][city]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][company]
+
+
+ true
+ ${admin_customer_address_country_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][country_id]
+
+
+ true
+ ${admin_customer_address_firstname}
+ =
+ true
+ address[${admin_customer_address_entity_id}][firstname]
+
+
+ true
+ ${admin_customer_address_lastname}
+ =
+ true
+ address[${admin_customer_address_entity_id}][lastname]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][middlename]
+
+
+ true
+ ${admin_customer_address_postcode}
+ =
+ true
+ address[${admin_customer_address_entity_id}][postcode]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][prefix]
+
+
+ true
+ ${admin_customer_address_region}
+ =
+ true
+ address[${admin_customer_address_entity_id}][region]
+
+
+ true
+ ${admin_customer_address_region_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][region_id]
+
+
+ true
+ ${admin_customer_address_street}
+ =
+ true
+ address[${admin_customer_address_entity_id}][street][0]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][street][1]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][suffix]
+
+
+ true
+ ${admin_customer_address_telephone}
+ =
+ true
+ address[${admin_customer_address_entity_id}][telephone]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][vat_id]
+
+
+ true
+ ${admin_customer_address_customer_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][customer_id]
+
+
+ true
+ true
+ =
+ true
+ address[${admin_customer_address_entity_id}][default_billing]
+
+
+ true
+ true
+ =
+ true
+ address[${admin_customer_address_entity_id}][default_shipping]
+
+
+ true
+
+ =
+ true
+ address[new_0][prefix]
+
+
+ true
+ John
+ =
+ true
+ address[new_0][firstname]
+
+
+ true
+
+ =
+ true
+ address[new_0][middlename]
+
+
+ true
+ Doe
+ =
+ true
+ address[new_0][lastname]
+
+
+ true
+
+ =
+ true
+ address[new_0][suffix]
+
+
+ true
+ Test Company
+ =
+ true
+ address[new_0][company]
+
+
+ true
+ Folsom
+ =
+ true
+ address[new_0][city]
+
+
+ true
+ 95630
+ =
+ true
+ address[new_0][postcode]
+
+
+ true
+ 1234567890
+ =
+ true
+ address[new_0][telephone]
+
+
+ true
+
+ =
+ true
+ address[new_0][vat_id]
+
+
+ true
+ false
+ =
+ true
+ address[new_0][default_billing]
+
+
+ true
+ false
+ =
+ true
+ address[new_0][default_shipping]
+
+
+ true
+ 123 Main
+ =
+ true
+ address[new_0][street][0]
+
+
+ true
+
+ =
+ true
+ address[new_0][street][1]
+
+
+ true
+
+ =
+ true
+ address[new_0][region]
+
+
+ true
+ US
+ =
+ true
+ address[new_0][country_id]
+
+
+ true
+ ${admin_customer_address_region_id}
+ =
+ true
+ address[new_0][region_id]
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/customer/index/validate/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 16
+
+
+
+
+
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+ true
+ ${admin_customer_entity_id}
+ =
+ true
+ customer[entity_id]
+
+
+ true
+ ${admin_customer_website_id}
+ =
+ true
+ customer[website_id]
+
+
+ true
+ ${admin_customer_email}
+ =
+ true
+ customer[email]
+
+
+ true
+ ${admin_customer_group_id}
+ =
+ true
+ customer[group_id]
+
+
+ true
+ ${admin_customer_store_id}
+ =
+ true
+ customer[store_id]
+
+
+ true
+ ${admin_customer_created_at}
+ =
+ true
+ customer[created_at]
+
+
+ true
+ ${admin_customer_updated_at}
+ =
+ true
+ customer[updated_at]
+
+
+ true
+ ${admin_customer_is_active}
+ =
+ true
+ customer[is_active]
+
+
+ true
+ ${admin_customer_disable_auto_group_change}
+ =
+ true
+ customer[disable_auto_group_change]
+
+
+ true
+ ${admin_customer_created_in}
+ =
+ true
+ customer[created_in]
+
+
+ true
+
+ =
+ true
+ customer[prefix]
+
+
+ true
+ ${admin_customer_firstname} 1
+ =
+ true
+ customer[firstname]
+
+
+ true
+
+ =
+ true
+ customer[middlename]
+
+
+ true
+ ${admin_customer_lastname} 1
+ =
+ true
+ customer[lastname]
+
+
+ true
+
+ =
+ true
+ customer[suffix]
+
+
+ true
+ ${admin_customer_dob}
+ =
+ true
+ customer[dob]
+
+
+ true
+ ${admin_customer_default_billing}
+ =
+ true
+ customer[default_billing]
+
+
+ true
+ ${admin_customer_default_shipping}
+ =
+ true
+ customer[default_shipping]
+
+
+ true
+
+ =
+ true
+ customer[taxvat]
+
+
+ true
+ ${admin_customer_gender}
+ =
+ true
+ customer[gender]
+
+
+ true
+ ${admin_customer_failures_num}
+ =
+ true
+ customer[failures_num]
+
+
+ true
+ ${admin_customer_store_id}
+ =
+ true
+ customer[sendemail_store_id]
+
+
+ true
+ ${admin_customer_address_entity_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][entity_id]
+
+
+
+ true
+ ${admin_customer_address_created_at}
+ =
+ true
+ address[${admin_customer_address_entity_id}][created_at]
+
+
+ true
+ ${admin_customer_address_updated_at}
+ =
+ true
+ address[${admin_customer_address_entity_id}][updated_at]
+
+
+ true
+ ${admin_customer_address_is_active}
+ =
+ true
+ address[${admin_customer_address_entity_id}][is_active]
+
+
+ true
+ ${admin_customer_address_city}
+ =
+ true
+ address[${admin_customer_address_entity_id}][city]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][company]
+
+
+ true
+ ${admin_customer_address_country_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][country_id]
+
+
+ true
+ ${admin_customer_address_firstname}
+ =
+ true
+ address[${admin_customer_address_entity_id}][firstname]
+
+
+ true
+ ${admin_customer_address_lastname}
+ =
+ true
+ address[${admin_customer_address_entity_id}][lastname]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][middlename]
+
+
+ true
+ ${admin_customer_address_postcode}
+ =
+ true
+ address[${admin_customer_address_entity_id}][postcode]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][prefix]
+
+
+ true
+ ${admin_customer_address_region}
+ =
+ true
+ address[${admin_customer_address_entity_id}][region]
+
+
+ true
+ ${admin_customer_address_region_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][region_id]
+
+
+ true
+ ${admin_customer_address_street}
+ =
+ true
+ address[${admin_customer_address_entity_id}][street][0]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][street][1]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][suffix]
+
+
+ true
+ ${admin_customer_address_telephone}
+ =
+ true
+ address[${admin_customer_address_entity_id}][telephone]
+
+
+ true
+
+ =
+ true
+ address[${admin_customer_address_entity_id}][vat_id]
+
+
+ true
+ ${admin_customer_address_customer_id}
+ =
+ true
+ address[${admin_customer_address_entity_id}][customer_id]
+
+
+ true
+ true
+ =
+ true
+ address[${admin_customer_address_entity_id}][default_billing]
+
+
+ true
+ true
+ =
+ true
+ address[${admin_customer_address_entity_id}][default_shipping]
+
+
+ true
+
+ =
+ true
+ address[new_0][prefix]
+
+
+ true
+ John
+ =
+ true
+ address[new_0][firstname]
+
+
+ true
+
+ =
+ true
+ address[new_0][middlename]
+
+
+ true
+ Doe
+ =
+ true
+ address[new_0][lastname]
+
+
+ true
+
+ =
+ true
+ address[new_0][suffix]
+
+
+ true
+ Test Company
+ =
+ true
+ address[new_0][company]
+
+
+ true
+ Folsom
+ =
+ true
+ address[new_0][city]
+
+
+ true
+ 95630
+ =
+ true
+ address[new_0][postcode]
+
+
+ true
+ 1234567890
+ =
+ true
+ address[new_0][telephone]
+
+
+ true
+
+ =
+ true
+ address[new_0][vat_id]
+
+
+ true
+ false
+ =
+ true
+ address[new_0][default_billing]
+
+
+ true
+ false
+ =
+ true
+ address[new_0][default_shipping]
+
+
+ true
+ 123 Main
+ =
+ true
+ address[new_0][street][0]
+
+
+ true
+
+ =
+ true
+ address[new_0][street][1]
+
+
+ true
+
+ =
+ true
+ address[new_0][region]
+
+
+ true
+ US
+ =
+ true
+ address[new_0][country_id]
+
+
+ true
+ 12
+ =
+ true
+ address[new_0][region_id]
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/customer/index/save/
+ POST
+ true
+ false
+ true
+ true
+ false
+
+
+
+
+
+ You saved the customer.
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ 1
+ 0
+ ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+
+
+
+ 1
+ false
+ 1
+ ${cAdminEditOrderPercentage}
+ mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx
+
+
+
+var testLabel = "${testLabel}" ? " (${testLabel})" : "";
+if (testLabel
+ && 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());
+}
+
+ javascript
+ mpaf/tool/fragments/_system/setup_label.jmx
+
+
+
+ vars.put("testLabel", "[C] Admin Edit Order");
+
+ true
+
+
+
+
+
+ function getFormKeyFromResponse()
+ {
+ var url = prev.getUrlAsString(),
+ responseCode = prev.getResponseCode(),
+ formKey = null;
+ searchPattern = /var FORM_KEY = '(.+)'/;
+ if (responseCode == "200" && url) {
+ response = prev.getResponseDataAsString();
+ formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null;
+ }
+ return formKey;
+ }
+
+ formKey = vars.get("form_key_storage");
+
+ currentFormKey = getFormKeyFromResponse();
+
+ if (currentFormKey != null && currentFormKey != formKey) {
+ vars.put("form_key_storage", currentFormKey);
+ }
+
+ javascript
+ mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx
+
+
+
+ formKey = vars.get("form_key_storage");
+ if (formKey
+ && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
+ && sampler.getMethod() == "POST")
+ {
+ arguments = sampler.getArguments();
+ for (i=0; i<arguments.getArgumentCount(); i++)
+ {
+ argument = arguments.getArgument(i);
+ if (argument.getName() == 'form_key' && argument.getValue() != formKey) {
+ log.info("admin form key updated: " + argument.getValue() + " => " + formKey);
+ argument.setValue(formKey);
+ }
+ }
+ }
+
+ javascript
+
+
+
+
+
+ false
+ mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+ get-admin-email
+ mpaf/tool/fragments/ce/lock_controller.jmx
+
+
+
+ mpaf/tool/fragments/ce/get_admin_email.jmx
+
+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);
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login.jmx
+
+
+
+ Welcome
+ <title>Magento Admin</title>
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+
+
+
+
+ ^.+$
+
+ Assertion.response_data
+ false
+ 1
+ variable
+ admin_form_key
+
+
+
+
+
+
+
+
+ true
+
+ =
+ true
+ dummy
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ ${admin_password}
+ =
+ true
+ login[password]
+
+
+ true
+ ${admin_user}
+ =
+ true
+ login[username]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/dashboard/
+ POST
+ true
+ false
+ true
+ false
+ Java
+ false
+
+ mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx
+
+
+
+ false
+ admin_form_key
+ <input name="form_key" type="hidden" value="([^'"]+)" />
+ $1$
+
+ 1
+ mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx
+
+
+
+
+
+ mpaf/tool/fragments/ce/simple_controller.jmx
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx
+
+
+
+ Create New Order
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ sales_order_grid
+ =
+ true
+ namespace
+
+
+ true
+
+ =
+ true
+ search
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+
+
+ true
+ 200
+ =
+ true
+ paging[pageSize]
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+
+
+ true
+ increment_id
+ =
+ true
+ sorting[field]
+
+
+ true
+ desc
+ =
+ true
+ sorting[direction]
+
+
+ true
+ true
+ =
+ true
+ isAjax
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ pending
+ =
+ true
+ filters[status]
+ true
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx
+
+
+
+ totalRecords
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+
+
+ true
+ sales_order_grid
+ =
+ true
+ namespace
+ true
+
+
+ true
+
+ =
+ true
+ search
+ true
+
+
+ true
+ true
+ =
+ true
+ filters[placeholder]
+ true
+
+
+ true
+ 200
+ =
+ true
+ paging[pageSize]
+ true
+
+
+ true
+ 1
+ =
+ true
+ paging[current]
+ true
+
+
+ true
+ increment_id
+ =
+ true
+ sorting[field]
+ true
+
+
+ true
+ asc
+ =
+ true
+ sorting[direction]
+ true
+
+
+ true
+ true
+ =
+ true
+ isAjax
+ true
+
+
+ true
+ pending
+ =
+ true
+ filters[status]
+
+
+ true
+ ${__time()}${__Random(1,1000000)}
+ =
+ true
+ _
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/mui/index/render/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx
+
+
+
+ totalRecords
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ order_numbers
+ \"increment_id\":\"(\d+)\"\,
+ $1$
+
+ -1
+ simple_products
+
+
+
+ false
+ order_ids
+ \"entity_id\":\"(\d+)\"\,
+ $1$
+
+ -1
+ simple_products
+
+
+
+
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx
+
+ 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} > 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);
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx
+
+
+
+ #${order_number}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ order_status
+ <span id="order_status">([^<]+)</span>
+ $1$
+
+ 1
+ simple_products
+
+
+
+
+
+ "${order_status}" == "Pending"
+ false
+ mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx
+
+
+
+
+
+ true
+ pending
+ =
+ true
+ history[status]
+ false
+
+
+ true
+ Some text
+ =
+ true
+ history[comment]
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx
+
+
+
+ Not Notified
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx
+
+
+
+ Invoice Totals
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ item_ids
+ <div id="order_item_(\d+)_title"\s*class="product-title">
+ $1$
+
+ -1
+ simple_products
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ 1
+ =
+ true
+ invoice[items][${item_ids_1}]
+
+
+ true
+ 1
+ =
+ true
+ invoice[items][${item_ids_2}]
+
+
+ true
+ Invoiced
+ =
+ true
+ invoice[comment_text]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx
+
+
+
+ The invoice has been created
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx
+
+
+
+ New Shipment
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+ true
+ ${admin_form_key}
+ =
+ true
+ form_key
+ false
+
+
+ true
+ 1
+ =
+ true
+ shipment[items][${item_ids_1}]
+
+
+ true
+ 1
+ =
+ true
+ shipment[items][${item_ids_2}]
+
+
+ true
+ Shipped
+ =
+ true
+ shipment[comment_text]
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/
+ POST
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx
+
+
+
+ The shipment has been created
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ 60000
+ 200000
+ ${request_protocol}
+
+ ${base_path}${admin_path}/admin/auth/logout/
+ GET
+ true
+ false
+ true
+ false
+ false
+
+ mpaf/tool/fragments/ce/setup/admin_logout.jmx
+
+
+
+ false
+
+
+
+ adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
+ if (adminUsersDistribution == 1) {
+ adminUserList = props.get("adminUserList");
+ adminUserList.add(vars.get("admin_user"));
+ }
+
+ mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx
+
+
+
+