false false request_protocol ${__P(request_protocol,http)} = abandonedCartByGuest ${__P(abandonedCartByGuest,0)} = abandonedCartByGuestPercent ${__P(abandonedCartByGuestPercent,100)} = abandonedCartByCustomer ${__P(abandonedCartByCustomer,0)} = abandonedCartByCustomerPercent ${__P(abandonedCartByCustomerPercent,100)} = accountManagement ${__P(accountManagement,0)} = accountManagementPercent ${__P(accountManagementPercent,100)} = admin_password ${__P(admin_password,123123q)} = admin_path ${__P(admin_path,admin)} = admin_user ${__P(admin_user,admin)} = adminBrowseCustomersGridPercent ${__P(adminBrowseCustomersGridPercent,100)} = adminBrowseCustomersGridScenario1_ViewOddGridPages ${__P(adminBrowseCustomersGridScenario1_ViewOddGridPages,0)} = adminBrowseCustomersGridScenario2_ViewEvenGridPages ${__P(adminBrowseCustomersGridScenario2_ViewEvenGridPages,0)} = adminBrowseCustomersGridScenario3_Filtering ${__P(adminBrowseCustomersGridScenario3_Filtering,0)} = adminBrowseCustomersGridScenario4_Sorting ${__P(adminBrowseCustomersGridScenario4_Sorting,0)} = adminBrowseCustomersGridScenario5_FilteringAndSorting ${__P(adminBrowseCustomersGridScenario5_FilteringAndSorting,0)} = adminBrowseOrdersGridPercent ${__P(adminBrowseOrdersGridPercent,100)} = adminBrowseOrdersGridScenario1_ViewOddGridPages ${__P(adminBrowseOrdersGridScenario1_ViewOddGridPages,0)} = adminBrowseOrdersGridScenario2_ViewEvenGridPages ${__P(adminBrowseOrdersGridScenario2_ViewEvenGridPages,0)} = adminBrowseOrdersGridScenario3_Filtering ${__P(adminBrowseOrdersGridScenario3_Filtering,0)} = adminBrowseOrdersGridScenario4_Sorting ${__P(adminBrowseOrdersGridScenario4_Sorting,0)} = adminBrowseOrdersGridScenario5_FilteringAndSorting ${__P(adminBrowseOrdersGridScenario5_FilteringAndSorting,0)} = adminBrowseProductsGridPercent ${__P(adminBrowseProductsGridPercent,100)} = adminBrowseProductsGridScenario1_ViewOddGridPages ${__P(adminBrowseProductsGridScenario1_ViewOddGridPages,0)} = adminBrowseProductsGridScenario2_ViewEvenGridPages ${__P(adminBrowseProductsGridScenario2_ViewEvenGridPages,0)} = adminBrowseProductsGridScenario3_Filtering ${__P(adminBrowseProductsGridScenario3_Filtering,0)} = adminBrowseProductsGridScenario4_Sorting ${__P(adminBrowseProductsGridScenario4_Sorting,0)} = adminBrowseProductsGridScenario5_FilteringAndSorting ${__P(adminBrowseProductsGridScenario5_FilteringAndSorting,0)} = adminCategoryCount ${__P(adminCategoryCount,0)} = adminCategoryManagement ${__P(adminCategoryManagement,0)} = adminCategoryManagementDelay ${__P(adminCategoryManagementDelay,0)} = adminCategoryManagementPercent ${__P(adminCategoryManagementPercent,100)} = adminCMSManagement ${__P(adminCMSManagement,0)} = adminCMSManagementDelay ${__P(adminCMSManagementDelay,0)} = adminCMSManagementPercent ${__P(adminCMSManagementPercent,100)} = adminCreateOrder ${__P(adminCreateOrder,0)} = adminCreateOrderPercent ${__P(adminCreateOrderPercent,100)} = adminCreateProduct ${__P(adminCreateProduct,0)} = adminCreateProductPercent ${__P(adminCreateProductPercent,100)} = adminCustomerManagement ${__P(adminCustomerManagement,0)} = adminCustomerManagementDelay ${__P(adminCustomerManagementDelay,0)} = adminCustomerManagementPercent ${__P(adminCustomerManagementPercent,100)} = adminEditOrder ${__P(adminEditOrder,0)} = adminEditOrderPercent ${__P(adminEditOrderPercent,100)} = adminEditProduct ${__P(adminEditProduct,0)} = adminEditProductPercent ${__P(adminEditProductPercent,100)} = adminExportCustomers ${__P(adminExportCustomers,0)} = adminExportProducts ${__P(adminExportProducts,0)} = adminImportCustomerBehavior ${__P(adminImportCustomerBehavior,)} = adminImportCustomerFilePath ${__P(adminImportCustomerFilePath,0)} = adminImportCustomers ${__P(adminImportCustomers,0)} = adminImportProductBehavior ${__P(adminImportProductBehavior,)} = adminImportProductFilePath ${__P(adminImportProductFilePath,0)} = adminImportProductFilePath-2 ${__P(adminImportProductFilePath-2,0)} = adminImportProducts ${__P(adminImportProducts,0)} = adminPromotionsManagement ${__P(adminPromotionsManagement,0)} = adminPromotionsManagementDelay ${__P(adminPromotionsManagementDelay,0)} = adminPromotionsManagementPercent ${__P(adminPromotionsManagementPercent,100)} = apiBrowseAndBuyFlow ${__P(apiBrowseAndBuyFlow,0)} = apiBrowseAndBuyFlowPercent ${__P(apiBrowseAndBuyFlowPercent,100)} = apiCustomerSync ${__P(apiCustomerSync,0)} = apiCustomerSyncPercent ${__P(apiCustomerSyncPercent,100)} = apiOrderInvoiceShipmentSync ${__P(apiOrderInvoiceShipmentSync,0)} = apiOrderInvoiceShipmentSyncPercent ${__P(apiOrderInvoiceShipmentSyncPercent,100)} = apiProcessOrders ${__P(apiProcessOrders,0)} = apiProcessOrdersPercent ${__P(apiProcessOrdersPercent,100)} = apiProductSync ${__P(apiProductSync,0)} = apiProductSyncPercent ${__P(apiProductSyncPercent,100)} = apiSnapshot ${__P(apiSnapshot,0)} = bamboo_build_number ${__P(bamboo_build_number,)} = base_path ${__P(base_path,)} = cache_indicator ${__P(cache_indicator,0)} = catalogBrowsingByGuest ${__P(catalogBrowsingByGuest,0)} = catalogBrowsingByGuestPercent ${__P(catalogBrowsingByGuestPercent,100)} = catalogBrowsingByCustomer ${__P(catalogBrowsingByCustomer,0)} = catalogBrowsingByCustomerPercent ${__P(catalogBrowsingByCustomerPercent,100)} = categories_count ${__P(categories_count,100)} = checkoutByGuest ${__P(checkoutByGuest,0)} = checkoutByGuestPercent ${__P(checkoutByGuestPercent,100)} = checkoutByCustomer ${__P(checkoutByCustomer,0)} = checkoutByCustomerPercent ${__P(checkoutByCustomerPercent,100)} = configurable_products_count ${__P(configurable_products_count,30)} = customer_checkout_percent ${__P(customer_checkout_percent,4)} = customer_limit ${__P(customer_limit,20)} = customer_password 123123q = customers_page_size ${__P(customers_page_size,20)} = dashboard_enabled ${__P(dashboard_enabled,0)} = files_folder ${__P(files_folder,/opt/mpaf/tool/fragments/files/)} = guest_checkout_percent ${__P(guest_checkout_percent,4)} = host ${__P(host,)} = loops ${__P(loops,1)} = lineItemsAmount ${__P(lineItemsAmount,10)} = orders ${__P(orders,0)} = orders_page_size ${__P(orders_page_size,20)} = products_page_size ${__P(products_page_size,20)} = productCompareByGuest ${__P(productCompareByGuest,0)} = productCompareByGuestPercent ${__P(productCompareByGuestPercent,100)} = productCompareDelay ${__P(productCompareDelay,0)} = productsGridMassActions ${__P(productsGridMassActions,0)} = productsGridMassActionsPercent ${__P(productsGridMassActionsPercent,100)} = ramp_period ${__P(ramp_period,0)} = redis_host ${__P(redis_host,)} = report_save_path ${__P(report_save_path,./)} = response_time_file_name ${__P(response_time_file_name,production.csv)} = reviewByCustomer ${__P(reviewByCustomer,0)} = reviewByCustomerPercent ${__P(reviewByCustomerPercent,100)} = reviewDelay ${__P(reviewDelay,0)} = scenario ${__P(scenario,)} = seedForRandom ${__P(seedForRandom,1)} = searchQuick ${__P(searchQuick,0)} = searchQuick_percent ${__P(searchQuick_percent,100)} = searchQuickFilter ${__P(searchQuickFilter,0)} = searchQuickFilter_percent ${__P(searchQuickFilter_percent,100)} = searchAdvanced ${__P(searchAdvanced,0)} = searchAdvanced_percent ${__P(searchAdvanced_percent,100)} = setupAndTearDownThread ${__P(setupAndTearDownThread,1)} = simple_products_count ${__P(simple_products_count,30)} = sprint_identifier ${__P(sprint_identifier,)} = start_time ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = starting_index ${__P(starting_index,0)} = test_duration ${__P(test_duration,900)} = think_time_deviation ${__P(think_time_deviation,1000)} = think_time_delay_offset ${__P(think_time_delay_offset,2000)} = url_suffix .html = users ${__P(users,100)} = view_catalog_percent ${__P(view_catalog_percent,62)} = view_product_add_to_cart_percent ${__P(view_product_add_to_cart_percent,30)} = website_id 1 = wishlistByCustomer ${__P(wishlistByCustomer,0)} = wishlistByCustomerPercent ${__P(wishlistByCustomerPercent,100)} = wishlistDelay ${__P(wishlistDelay,0)} = ${host} ${request_protocol} utf-8 Java 4 Accept-Language en-US,en;q=0.5 Accept application/json,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 30 ${host} / false 0 true true true stoptest false 1 ${setupAndTearDownThread} 1 1384333221000 1384333221000 false props.remove("category_url_key"); props.remove("category_url_keys_list"); props.remove("category_name"); props.remove("category_names_list"); props.remove("simple_products_list"); props.remove("configurable_products_list"); props.remove("users"); props.remove("customer_emails_list"); /* This is only used when admin is enabled. */ props.put("activeAdminThread", ""); /* Set the environment - at this time '01' or '02' */ String path = "${host}"; String environment = path.substring(4, 6); props.put("environment", environment); false Boolean stopTestOnError (String error) { log.error(error); System.out.println(error); SampleResult.setStopTest(true); return false; } if ("${host}" == "1") { return stopTestOnError("\"host\" parameter is not defined. Please define host parameter as: \"-Jhost=example.com\""); } String path = "${base_path}"; String slash = "/"; if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substring(0, 1))) { return stopTestOnError("\"base_path\" parameter is invalid. It must start and end with \"/\""); } false ${request_protocol} ${base_path}${admin_path} GET true false true false false 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 false = true dummy false ${admin_form_key} = true form_key true ${admin_password} = true login[password] true ${admin_user} = true login[username] ${request_protocol} ${base_path}${admin_path}/admin/dashboard/ POST true false true false Java false Implementation needs to be set to Java as per http://stackoverflow.com/questions/19636282/jmeter-error-in-redirect-url-for-get <title>Dashboard / Magento Admin</title> Assertion.response_data false 2 true ${admin_form_key} = true form_key true types = true massaction_prepare_key true config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api = true types ${request_protocol} ${base_path}${admin_path}/admin/cache/massEnable POST true false true false false Begin by enabling all cache types true ${admin_form_key} = true form_key true types = true massaction_prepare_key true config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api = true types ${request_protocol} ${base_path}${admin_path}/admin/cache/massRefresh POST true false true false false Refresh all cache types Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} true path = true searchCriteria[filterGroups][0][filters][0][field] true 1/2/% = true searchCriteria[filterGroups][0][filters][0][value] true like = true searchCriteria[filterGroups][0][filters][0][conditionType] true level = true searchCriteria[filterGroups][1][filters][0][field] true 2 = true searchCriteria[filterGroups][1][filters][0][value] true ${categories_count} = true searchCriteria[pageSize] ${request_protocol} ${base_path}rest/V1/categories/list GET true false false false false false category_url_keys url_key\",\"value\":\"(.*?)\" $1$ -1 false category_names name\":\"(.*?)\" $1$ -1 category_url_keys category_url_key true 1 1 category_url_key_counter false import java.util.ArrayList; // If it is first iteration of cycle then recreate category url key list if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) { categoryUrlKeysList = new ArrayList(); props.put("category_url_keys_list", categoryUrlKeysList); props.put("category_url_key", vars.get("category_url_key")); } else { categoryUrlKeysList = props.get("category_url_keys_list"); } categoryUrlKeysList.add(vars.get("category_url_key")); false category_names category_name true 1 1 category_name_counter false import java.util.ArrayList; // If it is first iteration of cycle then recreate category name list if (1 == Integer.parseInt(vars.get("category_name_counter"))) { categoryNamesList = new ArrayList(); props.put("category_names_list",categoryNamesList); props.put("category_name", vars.get("category_name")); } else { categoryNamesList = props.get("category_names_list"); } categoryNamesList.add(vars.get("category_name")); false props.put("category_url_key", vars.get("category_url_key")); props.put("category_name", vars.get("category_name")); false Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} true type_id = true searchCriteria[filterGroups][0][filters][0][field] true simple = true searchCriteria[filterGroups][0][filters][0][value] true ${simple_products_count} = true searchCriteria[pageSize] ${request_protocol} ${base_path}rest/V1/products GET true false true false false false simple_products_url_keys url_key\",\"value\":\"(.*?)\" $1$ -1 false simple_product_ids \"id\":(\d+), $1$ -1 false simple_product_names name\":\"(.*?)\" $1$ -1 simple_product_ids simple_product_id true 1 1 simple_products_counter false import java.util.ArrayList; import java.util.HashMap; import org.apache.commons.codec.binary.Base64; // If it is first iteration of cycle then recreate productList if (1 == Integer.parseInt(vars.get("simple_products_counter"))) { productList = new ArrayList(); props.put("simple_products_list", productList); } else { productList = props.get("simple_products_list"); } String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))+ vars.get("url_suffix"); encodedUrl = Base64.encodeBase64(productUrl.getBytes()); // Create product map Map productMap = new HashMap(); productMap.put("id", vars.get("simple_product_id")); productMap.put("title", vars.get("simple_product_names_" + vars.get("simple_products_counter"))); productMap.put("url_key", vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))); productMap.put("uenc", new String(encodedUrl)); // Collect products map in products list productList.add(productMap); false Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} true type_id = true searchCriteria[filterGroups][0][filters][0][field] true configurable = true searchCriteria[filterGroups][0][filters][0][value] true ${configurable_products_count} = true searchCriteria[pageSize] ${request_protocol} ${base_path}rest/V1/products GET true false true false false false configurable_products_url_keys url_key\",\"value\":\"(.*?)\" $1$ -1 false configurable_product_ids \"id\":(\d+), $1$ -1 false configurable_product_names name\":\"(.*?)\" $1$ -1 false configurable_product_skus sku\":\"(.*?)\" $1$ -1 configurable_product_ids configurable_product_id true 1 1 configurable_products_counter false import java.util.ArrayList; import java.util.HashMap; import org.apache.commons.codec.binary.Base64; // If it is first iteration of cycle then recreate productList if (1 == Integer.parseInt(vars.get("configurable_products_counter"))) { productList = new ArrayList(); props.put("configurable_products_list", productList); } else { productList = props.get("configurable_products_list"); } String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))+ vars.get("url_suffix"); encodedUrl = Base64.encodeBase64(productUrl.getBytes()); // Create product map Map productMap = new HashMap(); productMap.put("id", vars.get("configurable_product_id")); productMap.put("title", vars.get("configurable_product_names_" + vars.get("configurable_products_counter"))); productMap.put("sku", vars.get("configurable_product_skus_" + vars.get("configurable_products_counter"))); productMap.put("url_key", vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))); productMap.put("uenc", new String(encodedUrl)); // Collect products map in products list productList.add(productMap); false ${request_protocol} ${base_path}${admin_path}/customer/index/ GET true false true false false true import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.control.Cookie; CookieManager manager = sampler.getCookieManager(); Cookie cookie = new Cookie("adminhtml",vars.get("COOKIE_adminhtml"),vars.get("host"),"/",false,0); manager.add(cookie); Customers <title>Customers / Customers / Magento Admin</title> Assertion.response_data false 2 true customer_listing = true namespace true = true search true customer_since[locale]=en_US&website_id=1 = true filters[placeholder] true ${customers_page_size} = true paging[pageSize] true 1 = true paging[current] true entity_id = true sorting[field] true asc = true sorting[direction] true true = true isAjax ${request_protocol} ${base_path}${admin_path}/mui/index/render/ GET true false true false false \"totalRecords\":0 Assertion.response_data false 20 false customer_emails \"email\":\"([^"]+) $1$ -1 false customer_ids \"entity_id\":\"([^"]+) $1$ -1 customer_emails customer_email true 1 1 email_counter false import java.util.ArrayList; // If it is first iteration of cycle then recreate emailsList if (1 == Integer.parseInt(vars.get("email_counter"))) { emailsList = new ArrayList(); props.put("customer_emails_list", emailsList); } else { emailsList = props.get("customer_emails_list"); } emailsList.add(vars.get("customer_email")); false customer_ids customer_id true 1 1 id_counter false import java.util.ArrayList; // If it is first iteration of cycle then recreate idsList if (1 == Integer.parseInt(vars.get("id_counter"))) { idsList = new ArrayList(); props.put("customer_ids_list", idsList); } else { idsList = props.get("customer_ids_list"); } idsList.add(vars.get("customer_id")); false Boolean stopTestOnError (String error) { log.error(error); System.out.println(error); SampleResult.setStopTest(true); return false; } if (props.get("simple_products_list") == null) { return stopTestOnError("Cannot find simple products. Test stopped."); } if (props.get("configurable_products_list") == null) { return stopTestOnError("Cannot find configurable products. Test stopped."); } if (props.get("customer_emails_list") == null) { return stopTestOnError("Cannot find customer emails. Test stopped."); } if (props.get("category_url_keys_list") == null) { return stopTestOnError("Cannot find category url keys. Test stopped."); } if (props.get("category_names_list") == null) { return stopTestOnError("Cannot find category names. Test stopped."); } int orders = Integer.parseInt(vars.get("orders")); if (orders > 0) { int checkout_sum = Integer.parseInt(vars.get("guest_checkout_percent")) + Integer.parseInt(vars.get("customer_checkout_percent")); checkout_sum = checkout_sum > 0 ? checkout_sum : 1; int users = orders * (100 / checkout_sum); props.put("users", users); } else { props.put("users", Integer.parseInt(vars.get("users"))); } false "${cache_indicator}" == "1" || "${cache_indicator}" == "2" false // Default to disable all cache types vars.put("cache_types", "config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api"); if ("${cache_indicator}" == "1") { // Only disable Full Page Cache vars.put("cache_types", "full_page"); } false true ${admin_form_key} = true form_key true types = true massaction_prepare_key true ${cache_types} = true types ${request_protocol} ${base_path}${admin_path}/admin/cache/massDisable POST true false true false true false "${cache_indicator}" == "0" false false ${admin_form_key} = true form_key true ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET true false true false true false TRANSLATE(?s).+?<span>Enabled</span> CONFIG(?s).+?<span>Enabled</span> LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Enabled</span> BLOCK_HTML(?s).+?<span>Enabled</span> COLLECTION_DATA(?s).+?<span>Enabled</span> EAV(?s).+?<span>Enabled</span> FPC(?s).+?<span>Enabled</span> DB_DDL(?s).+?<span>Enabled</span> INTEGRATION(?s).+?<span>Enabled</span> INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> WEBSERVICE(?s).+?<span>Enabled</span> REFLECTION(?s).+?<span>Enabled</span> TARGET_RULE(?s).+?<span>Enabled</span> Assertion.response_data false 2 "${cache_indicator}" == "1" false false ${admin_form_key} = true form_key true ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET true false true false true false TRANSLATE(?s).+?<span>Enabled</span> CONFIG(?s).+?<span>Enabled</span> LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Enabled</span> BLOCK_HTML(?s).+?<span>Enabled</span> COLLECTION_DATA(?s).+?<span>Enabled</span> EAV(?s).+?<span>Enabled</span> FPC(?s).+?<span>Disabled</span> DB_DDL(?s).+?<span>Enabled</span> INTEGRATION(?s).+?<span>Enabled</span> INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> WEBSERVICE(?s).+?<span>Enabled</span> REFLECTION(?s).+?<span>Enabled</span> TARGET_RULE(?s).+?<span>Enabled</span Assertion.response_data false 2 "${cache_indicator}" == "2" false false ${admin_form_key} = true form_key true ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET true false true false true false TRANSLATE(?s).+?<span>Disabled</span> CONFIG(?s).+?<span>Disabled</span> LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Disabled</span> BLOCK_HTML(?s).+?<span>Disabled</span> COLLECTION_DATA(?s).+?<span>Disabled</span> EAV(?s).+?<span>Disabled</span> FPC(?s).+?<span>Disabled</span> DB_DDL(?s).+?<span>Disabled</span> INTEGRATION(?s).+?<span>Disabled</span> INTEGRATION_API_CONFIG(?s).+?<span>Disabled</span> WEBSERVICE(?s).+?<span>Disabled</span> REFLECTION(?s).+?<span>Disabled</span> TARGET_RULE(?s).+?<span>Disabled</span Assertion.response_data false 2 true ["customer_form_login"] = true blocks true ["default","customer_account_login"] = true handles true {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} = true originalRequest true true = true ajax true true = true isAjax ${request_protocol} ${base_path}page_cache/block/render/ GET true false true false false "customer_form_login" Registered Customers form_key Assertion.response_data false 2 false form_key <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> $1$ 1 ^.+$ Assertion.response_data false 1 variable form_key false 1 = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add POST true false true false false continue false ${loops} ${__javaScript(Math.round(props.get("users")*${view_catalog_percent}/100>>0))} ${ramp_period} 1437409133000 1437409133000 false Passing arguments between threads 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")); number1 = random.nextInt(props.get("simple_products_list").size()); 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")); number = random.nextInt(props.get("category_url_keys_list").size()); vars.put("category_url_key", props.get("category_url_keys_list").get(number)); vars.put("category_name", props.get("category_names_list").get(number)); vars.put("testLabel", "CatProdBrows"); true ${request_protocol} ${base_path} GET true false true false false <title>Home page</title> Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET true false true false false <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 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_1_url_key}${url_suffix} GET true false true false false <title>${simple_product_1_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_2_url_key}${url_suffix} GET true false true false false <title>${simple_product_2_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${configurable_product_1_url_key}${url_suffix} GET true false true false false <title>${configurable_product_1_name} <span>In stock</span> Assertion.response_data false 2 continue false ${loops} ${__javaScript(Math.round(props.get("users")*${view_product_add_to_cart_percent}/100>>0))} ${ramp_period} 1437411475000 1437411475000 false Passing arguments between threads 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")); vars.put("simple_product_1_uenc", simpleList.get("uenc")); number1 = random.nextInt(props.get("simple_products_list").size()); 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")); vars.put("simple_product_2_uenc", simpleList.get("uenc")); 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_attribute_id", configurableList.get("attribute_id")); vars.put("configurable_option_id", configurableList.get("attribute_option_id")); vars.put("configurable_product_1_uenc", simpleList.get("uenc")); number = random.nextInt(props.get("category_url_keys_list").size()); vars.put("category_url_key", props.get("category_url_keys_list").get(number)); vars.put("category_name", props.get("category_names_list").get(number)); vars.put("testLabel", "BrowsAddToCart"); vars.put("loadType", "Guest"); true ${request_protocol} ${base_path} GET true false true false false <title>Home page</title> Assertion.response_data false 2 true ["customer_form_login"] = true blocks true ["default","customer_account_login"] = true handles true {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} = true originalRequest true true = true ajax true true = true isAjax ${request_protocol} ${base_path}page_cache/block/render/ GET true false true false false "customer_form_login" Registered Customers form_key Assertion.response_data false 2 false form_key <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> $1$ 1 ^.+$ Assertion.response_data false 1 variable form_key ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET true false true false false <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 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_1_url_key}${url_suffix} GET true false true false false <title>${simple_product_1_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_1_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true = true force_new_section_timestamp false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_1_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":1 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_2_url_key}${url_suffix} GET true false true false false <title>${simple_product_2_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_2_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_2_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":2 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${configurable_product_1_url_key}${url_suffix} GET true false true false false <title>${configurable_product_1_name} <span>In stock</span> Assertion.response_data false 2 false configurable_product_sku itemprop="sku">([^<]*)<\/ $1$ NOT_FOUND 1 ${think_time_delay_offset} ${think_time_deviation} true 1 Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} ${request_protocol} ${base_path}rest/V1/configurable-products/${configurable_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 false ${configurable_product_1_id} = true product false = true related_product false 1 = true qty false ${configurable_option_id} = true super_attribute[${configurable_attribute_id}] false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest 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); } true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${configurable_product_1_name} to your shopping cart. Assertion.response_data false 2 We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. Assertion.response_data false 6 \"summary_count\":3 Assertion.response_data false 2 continue false ${loops} ${__javaScript(Math.round(props.get("users")*${guest_checkout_percent}/100>>0))} ${ramp_period} 1437409133000 1437409133000 false Passing arguments between threads 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")); vars.put("simple_product_1_uenc", simpleList.get("uenc")); number1 = random.nextInt(props.get("simple_products_list").size()); 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")); vars.put("simple_product_2_uenc", simpleList.get("uenc")); 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_attribute_id", configurableList.get("attribute_id")); vars.put("configurable_option_id", configurableList.get("attribute_option_id")); vars.put("configurable_product_1_uenc", simpleList.get("uenc")); number = random.nextInt(props.get("category_url_keys_list").size()); vars.put("category_url_key", props.get("category_url_keys_list").get(number)); vars.put("category_name", props.get("category_names_list").get(number)); vars.put("testLabel", "GuestChkt"); vars.put("loadType", "Guest"); true ${request_protocol} ${base_path} GET true false true false false <title>Home page</title> Assertion.response_data false 2 true ["customer_form_login"] = true blocks true ["default","customer_account_login"] = true handles true {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} = true originalRequest true true = true ajax true true = true isAjax ${request_protocol} ${base_path}page_cache/block/render/ GET true false true false false "customer_form_login" Registered Customers form_key Assertion.response_data false 2 false form_key <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> $1$ 1 ^.+$ Assertion.response_data false 1 variable form_key ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET true false true false false <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 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_1_url_key}${url_suffix} GET true false true false false <title>${simple_product_1_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_1_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true = true force_new_section_timestamp false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_1_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":1 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_2_url_key}${url_suffix} GET true false true false false <title>${simple_product_2_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_2_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_2_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":2 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${configurable_product_1_url_key}${url_suffix} GET true false true false false <title>${configurable_product_1_name} <span>In stock</span> Assertion.response_data false 2 false configurable_product_sku itemprop="sku">([^<]*)<\/ $1$ NOT_FOUND 1 ${think_time_delay_offset} ${think_time_deviation} true 1 Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} ${request_protocol} ${base_path}rest/V1/configurable-products/${configurable_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 false ${configurable_product_1_id} = true product false = true related_product false 1 = true qty false ${configurable_option_id} = true super_attribute[${configurable_attribute_id}] false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest 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); } true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${configurable_product_1_name} to your shopping cart. Assertion.response_data false 2 We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. Assertion.response_data false 6 \"summary_count\":3 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}checkout/ GET true false true false false <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 form_key <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ 1 ^.+$ Assertion.response_data false 1 variable cart_id ^.+$ Assertion.response_data false 1 variable form_key ${think_time_delay_offset} ${think_time_deviation} true false {"customerEmail":"test@example.com"} = ${request_protocol} ${base_path}rest/default/V1/customers/isEmailAvailable POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} true false {"address":{"country_id":"US","postcode":"95630"}} = ${request_protocol} ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} true false {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","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"}} = ${request_protocol} ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} true false {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}} = ${request_protocol} ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information POST true false true false false 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 ${request_protocol} ${base_path}checkout/onepage/success/ GET true false true false false Thank you for your purchase! Your order # is Assertion.response_data false 2 continue false ${loops} ${__javaScript(Math.round(props.get("users")*${customer_checkout_percent}/100>>0))} ${ramp_period} 1437177203000 1437177203000 false Passing arguments between threads 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")); vars.put("simple_product_1_uenc", simpleList.get("uenc")); number1 = random.nextInt(props.get("simple_products_list").size()); 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")); vars.put("simple_product_2_uenc", simpleList.get("uenc")); 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_attribute_id", configurableList.get("attribute_id")); vars.put("configurable_option_id", configurableList.get("attribute_option_id")); vars.put("configurable_product_1_uenc", simpleList.get("uenc")); number = random.nextInt(props.get("category_url_keys_list").size()); vars.put("category_url_key", props.get("category_url_keys_list").get(number)); vars.put("category_name", props.get("category_names_list").get(number)); emails_index = 0; if (!props.containsKey("customer_emails_index")) { props.put("customer_emails_index", emails_index); } try { emails_index = props.get("customer_emails_index"); emails_list = props.get("customer_emails_list"); if (emails_index == emails_list.size()) { emails_index=0; } vars.put("customer_email", emails_list.get(emails_index)); props.put("customer_emails_index", ++emails_index); } catch (java.lang.Exception e) { log.error("Caught Exception in 'Customer Checkout' thread."); log.info("Using default email address - user_1@example.com"); vars.put("customer_email", "user_1@example.com"); } vars.put("testLabel", "CustomerChkt"); vars.put("loadType", "Customer"); true ${request_protocol} ${base_path} GET true false true false false <title>Home page</title> Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}customer/account/login/ GET true false true false false <title>Customer Login</title> Assertion.response_data false 2 true ["customer_form_login"] = true blocks true ["default","customer_account_login"] = true handles true {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} = true originalRequest true true = true ajax true true = true isAjax ${request_protocol} ${base_path}page_cache/block/render/ GET true false true false false "customer_form_login" Registered Customers form_key Assertion.response_data false 2 false form_key <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> $1$ 1 ^.+$ Assertion.response_data false 1 variable form_key ${think_time_delay_offset} ${think_time_deviation} true ${form_key} = true form_key true ${customer_email} = true login[username] true ${customer_password} = true login[password] true = true send ${request_protocol} ${base_path}customer/account/loginPost/ POST true false true false false <title>My Account</title> Assertion.response_data false 2 false addressId customer/address/edit/id/([^'"]+)/ $1$ 1 ^.+$ Assertion.response_data false 1 variable addressId ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET true false true false false <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 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_1_url_key}${url_suffix} GET true false true false false <title>${simple_product_1_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_1_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true = true force_new_section_timestamp false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_1_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":1 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${simple_product_2_url_key}${url_suffix} GET true false true false false <title>${simple_product_2_name} <span>In stock</span> Assertion.response_data false 2 product_id .//input[@type="hidden" and @name="product"]/@value false true false ^\d+$ Assertion.response_data false 1 variable product_id ${request_protocol} ${base_path}review/product/listAjax/id/${product_id}/ GET true false true false false 200 Assertion.response_code false 2 ${think_time_delay_offset} ${think_time_deviation} false ${simple_product_2_id} = true product false = true related_product false 1 = true qty false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${simple_product_2_name} to your shopping cart. Assertion.response_data false 2 This product is out of stock. Assertion.response_data false 6 \"summary_count\":2 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}${configurable_product_1_url_key}${url_suffix} GET true false true false false <title>${configurable_product_1_name} <span>In stock</span> Assertion.response_data false 2 false configurable_product_sku itemprop="sku">([^<]*)<\/ $1$ NOT_FOUND 1 ${think_time_delay_offset} ${think_time_deviation} true 1 Content-Type application/json Accept */* true false {"username":"${admin_user}","password":"${admin_password}"} = ${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} ${request_protocol} ${base_path}rest/V1/configurable-products/${configurable_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 false ${configurable_product_1_id} = true product false = true related_product false 1 = true qty false ${configurable_option_id} = true super_attribute[${configurable_attribute_id}] false ${form_key} = true form_key ${request_protocol} ${base_path}checkout/cart/add/ POST true false true false false X-Requested-With XMLHttpRequest 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); } true cart,messages = true sections true true true = true force_new_section_timestamp true false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true _ true ${request_protocol} ${base_path}customer/section/load/ GET true false true false false X-Requested-With XMLHttpRequest You added ${configurable_product_1_name} to your shopping cart. Assertion.response_data false 2 We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. Assertion.response_data false 6 \"summary_count\":3 Assertion.response_data false 2 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}checkout/ GET true false true false false <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 form_key <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ 1 false address_id "default_billing":"([^'"]+)", $1$ 1 false customer_id "customer_id":([^'",]+), $1$ 1 ^.+$ Assertion.response_data false 1 variable cart_id ^.+$ Assertion.response_data false 1 variable form_key [0-9]+$ Assertion.response_data false 1 variable address_id [0-9]+$ Assertion.response_data false 1 variable customer_id ${think_time_delay_offset} ${think_time_deviation} true false {"addressId":"${addressId}"} = ${request_protocol} ${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} true false {"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","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"}} = ${request_protocol} ${base_path}rest/default/V1/carts/mine/shipping-information POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} true false {"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}} = ${request_protocol} ${base_path}rest/default/V1/carts/mine/payment-information POST true false true false false 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 ${think_time_delay_offset} ${think_time_deviation} ${request_protocol} ${base_path}checkout/onepage/success/ GET true false true false false Thank you for your purchase! Your order number is Assertion.response_data false 2 stoptest false 1 1 1 1395324075000 1395324075000 false "${dashboard_enabled}" == "1" false false ${__property(environment)} = true environment false ${start_time} = true startTime false ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true endTime false ${redis_host} = true stats_server ${request_protocol} ${base_path}DeploymentEvent.php POST true false true false false Errors: Assertion.response_data false 6 30 ${host} / false 0 true true true props.remove("category_url_key"); props.remove("category_name"); props.remove("simple_products_list"); props.remove("configurable_products_list"); props.remove("users"); props.remove("customer_emails_list"); false false saveConfig true true true true true true true false true true false false false false false false false false 0 true true true true true true true true true false true true false false true false false true false false 0 true true true true false saveConfig false false false false false false false false false false false false false true false false false false 0 true true true true ${report_save_path}/detailed-urls-report.log false saveConfig true true true true true true true false true true false false false false false false false false 0 true true true true ${report_save_path}/summary-report.log true