summaryrefslogtreecommitdiffstats
path: root/testsuites/stability/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/stability/src/main')
-rw-r--r--testsuites/stability/src/main/resources/setup/config/jsonConfigs/papConfigFile.json2
-rwxr-xr-xtestsuites/stability/src/main/resources/setup/config/wait_for_port.sh2
-rw-r--r--testsuites/stability/src/main/resources/setup/distribution/etc/logback.xml4
-rw-r--r--testsuites/stability/src/main/resources/setup/docker-compose.yml7
-rwxr-xr-xtestsuites/stability/src/main/resources/setup/start.sh2
-rwxr-xr-xtestsuites/stability/src/main/resources/setup/versions.sh10
-rw-r--r--testsuites/stability/src/main/resources/testplans/README.stability.md13
-rwxr-xr-xtestsuites/stability/src/main/resources/testplans/run_test.sh4
-rw-r--r--testsuites/stability/src/main/resources/testplans/stability.jmx358
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(&quot;DEPLOY_STATUS&quot;, &quot;notset&quot;);</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(&quot;${DEPLOY_STATUS}&quot;!=&quot;true&quot;)}</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">&quot;deploy&quot;:(.+?),&quot;state&quot;:&quot;SUCCESS&quot;</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(&quot;${DEPLOY_STATUS}&quot;!=&quot;true&quot;)}</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(&quot;DEPLOY_STATUS&quot;, &quot;notset&quot;);</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(&quot;${DEPLOY_STATUS}&quot;!=&quot;[]&quot;)}</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(&quot;${DEPLOY_STATUS}&quot;!=&quot;[]&quot;)}</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>