diff options
Diffstat (limited to 'testsuites/stability/src/main')
9 files changed, 189 insertions, 213 deletions
diff --git a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/papConfigFile.json b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/papConfigFile.json index 456735be..790a8ea6 100644 --- a/testsuites/stability/src/main/resources/setup/config/jsonConfigs/papConfigFile.json +++ b/testsuites/stability/src/main/resources/setup/config/jsonConfigs/papConfigFile.json @@ -10,7 +10,7 @@ "prometheus": true }, "pdpParameters": { - "heartBeatMs": 20000, + "heartBeatMs": 300000, "updateParameters": { "maxRetryCount": 1, "maxWaitMs": 30000 diff --git a/testsuites/stability/src/main/resources/setup/config/wait_for_port.sh b/testsuites/stability/src/main/resources/setup/config/wait_for_port.sh index 63e2a493..56b5a825 100755 --- a/testsuites/stability/src/main/resources/setup/config/wait_for_port.sh +++ b/testsuites/stability/src/main/resources/setup/config/wait_for_port.sh @@ -1,6 +1,6 @@ #!/bin/sh # ============LICENSE_START==================================================== -# Copyright (C) 2020 Nordix Foundation. +# Copyright (C) 2020-2021 Nordix Foundation. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/testsuites/stability/src/main/resources/setup/distribution/etc/logback.xml b/testsuites/stability/src/main/resources/setup/distribution/etc/logback.xml index 2b77efb6..34a40204 100644 --- a/testsuites/stability/src/main/resources/setup/distribution/etc/logback.xml +++ b/testsuites/stability/src/main/resources/setup/distribution/etc/logback.xml @@ -21,7 +21,7 @@ <configuration scan="true" scanPeriod="30 seconds" debug="false"> - <property name="logDir" value="/home/policydistribution" /> + <property name="logDir" value="/home/policydistribution/logs" /> <property name="errorLog" value="error" /> <property name="debugLog" value="debug" /> @@ -102,7 +102,7 @@ <appender-ref ref="AsyncNetworkOut" /> </logger> - <root level="INFO"> + <root level="ERROR"> <appender-ref ref="AsyncDebugOut" /> <appender-ref ref="AsyncErrorOut" /> </root> diff --git a/testsuites/stability/src/main/resources/setup/docker-compose.yml b/testsuites/stability/src/main/resources/setup/docker-compose.yml index e36a0c8b..fac04fa2 100644 --- a/testsuites/stability/src/main/resources/setup/docker-compose.yml +++ b/testsuites/stability/src/main/resources/setup/docker-compose.yml @@ -1,4 +1,4 @@ -# Copyright (C) 2020 Nordix Foundation. +# Copyright (C) 2021 Nordix Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -66,11 +66,6 @@ services: volumes: - ./config/wait_for_port.sh:/opt/app/policy/pdp-sim/bin/wait_for_port.sh:ro - ./config/jsonConfigs/pdpSimConfig.json:/opt/app/policy/pdp-sim/etc/config/OnapPfConfig.json:ro - entrypoint: /opt/app/policy/pdp-sim/bin/wait_for_port.sh - command: [ - '-c', '/opt/app/policy/pdp-sim/bin/pdp-sim.sh', - 'message-router', '3904', - ] policy-api: image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION} container_name: policy-api diff --git a/testsuites/stability/src/main/resources/setup/start.sh b/testsuites/stability/src/main/resources/setup/start.sh index 2f72cb04..e163f2b8 100755 --- a/testsuites/stability/src/main/resources/setup/start.sh +++ b/testsuites/stability/src/main/resources/setup/start.sh @@ -58,5 +58,5 @@ sudo chmod -R a+trwx /tmp docker-compose up --detach echo "" -# check if all containers are up +# check if all containers are up - db-migrator will shutdown after a while docker ps diff --git a/testsuites/stability/src/main/resources/setup/versions.sh b/testsuites/stability/src/main/resources/setup/versions.sh index 44829d15..ff156b8f 100755 --- a/testsuites/stability/src/main/resources/setup/versions.sh +++ b/testsuites/stability/src/main/resources/setup/versions.sh @@ -19,11 +19,11 @@ # update versions here export POLICY_MARIADB_VER=10.5.8 -export POLICY_DB_MIGRATOR=2.3.1-SNAPSHOT -export POLICY_API_VERSION=2.5.1-SNAPSHOT -export POLICY_PAP_VERSION=2.5.1-SNAPSHOT -export POLICY_MODELS_SIMULATOR=2.5.1-SNAPSHOT -export POLICY_DIST_VERSION=2.6.1-SNAPSHOT +export POLICY_DB_MIGRATOR=2.3.1 +export POLICY_API_VERSION=2.5.1 +export POLICY_PAP_VERSION=2.5.1 +export POLICY_MODELS_SIMULATOR=latest +export POLICY_DIST_VERSION=2.6.1 echo " MariaDB Version: ${POLICY_MARIADB_VER}" echo " Policy DB Migrator Version: ${POLICY_DB_MIGRATOR}" diff --git a/testsuites/stability/src/main/resources/testplans/README.stability.md b/testsuites/stability/src/main/resources/testplans/README.stability.md index b73d7927..e581acaf 100644 --- a/testsuites/stability/src/main/resources/testplans/README.stability.md +++ b/testsuites/stability/src/main/resources/testplans/README.stability.md @@ -6,18 +6,11 @@ Download JMeter 5.0 from https://jmeter.apache.org/download_jmeter.cgi, and extr 2. Run the setup-components script found within simulator setup. This will launch MariaDB, PDPSimulator, PAP, Policy-API and DMaap Simulator as docker containers. -3. Launch the policy distribution service by running the setup-distribution script found within distributionsetup. -If you are running all of the components locally you will need to edit the port that distribution starts on as it is -currently 6969 which conflicts with the policy API port. -This will launch policy-distribution as a docker container and takes 2 arguments, PAP IP and API IP. -If you are running locally these will be 127.0.0.1. If on a VM enter the VM IP. -``` -setup-distribution.sh 127.0.0.1 127.0.0.1 -``` +3. Launch the policy distribution service by running the start script found within setup folder. -4. Run the JMeter stability test +4. Run the JMeter stability test from testplans folder ``` -rm -f stability.log; <jmeter_dir>/bin/jmeter.sh -t stability.jmx -n -Jhost=<pdp service hostname> -Jduration=100 -l stability.log +./run_test.sh ``` Search for 'get policy failed' in the stability.log file to see if there is any errors found during the stability test. diff --git a/testsuites/stability/src/main/resources/testplans/run_test.sh b/testsuites/stability/src/main/resources/testplans/run_test.sh index 6ce32345..f59035fb 100755 --- a/testsuites/stability/src/main/resources/testplans/run_test.sh +++ b/testsuites/stability/src/main/resources/testplans/run_test.sh @@ -17,6 +17,8 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= +echo "Starting stability test against distribution component..." + DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" JMETER_HOME=~/jmeter/apache-jmeter-5.4.1/ @@ -27,4 +29,4 @@ POLICY_DISTRIBUTION_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{ ${JMETER_HOME}/bin/jmeter -n -t "${DIR}"/stability.jmx -Jduration=259200 \ -Japihost="${POLICY_API_IP}" \ -Jpaphost="${POLICY_PAP_IP}" \ - -Jdisthost="${POLICY_DISTRIBUTION_IP}" + -Jdisthost="${POLICY_DISTRIBUTION_IP}" -l distribution_stability.jtl & diff --git a/testsuites/stability/src/main/resources/testplans/stability.jmx b/testsuites/stability/src/main/resources/testplans/stability.jmx index 5f800d12..0596f483 100644 --- a/testsuites/stability/src/main/resources/testplans/stability.jmx +++ b/testsuites/stability/src/main/resources/testplans/stability.jmx @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.1.1 r1855137"> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="stability test plan" enabled="true"> <stringProp name="TestPlan.comments"></stringProp> @@ -35,7 +35,7 @@ </elementProp> <elementProp name="API_HOST" elementType="Argument"> <stringProp name="Argument.name">API_HOST</stringProp> - <stringProp name="Argument.value">${__P(apihost,172.28.0.7)}</stringProp> + <stringProp name="Argument.value">${__P(apihost,172.19.0.7)}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> <elementProp name="API_PORT" elementType="Argument"> @@ -45,7 +45,7 @@ </elementProp> <elementProp name="PAP_HOST" elementType="Argument"> <stringProp name="Argument.name">PAP_HOST</stringProp> - <stringProp name="Argument.value">${__P(paphost,172.28.0.8)}</stringProp> + <stringProp name="Argument.value">${__P(paphost,172.19.0.8)}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> <elementProp name="PAP_PORT" elementType="Argument"> @@ -55,7 +55,7 @@ </elementProp> <elementProp name="DISTRIBUTION_HOST" elementType="Argument"> <stringProp name="Argument.name">DISTRIBUTION_HOST</stringProp> - <stringProp name="Argument.value">${__P(disthost,172.28.0.2)}</stringProp> + <stringProp name="Argument.value">${__P(disthost,172.19.0.2)}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> <elementProp name="DISTRIBUTION_PORT" elementType="Argument"> @@ -73,6 +73,11 @@ <stringProp name="Argument.value">${__P(duration, 259200)}</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> + <elementProp name="DEPLOY_STATUS" elementType="Argument"> + <stringProp name="Argument.name">DEPLOY_STATUS</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> </collectionProp> </elementProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> @@ -89,6 +94,7 @@ <boolProp name="ThreadGroup.scheduler">true</boolProp> <stringProp name="ThreadGroup.duration">${DURATION}</stringProp> <stringProp name="ThreadGroup.delay">1</stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> </ThreadGroup> <hashTree> <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> @@ -103,7 +109,7 @@ </elementProp> </collectionProp> </HeaderManager> - <hashTree /> + <hashTree/> <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> <collectionProp name="AuthManager.auth_list"> <elementProp name="" elementType="Authorization"> @@ -129,25 +135,26 @@ </elementProp> </collectionProp> <boolProp name="AuthManager.clearEachIteration">true</boolProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> </AuthManager> - <hashTree /> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Delete Old CSAR" enabled="true" /> + <hashTree/> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Delete Old CSAR" enabled="true"/> <hashTree> <SystemSampler guiclass="SystemSamplerGui" testclass="SystemSampler" testname="Remove CSAR" enabled="true"> <boolProp name="SystemSampler.checkReturnCode">false</boolProp> <stringProp name="SystemSampler.expectedReturnCode">0</stringProp> <stringProp name="SystemSampler.command">${SCRIPT_DIR}/removecsar.sh</stringProp> <elementProp name="SystemSampler.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <elementProp name="SystemSampler.environment" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="SystemSampler.directory"></stringProp> </SystemSampler> - <hashTree /> + <hashTree/> </hashTree> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Add CSAR" enabled="true" /> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Add CSAR" enabled="true"/> <hashTree> <SystemSampler guiclass="SystemSamplerGui" testclass="SystemSampler" testname="Add CSAR script" enabled="true"> <boolProp name="SystemSampler.checkReturnCode">false</boolProp> @@ -163,48 +170,11 @@ </collectionProp> </elementProp> <elementProp name="SystemSampler.environment" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="SystemSampler.directory"></stringProp> </SystemSampler> <hashTree> - <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> - <boolProp name="ResultCollector.error_logging">false</boolProp> - <objProp> - <name>saveConfig</name> - <value class="SampleSaveConfiguration"> - <time>true</time> - <latency>true</latency> - <timestamp>true</timestamp> - <success>true</success> - <label>true</label> - <code>true</code> - <message>true</message> - <threadName>true</threadName> - <dataType>true</dataType> - <encoding>false</encoding> - <assertions>true</assertions> - <subresults>true</subresults> - <responseData>false</responseData> - <samplerData>false</samplerData> - <xml>false</xml> - <fieldNames>true</fieldNames> - <responseHeaders>false</responseHeaders> - <requestHeaders>false</requestHeaders> - <responseDataOnError>false</responseDataOnError> - <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> - <assertionsResultsToSave>0</assertionsResultsToSave> - <bytes>true</bytes> - <sentBytes>true</sentBytes> - <url>true</url> - <threadCounts>true</threadCounts> - <idleTime>true</idleTime> - <connectTime>true</connectTime> - </value> - </objProp> - <stringProp name="filename"></stringProp> - </ResultCollector> - <hashTree /> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <collectionProp name="Asserion.test_strings"> <stringProp name="1737356164">CSAR Copied Successfully</stringProp> @@ -214,18 +184,14 @@ <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">2</intProp> </ResponseAssertion> - <hashTree /> + <hashTree/> </hashTree> </hashTree> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">300</stringProp> - </ConstantTimer> - <hashTree /> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="HealthCheck/Statistics" enabled="true" /> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="HealthCheck/Statistics" enabled="true"/> <hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Healthcheck" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${DISTRIBUTION_HOST}</stringProp> <stringProp name="HTTPSampler.port">${DISTRIBUTION_PORT}</stringProp> @@ -251,11 +217,11 @@ <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">8</intProp> </ResponseAssertion> - <hashTree /> + <hashTree/> </hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Statistics" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${DISTRIBUTION_HOST}</stringProp> <stringProp name="HTTPSampler.port">${DISTRIBUTION_PORT}</stringProp> @@ -281,14 +247,76 @@ <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">8</intProp> </ResponseAssertion> - <hashTree /> + <hashTree/> + </hashTree> + </hashTree> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Check for Policy Deployment" enabled="true"/> + <hashTree> + <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Clean check variables" enabled="true"> + <stringProp name="cacheKey">true</stringProp> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <stringProp name="script">vars.put("DEPLOY_STATUS", "notset");</stringProp> + <stringProp name="scriptLanguage">beanshell</stringProp> + </JSR223Sampler> + <hashTree/> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="Loop for Policy Deploy" enabled="true"> + <stringProp name="WhileController.condition">${__jexl3("${DEPLOY_STATUS}"!="true")}</stringProp> + </WhileController> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Policy Deployed" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/policy/pap/v1/policies/status/defaultGroup/operational.apex.sampledomain/1.0.0</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Deploy status" enabled="true"> + <stringProp name="RegexExtractor.useHeaders">false</stringProp> + <stringProp name="RegexExtractor.refname">DEPLOY_STATUS</stringProp> + <stringProp name="RegexExtractor.regex">"deploy":(.+?),"state":"SUCCESS"</stringProp> + <stringProp name="RegexExtractor.template">$1$</stringProp> + <stringProp name="RegexExtractor.default">NotFound</stringProp> + <stringProp name="RegexExtractor.match_number">1</stringProp> + </RegexExtractor> + <hashTree/> + </hashTree> + <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If not valid, wait a min" enabled="true"> + <stringProp name="IfController.condition">${__jexl3("${DEPLOY_STATUS}"!="true")}</stringProp> + <boolProp name="IfController.evaluateAll">false</boolProp> + <boolProp name="IfController.useExpression">true</boolProp> + </IfController> + <hashTree> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Wait a minute" enabled="true"> + <stringProp name="ConstantTimer.delay">60000</stringProp> + </ConstantTimer> + <hashTree/> + <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Waiting" enabled="true"> + <boolProp name="displayJMeterProperties">false</boolProp> + <boolProp name="displayJMeterVariables">true</boolProp> + <boolProp name="displaySystemProperties">false</boolProp> + </DebugSampler> + <hashTree/> + </hashTree> </hashTree> </hashTree> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policy Created" enabled="true" /> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policy Deployment" enabled="true"/> <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CheckPDPGroupQuery" enabled="true"> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Assert PDP Group Query" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> @@ -313,48 +341,11 @@ <boolProp name="INVERT">false</boolProp> <boolProp name="ISREGEX">false</boolProp> </JSONPathAssertion> - <hashTree /> - <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> - <boolProp name="ResultCollector.error_logging">false</boolProp> - <objProp> - <name>saveConfig</name> - <value class="SampleSaveConfiguration"> - <time>true</time> - <latency>true</latency> - <timestamp>true</timestamp> - <success>true</success> - <label>true</label> - <code>true</code> - <message>true</message> - <threadName>true</threadName> - <dataType>true</dataType> - <encoding>false</encoding> - <assertions>true</assertions> - <subresults>true</subresults> - <responseData>false</responseData> - <samplerData>false</samplerData> - <xml>false</xml> - <fieldNames>true</fieldNames> - <responseHeaders>false</responseHeaders> - <requestHeaders>false</requestHeaders> - <responseDataOnError>false</responseDataOnError> - <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> - <assertionsResultsToSave>0</assertionsResultsToSave> - <bytes>true</bytes> - <sentBytes>true</sentBytes> - <url>true</url> - <threadCounts>true</threadCounts> - <idleTime>true</idleTime> - <connectTime>true</connectTime> - </value> - </objProp> - <stringProp name="filename"></stringProp> - </ResultCollector> - <hashTree /> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Policy Deployed" enabled="true"> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Assert PoliciesDeployed" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> @@ -379,7 +370,7 @@ <boolProp name="INVERT">false</boolProp> <boolProp name="ISREGEX">false</boolProp> </JSONPathAssertion> - <hashTree /> + <hashTree/> <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="Assert Policy ID" enabled="true"> <stringProp name="JSON_PATH">$[:2].policy-id</stringProp> <stringProp name="EXPECTED_VALUE">operational.apex.sampledomain</stringProp> @@ -388,55 +379,14 @@ <boolProp name="INVERT">false</boolProp> <boolProp name="ISREGEX">false</boolProp> </JSONPathAssertion> - <hashTree /> + <hashTree/> </hashTree> - <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> - <boolProp name="ResultCollector.error_logging">false</boolProp> - <objProp> - <name>saveConfig</name> - <value class="SampleSaveConfiguration"> - <time>true</time> - <latency>true</latency> - <timestamp>true</timestamp> - <success>true</success> - <label>true</label> - <code>true</code> - <message>true</message> - <threadName>true</threadName> - <dataType>true</dataType> - <encoding>false</encoding> - <assertions>true</assertions> - <subresults>true</subresults> - <responseData>false</responseData> - <samplerData>false</samplerData> - <xml>false</xml> - <fieldNames>true</fieldNames> - <responseHeaders>false</responseHeaders> - <requestHeaders>false</requestHeaders> - <responseDataOnError>false</responseDataOnError> - <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> - <assertionsResultsToSave>0</assertionsResultsToSave> - <bytes>true</bytes> - <sentBytes>true</sentBytes> - <url>true</url> - <threadCounts>true</threadCounts> - <idleTime>true</idleTime> - <connectTime>true</connectTime> - </value> - </objProp> - <stringProp name="filename"></stringProp> - </ResultCollector> - <hashTree /> - <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> - <stringProp name="ConstantTimer.delay">10000</stringProp> - </ConstantTimer> - <hashTree /> </hashTree> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Clear up Policies" enabled="true" /> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Process Undeploy" enabled="true"/> <hashTree> <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Undeploy Policy " enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> @@ -453,53 +403,89 @@ <stringProp name="HTTPSampler.response_timeout"></stringProp> </HTTPSamplerProxy> <hashTree> - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> + <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Undeploy Accepted" enabled="true"> <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">202</stringProp> + <stringProp name="49588">202</stringProp> </collectionProp> <stringProp name="Assertion.custom_message"></stringProp> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <boolProp name="Assertion.assume_success">false</boolProp> <intProp name="Assertion.test_type">8</intProp> </ResponseAssertion> - <hashTree /> + <hashTree/> </hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete Policy" enabled="true"> - <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> - </elementProp> - <stringProp name="HTTPSampler.domain">${API_HOST}</stringProp> - <stringProp name="HTTPSampler.port">${API_PORT}</stringProp> - <stringProp name="HTTPSampler.protocol">http</stringProp> - <stringProp name="HTTPSampler.contentEncoding"></stringProp> - <stringProp name="HTTPSampler.path">/policy/api/v1/policytypes/operational.apex.sampledomain/versions/1.0.0/policies/operational.apex.sampledomain/versions/1.0.0</stringProp> - <stringProp name="HTTPSampler.method">DELETE</stringProp> - <boolProp name="HTTPSampler.follow_redirects">true</boolProp> - <boolProp name="HTTPSampler.auto_redirects">false</boolProp> - <boolProp name="HTTPSampler.use_keepalive">true</boolProp> - <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> - <stringProp name="HTTPSampler.embedded_url_re"></stringProp> - <stringProp name="HTTPSampler.connect_timeout"></stringProp> - <stringProp name="HTTPSampler.response_timeout"></stringProp> - </HTTPSamplerProxy> + </hashTree> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Check for Policy Undeploy" enabled="true"/> + <hashTree> + <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Clean check variables" enabled="true"> + <stringProp name="cacheKey">true</stringProp> + <stringProp name="filename"></stringProp> + <stringProp name="parameters"></stringProp> + <stringProp name="script">vars.put("DEPLOY_STATUS", "notset");</stringProp> + <stringProp name="scriptLanguage">groovy</stringProp> + </JSR223Sampler> + <hashTree/> + <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="Loop for Policy Status" enabled="true"> + <stringProp name="WhileController.condition">${__jexl3("${DEPLOY_STATUS}"!="[]")}</stringProp> + </WhileController> <hashTree> - <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> - <collectionProp name="Asserion.test_strings"> - <stringProp name="49586">200</stringProp> - </collectionProp> - <stringProp name="Assertion.custom_message"></stringProp> - <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> - <boolProp name="Assertion.assume_success">false</boolProp> - <intProp name="Assertion.test_type">8</intProp> - </ResponseAssertion> - <hashTree /> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Policy Undeployed" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> + <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> + <stringProp name="HTTPSampler.protocol">http</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/policy/pap/v1/policies/status/</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Deploy status" enabled="true"> + <stringProp name="RegexExtractor.useHeaders">false</stringProp> + <stringProp name="RegexExtractor.refname">DEPLOY_STATUS</stringProp> + <stringProp name="RegexExtractor.regex">(\W{2})</stringProp> + <stringProp name="RegexExtractor.template">$1$</stringProp> + <stringProp name="RegexExtractor.default">NotFound</stringProp> + <stringProp name="RegexExtractor.match_number">1</stringProp> + </RegexExtractor> + <hashTree/> + </hashTree> + <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If not valid, wait a min" enabled="true"> + <stringProp name="IfController.condition">${__jexl3("${DEPLOY_STATUS}"!="[]")}</stringProp> + <boolProp name="IfController.evaluateAll">false</boolProp> + <boolProp name="IfController.useExpression">true</boolProp> + </IfController> + <hashTree> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Wait a minute" enabled="true"> + <stringProp name="ConstantTimer.delay">60000</stringProp> + </ConstantTimer> + <hashTree/> + <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Waiting" enabled="true"> + <boolProp name="displayJMeterProperties">false</boolProp> + <boolProp name="displayJMeterVariables">true</boolProp> + <boolProp name="displaySystemProperties">false</boolProp> + </DebugSampler> + <hashTree/> + </hashTree> </hashTree> </hashTree> - <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policy Deleted" enabled="true" /> + <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policy Deleted" enabled="true"/> <hashTree> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CheckPDPGroupQueryForDeletedPolicy" enabled="true"> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Wait 2 minutes" enabled="true"> + <stringProp name="ConstantTimer.delay">120000</stringProp> + </ConstantTimer> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Assert PDP Group Query for Deleted Policy" enabled="true"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> - <collectionProp name="Arguments.arguments" /> + <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="HTTPSampler.domain">${PAP_HOST}</stringProp> <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp> @@ -516,7 +502,7 @@ <stringProp name="HTTPSampler.response_timeout"></stringProp> </HTTPSamplerProxy> <hashTree> - <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="Assert Policy in apex subgroup" enabled="true"> + <JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="Assert Policy not in apex subgroup" enabled="true"> <stringProp name="JSON_PATH">$.groups[0].pdpSubgroups[0].policies</stringProp> <stringProp name="EXPECTED_VALUE">operational.apex.sampledomain</stringProp> <boolProp name="JSONVALIDATION">false</boolProp> @@ -524,7 +510,7 @@ <boolProp name="INVERT">false</boolProp> <boolProp name="ISREGEX">false</boolProp> </JSONPathAssertion> - <hashTree /> + <hashTree/> </hashTree> </hashTree> <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> @@ -563,7 +549,7 @@ </objProp> <stringProp name="filename"></stringProp> </ResultCollector> - <hashTree /> + <hashTree/> <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> <boolProp name="ResultCollector.error_logging">false</boolProp> <objProp> @@ -598,9 +584,9 @@ <connectTime>true</connectTime> </value> </objProp> - <stringProp name="filename">distribution_stability.jtl</stringProp> + <stringProp name="filename"></stringProp> </ResultCollector> - <hashTree /> + <hashTree/> </hashTree> </hashTree> </hashTree> |