Skip to content

Commit d30fb35

Browse files
committed
MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT
1 parent 5806eca commit d30fb35

File tree

1 file changed

+27
-140
lines changed

1 file changed

+27
-140
lines changed

setup/performance-toolkit/benchmark.jmx

Lines changed: 27 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -804,164 +804,59 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr
804804
</hashTree>
805805
</hashTree>
806806

807-
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories" enabled="true">
808-
<stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_categories.jmx</stringProp>
809-
</TestFragmentController>
807+
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories" enabled="true"/>
810808
<hashTree>
811-
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Extract categories" enabled="true"/>
812-
<hashTree>
813-
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
814-
<collectionProp name="HeaderManager.headers">
815-
<elementProp name="" elementType="Header">
816-
<stringProp name="Header.name">Content-Type</stringProp>
817-
<stringProp name="Header.value">application/json</stringProp>
818-
</elementProp>
819-
<elementProp name="" elementType="Header">
820-
<stringProp name="Header.name">Accept</stringProp>
821-
<stringProp name="Header.value">*/*</stringProp>
822-
</elementProp>
823-
</collectionProp>
824-
</HeaderManager>
825-
<hashTree/>
826-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
827-
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
828-
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
829-
<collectionProp name="Arguments.arguments">
830-
<elementProp name="" elementType="HTTPArgument">
831-
<boolProp name="HTTPArgument.always_encode">false</boolProp>
832-
<stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
833-
<stringProp name="Argument.metadata">=</stringProp>
834-
</elementProp>
835-
</collectionProp>
809+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request: Open main page (for category extract)" enabled="true">
810+
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
811+
<collectionProp name="Arguments.arguments"/>
836812
</elementProp>
837813
<stringProp name="HTTPSampler.domain"/>
838814
<stringProp name="HTTPSampler.port"/>
839815
<stringProp name="HTTPSampler.connect_timeout"/>
840816
<stringProp name="HTTPSampler.response_timeout"/>
841-
<stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
817+
<stringProp name="HTTPSampler.protocol"/>
842818
<stringProp name="HTTPSampler.contentEncoding"/>
843-
<stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
844-
<stringProp name="HTTPSampler.method">POST</stringProp>
819+
<stringProp name="HTTPSampler.path">${base_path}</stringProp>
820+
<stringProp name="HTTPSampler.method">GET</stringProp>
845821
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
846822
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
847823
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
848824
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
849825
<boolProp name="HTTPSampler.monitor">false</boolProp>
850826
<stringProp name="HTTPSampler.embedded_url_re"/>
827+
<stringProp name="TestPlan.comments">mpaf/tool/fragments/ce/setup/extract_categories.jmx</stringProp>
851828
</HTTPSamplerProxy>
852829
<hashTree>
853-
<com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
854-
<stringProp name="VAR">admin_token</stringProp>
855-
<stringProp name="JSONPATH">$</stringProp>
856-
<stringProp name="DEFAULT"/>
857-
<stringProp name="VARIABLE"/>
858-
<stringProp name="SUBJECT">BODY</stringProp>
859-
</com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
860-
<hashTree/>
861-
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
830+
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert categories on home page" enabled="true">
862831
<collectionProp name="Asserion.test_strings">
863-
<stringProp name="484395188">^[a-z0-9-]+$</stringProp>
832+
<stringProp name="1711248581">&lt;span&gt;Category ([0-9]+)&lt;/span&gt;</stringProp>
864833
</collectionProp>
865834
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
866835
<boolProp name="Assertion.assume_success">false</boolProp>
867-
<intProp name="Assertion.test_type">1</intProp>
868-
<stringProp name="Assertion.scope">variable</stringProp>
869-
<stringProp name="Scope.variable">admin_token</stringProp>
836+
<intProp name="Assertion.test_type">2</intProp>
870837
</ResponseAssertion>
871838
<hashTree/>
872-
</hashTree>
873-
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
874-
<collectionProp name="HeaderManager.headers">
875-
<elementProp name="" elementType="Header">
876-
<stringProp name="Header.name">Authorization</stringProp>
877-
<stringProp name="Header.value">Bearer ${admin_token}</stringProp>
878-
</elementProp>
879-
</collectionProp>
880-
</HeaderManager>
881-
<hashTree/>
882-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Categories Names and skus" enabled="true">
883-
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
884-
<collectionProp name="Arguments.arguments">
885-
<elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
886-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
887-
<stringProp name="Argument.value">path</stringProp>
888-
<stringProp name="Argument.metadata">=</stringProp>
889-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
890-
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
891-
</elementProp>
892-
<elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
893-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
894-
<stringProp name="Argument.value">1/2/%</stringProp>
895-
<stringProp name="Argument.metadata">=</stringProp>
896-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
897-
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
898-
</elementProp>
899-
<elementProp name="searchCriteria[filterGroups][0][filters][0][conditionType]" elementType="HTTPArgument">
900-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
901-
<stringProp name="Argument.value">like</stringProp>
902-
<stringProp name="Argument.metadata">=</stringProp>
903-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
904-
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][conditionType]</stringProp>
905-
</elementProp>
906-
<elementProp name="searchCriteria[filterGroups][1][filters][0][field]" elementType="HTTPArgument">
907-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
908-
<stringProp name="Argument.value">level</stringProp>
909-
<stringProp name="Argument.metadata">=</stringProp>
910-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
911-
<stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][field]</stringProp>
912-
</elementProp>
913-
<elementProp name="searchCriteria[filterGroups][1][filters][0][value]" elementType="HTTPArgument">
914-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
915-
<stringProp name="Argument.value">2</stringProp>
916-
<stringProp name="Argument.metadata">=</stringProp>
917-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
918-
<stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][value]</stringProp>
919-
</elementProp>
920-
<elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
921-
<boolProp name="HTTPArgument.always_encode">true</boolProp>
922-
<stringProp name="Argument.value">${categories_count}</stringProp>
923-
<stringProp name="Argument.metadata">=</stringProp>
924-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
925-
<stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
926-
</elementProp>
927-
</collectionProp>
928-
</elementProp>
929-
<stringProp name="HTTPSampler.domain"/>
930-
<stringProp name="HTTPSampler.port"/>
931-
<stringProp name="HTTPSampler.connect_timeout"/>
932-
<stringProp name="HTTPSampler.response_timeout"/>
933-
<stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
934-
<stringProp name="HTTPSampler.contentEncoding"/>
935-
<stringProp name="HTTPSampler.path">${base_path}rest/V1/categories/list</stringProp>
936-
<stringProp name="HTTPSampler.method">GET</stringProp>
937-
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
938-
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
939-
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
940-
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
941-
<boolProp name="HTTPSampler.monitor">false</boolProp>
942-
<stringProp name="HTTPSampler.embedded_url_re"/>
943-
</HTTPSamplerProxy>
944-
<hashTree>
945-
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category url key" enabled="true">
839+
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract first category url key" enabled="true">
946840
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
947841
<stringProp name="RegexExtractor.refname">category_url_keys</stringProp>
948-
<stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
949-
<stringProp name="RegexExtractor.template">$1$</stringProp>
842+
<stringProp name="RegexExtractor.regex">&lt;a href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}" class="level-top" &gt;</stringProp>
843+
<stringProp name="RegexExtractor.template">$2$</stringProp>
950844
<stringProp name="RegexExtractor.default"/>
951845
<stringProp name="RegexExtractor.match_number">-1</stringProp>
846+
<stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
952847
</RegexExtractor>
953848
<hashTree/>
954-
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category name" enabled="true">
849+
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract first category name" enabled="true">
955850
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
956851
<stringProp name="RegexExtractor.refname">category_names</stringProp>
957-
<stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
958-
<stringProp name="RegexExtractor.template">$1$</stringProp>
852+
<stringProp name="RegexExtractor.regex">&lt;a href="http://${host}${base_path}(index.php/)?category-([0-9]+)${url_suffix}" class="level-top" &gt;&lt;span&gt;([^'"]+)&lt;/span&gt;</stringProp>
853+
<stringProp name="RegexExtractor.template">$3$</stringProp>
959854
<stringProp name="RegexExtractor.default"/>
960855
<stringProp name="RegexExtractor.match_number">-1</stringProp>
856+
<stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
961857
</RegexExtractor>
962858
<hashTree/>
963859
</hashTree>
964-
</hashTree>
965860
<ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: category url keys loop" enabled="true">
966861
<stringProp name="ForeachController.inputVal">category_url_keys</stringProp>
967862
<stringProp name="ForeachController.returnVal">category_url_key</stringProp>
@@ -1021,7 +916,7 @@ if (1 == Integer.parseInt(vars.get("category_name_counter"))) {
1021916
} else {
1022917
categoryNamesList = props.get("category_names_list");
1023918
}
1024-
919+
log.info("category name: " + vars.get("category_name"));
1025920
categoryNamesList.add(vars.get("category_name"));</stringProp>
1026921
<stringProp name="BeanShellSampler.filename"/>
1027922
<stringProp name="BeanShellSampler.parameters"/>
@@ -1036,7 +931,6 @@ props.put("category_name", vars.get("category_name"));</stringProp>
1036931
<stringProp name="BeanShellSampler.parameters"/>
1037932
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
1038933
</BeanShellSampler>
1039-
<hashTree/>
1040934
</hashTree>
1041935

1042936
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract configurable products" enabled="true">
@@ -20940,7 +20834,7 @@ vars.put("related_product_id", props.get("simple_products_list").get(relatedInde
2094020834
<collectionProp name="Arguments.arguments">
2094120835
<elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
2094220836
<boolProp name="HTTPArgument.always_encode">false</boolProp>
20943-
<stringProp name="Argument.value">mycolor</stringProp>
20837+
<stringProp name="Argument.value">mysize,mycolor</stringProp>
2094420838
<stringProp name="Argument.metadata">=</stringProp>
2094520839
<boolProp name="HTTPArgument.use_equals">true</boolProp>
2094620840
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
@@ -20952,19 +20846,12 @@ vars.put("related_product_id", props.get("simple_products_list").get(relatedInde
2095220846
<boolProp name="HTTPArgument.use_equals">true</boolProp>
2095320847
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
2095420848
</elementProp>
20955-
<elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
20849+
<elementProp name="searchCriteria[filterGroups][0][filters][0][condition_type]" elementType="HTTPArgument">
2095620850
<boolProp name="HTTPArgument.always_encode">false</boolProp>
20957-
<stringProp name="Argument.value">mysize</stringProp>
20958-
<stringProp name="Argument.metadata">=</stringProp>
20959-
<boolProp name="HTTPArgument.use_equals">true</boolProp>
20960-
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
20961-
</elementProp>
20962-
<elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
20963-
<boolProp name="HTTPArgument.always_encode">false</boolProp>
20964-
<stringProp name="Argument.value">attribute_code</stringProp>
20851+
<stringProp name="Argument.value">in</stringProp>
2096520852
<stringProp name="Argument.metadata">=</stringProp>
2096620853
<boolProp name="HTTPArgument.use_equals">true</boolProp>
20967-
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
20854+
<stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][condition_type]</stringProp>
2096820855
</elementProp>
2096920856
</collectionProp>
2097020857
</elementProp>
@@ -23701,7 +23588,7 @@ function addConfigurableMatrix(attributes) {
2370123588
});
2370223589
});
2370323590

23704-
sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
23591+
sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products));
2370523592
vars.putObject("configurable_variations_assertion", variationNames);
2370623593
}
2370723594
</stringProp>
@@ -24331,7 +24218,7 @@ function addConfigurableMatrix(attributes) {
2433124218
});
2433224219
});
2433324220

24334-
sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
24221+
sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products));
2433524222
vars.putObject("configurable_variations_assertion", variationNames);
2433624223
}
2433724224
</stringProp>
@@ -30353,7 +30240,7 @@ vars.put("admin_user", adminUser);
3035330240
<stringProp name="HTTPSampler.response_timeout"/>
3035430241
<stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
3035530242
<stringProp name="HTTPSampler.contentEncoding"/>
30356-
<stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories/list</stringProp>
30243+
<stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
3035730244
<stringProp name="HTTPSampler.method">GET</stringProp>
3035830245
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
3035930246
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>

0 commit comments

Comments
 (0)