summaryrefslogtreecommitdiffstats
path: root/testsuites/performance
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/performance')
-rw-r--r--testsuites/performance/src/main/resources/testplans/README.perf.md17
-rwxr-xr-xtestsuites/performance/src/main/resources/testplans/addcsars.sh9
-rwxr-xr-xtestsuites/performance/src/main/resources/testplans/clearuppolicies.sh8
-rw-r--r--testsuites/performance/src/main/resources/testplans/performance.jmx375
-rwxr-xr-xtestsuites/performance/src/main/resources/testplans/removecsars.sh9
-rwxr-xr-xtestsuites/performance/src/main/resources/testplans/run_test.sh2
6 files changed, 181 insertions, 239 deletions
diff --git a/testsuites/performance/src/main/resources/testplans/README.perf.md b/testsuites/performance/src/main/resources/testplans/README.perf.md
index cbde3d76..653a05aa 100644
--- a/testsuites/performance/src/main/resources/testplans/README.perf.md
+++ b/testsuites/performance/src/main/resources/testplans/README.perf.md
@@ -1,26 +1,19 @@
Performance Test for Policy Distribution
## Steps to Run performance test
1. Download Apache JMeter
-Download JMeter 5.0 from https://jmeter.apache.org/download_jmeter.cgi, and extracted it locally.
+Download JMeter 5.x.x from https://jmeter.apache.org/download_jmeter.cgi, and extracted it locally.
2. Run the setup-components script found within simulator setup in the stability test folder.
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
+3. Launch the policy distribution service by running the start script found within setup folder
in the stability test folder.
-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
-```
-4. Run the JMeter performance test
+4. Run the JMeter performance test from testplans folder.
```
-rm -f performance.log; <jmeter_dir>/bin/jmeter.sh -t performance.jmx -n -Jhost=<pdp service hostname> -Jduration=100 -l performance.log
+./run_test.sh
```
-Search for 'get policy failed' in the performance.log file to see if there is any errors found during the performance test.
+Search for 'get policy failed' in the log file to see if there is any errors found during the performance test.
## JMeter properties
We can configure the following properties when running the JMeter performance test for policy distribution
diff --git a/testsuites/performance/src/main/resources/testplans/addcsars.sh b/testsuites/performance/src/main/resources/testplans/addcsars.sh
index e446a67b..6b386e2f 100755
--- a/testsuites/performance/src/main/resources/testplans/addcsars.sh
+++ b/testsuites/performance/src/main/resources/testplans/addcsars.sh
@@ -1,5 +1,5 @@
# ============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.
@@ -16,11 +16,6 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-# the directory of the script
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-echo "${DIR}"
-
if [ $# -le 1 ]
then
echo "Usage ./addcsars.sh \$TESTCSARSLOCATION \$TARGETDIRECTORY"
@@ -32,4 +27,4 @@ TARGETDIRECTORY=$2
for file in "$TESTCSARSLOCATION"/*
do
cp "$file" "$TARGETDIRECTORY"
-done \ No newline at end of file
+done
diff --git a/testsuites/performance/src/main/resources/testplans/clearuppolicies.sh b/testsuites/performance/src/main/resources/testplans/clearuppolicies.sh
index d67df1c1..e9b4252a 100755
--- a/testsuites/performance/src/main/resources/testplans/clearuppolicies.sh
+++ b/testsuites/performance/src/main/resources/testplans/clearuppolicies.sh
@@ -1,5 +1,5 @@
# ============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.
@@ -19,7 +19,7 @@
# the directory of the script
if [ $# -le 3 ]
then
- echo "Usage ./addcsars.sh \$POLICY_API_IP \$POLICY_API_PORT \$POLICY_PAP_IP \$POLICY_PAP_PORT"
+ echo "Usage ./clearuppolicies.sh \$POLICY_API_IP \$POLICY_API_PORT \$POLICY_PAP_IP \$POLICY_PAP_PORT"
exit 1
fi
POLICY_API_IP=$1
@@ -36,9 +36,9 @@ send_delete_request(){
COUNTER=1
while [ $COUNTER != 11 ]
do
- send_delete_request https://"$POLICY_PAP_IP":"$POLICY_PAP_PORT"/policy/pap/v1/pdps/policies/\
+ send_delete_request http://"$POLICY_PAP_IP":"$POLICY_PAP_PORT"/policy/pap/v1/pdps/policies/\
operational.apex.sampledomain.test$COUNTER
- send_delete_request https://"$POLICY_API_IP":"$POLICY_API_PORT"/policy/api/v1/policytypes/operational\
+ send_delete_request http://"$POLICY_API_IP":"$POLICY_API_PORT"/policy/api/v1/policytypes/operational\
.apex.sampledomain.test$COUNTER/versions/1.0.0/policies/operational.apex.sampledomain.test$COUNTER/versions/1.0.0
COUNTER=$((COUNTER +1))
done
diff --git a/testsuites/performance/src/main/resources/testplans/performance.jmx b/testsuites/performance/src/main/resources/testplans/performance.jmx
index 2115cdee..fbc3203b 100644
--- a/testsuites/performance/src/main/resources/testplans/performance.jmx
+++ b/testsuites/performance/src/main/resources/testplans/performance.jmx
@@ -1,7 +1,7 @@
<?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">
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="performance test plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
@@ -10,17 +10,17 @@
<collectionProp name="Arguments.arguments">
<elementProp name="PAP_HOST" elementType="Argument">
<stringProp name="Argument.name">PAP_HOST</stringProp>
- <stringProp name="Argument.value">${__P(host,10.2.0.110)}</stringProp>
+ <stringProp name="Argument.value">${__P(paphost,172.19.0.8)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="PAP_PORT" elementType="Argument">
<stringProp name="Argument.name">PAP_PORT</stringProp>
- <stringProp name="Argument.value">7000</stringProp>
+ <stringProp name="Argument.value">6969</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="API_HOST" elementType="Argument">
<stringProp name="Argument.name">API_HOST</stringProp>
- <stringProp name="Argument.value">${__P(host,10.2.0.110)}</stringProp>
+ <stringProp name="Argument.value">${__P(apihost,172.19.0.7)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="API_PORT" elementType="Argument">
@@ -30,12 +30,12 @@
</elementProp>
<elementProp name="DISTRIBUTION_HOST" elementType="Argument">
<stringProp name="Argument.name">DISTRIBUTION_HOST</stringProp>
- <stringProp name="Argument.value">${__P(distributionhost,127.0.0.1)}</stringProp>
+ <stringProp name="Argument.value">${__P(disthost,172.19.0.3)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DISTRIBUTION_PORT" elementType="Argument">
<stringProp name="Argument.name">DISTRIBUTION_PORT</stringProp>
- <stringProp name="Argument.value">7002</stringProp>
+ <stringProp name="Argument.value">6969</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DURATION" elementType="Argument">
@@ -53,6 +53,11 @@
<stringProp name="Argument.value">${__P(watchedfolder, /tmp/policydistribution/distributionmount)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
+ <elementProp name="POLICIES_UNDEPLOYED" elementType="Argument">
+ <stringProp name="Argument.name">POLICIES_UNDEPLOYED</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
</collectionProp>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
@@ -69,6 +74,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">
@@ -87,14 +93,14 @@
<AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
<collectionProp name="AuthManager.auth_list">
<elementProp name="" elementType="Authorization">
- <stringProp name="Authorization.url">https://${PAP_HOST}:${PAP_PORT}/policy/pap/v1</stringProp>
+ <stringProp name="Authorization.url">http://${PAP_HOST}:${PAP_PORT}/policy/pap/v1</stringProp>
<stringProp name="Authorization.username">healthcheck</stringProp>
<stringProp name="Authorization.password">zb!XztG34</stringProp>
<stringProp name="Authorization.domain"></stringProp>
<stringProp name="Authorization.realm"></stringProp>
</elementProp>
<elementProp name="" elementType="Authorization">
- <stringProp name="Authorization.url">https://${API_HOST}:${API_PORT}/policy/api/v1</stringProp>
+ <stringProp name="Authorization.url">http://${API_HOST}:${API_PORT}/policy/api/v1</stringProp>
<stringProp name="Authorization.username">healthcheck</stringProp>
<stringProp name="Authorization.password">zb!XztG34</stringProp>
<stringProp name="Authorization.domain"></stringProp>
@@ -109,6 +115,7 @@
</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"/>
@@ -116,7 +123,7 @@
<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}/removecsars.sh</stringProp>
+ <stringProp name="SystemSampler.command">${SCRIPT_DIR}removecsars.sh</stringProp>
<elementProp name="SystemSampler.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="Argument">
@@ -143,7 +150,7 @@
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="Argument">
<stringProp name="Argument.name"></stringProp>
- <stringProp name="Argument.value">${SCRIPT_DIR}/testCsars</stringProp>
+ <stringProp name="Argument.value">${SCRIPT_DIR}testCsars</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="" elementType="Argument">
@@ -158,202 +165,93 @@
</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/>
- </hashTree>
+ <hashTree/>
</hashTree>
- <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policys Created" enabled="true"/>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assert Policies Created" enabled="true"/>
<hashTree>
- <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
- <stringProp name="ConstantTimer.delay">30000</stringProp>
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Wait a minute for policies to deploy" enabled="true">
+ <stringProp name="ConstantTimer.delay">60000</stringProp>
</ConstantTimer>
<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">https</stringProp>
- <stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp name="HTTPSampler.path">policy/pap/v1/policies/deployed</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>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Assertions" enabled="true"/>
<hashTree>
- <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
- <stringProp name="JSONPostProcessor.referenceNames">policies</stringProp>
- <stringProp name="JSONPostProcessor.jsonPathExprs">$[*]</stringProp>
- <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
- </JSONPostProcessor>
- <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="Assert 10 Policies Deployed" enabled="true">
- <collectionProp name="Asserion.test_strings">
- <stringProp name="1567">10</stringProp>
- </collectionProp>
- <stringProp name="Assertion.custom_message"></stringProp>
- <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
- <boolProp name="Assertion.assume_success">false</boolProp>
- <intProp name="Assertion.test_type">8</intProp>
- <stringProp name="Assertion.scope">variable</stringProp>
- <stringProp name="Scope.variable">policies_matchNr</stringProp>
- </ResponseAssertion>
- <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/deployed</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>
+ <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
+ <stringProp name="JSONPostProcessor.referenceNames">policies</stringProp>
+ <stringProp name="JSONPostProcessor.jsonPathExprs">$[*]</stringProp>
+ <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
+ </JSONPostProcessor>
+ <hashTree/>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert 10 Policies Deployed" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="1567">10</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">8</intProp>
+ <stringProp name="Assertion.scope">variable</stringProp>
+ <stringProp name="Scope.variable">policies_matchNr</stringProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CheckPDPGroupQuery" 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/pdps</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>
+ <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
+ <stringProp name="JSONPostProcessor.referenceNames">checkpdppolicies</stringProp>
+ <stringProp name="JSONPostProcessor.jsonPathExprs">$.groups[0].pdpSubgroups[0].policies[*]</stringProp>
+ <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
+ </JSONPostProcessor>
+ <hashTree/>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert 10 Policies Deployed" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="1567">10</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">8</intProp>
+ <stringProp name="Assertion.scope">variable</stringProp>
+ <stringProp name="Scope.variable">checkpdppolicies_matchNr</stringProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
</hashTree>
- <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CheckPDPGroupQuery" 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/pdps</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>
- <JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
- <stringProp name="JSONPostProcessor.referenceNames">checkpdppolicies</stringProp>
- <stringProp name="JSONPostProcessor.jsonPathExprs">$.groups[0].pdpSubgroups[0].policies[*]</stringProp>
- <stringProp name="JSONPostProcessor.match_numbers">-1</stringProp>
- </JSONPostProcessor>
- <hashTree/>
- <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert 10 Policies Deployed" enabled="true">
- <collectionProp name="Asserion.test_strings">
- <stringProp name="1567">10</stringProp>
- </collectionProp>
- <stringProp name="Assertion.custom_message"></stringProp>
- <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
- <boolProp name="Assertion.assume_success">false</boolProp>
- <intProp name="Assertion.test_type">8</intProp>
- <stringProp name="Assertion.scope">variable</stringProp>
- <stringProp name="Scope.variable">checkpdppolicies_matchNr</stringProp>
- </ResponseAssertion>
- <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/>
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Clear up Policies" enabled="true"/>
<hashTree>
@@ -392,6 +290,67 @@
</SystemSampler>
<hashTree/>
</hashTree>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Check Policy Deleted" enabled="true"/>
+ <hashTree>
+ <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Clean up variable" enabled="true">
+ <stringProp name="BeanShellSampler.query">vars.put(&quot;POLICIES_UNDEPLOYED&quot;, &quot;NotSet&quot;)</stringProp>
+ <stringProp name="BeanShellSampler.filename"></stringProp>
+ <stringProp name="BeanShellSampler.parameters"></stringProp>
+ <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
+ </BeanShellSampler>
+ <hashTree/>
+ <WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="Loop for checking policy status" enabled="true">
+ <stringProp name="WhileController.condition">${__jexl3(&quot;${POLICIES_UNDEPLOYED}&quot;!=&quot;[]&quot;)}</stringProp>
+ </WhileController>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Policy Status for undeploy" 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="Check empty response" enabled="true">
+ <stringProp name="RegexExtractor.useHeaders">false</stringProp>
+ <stringProp name="RegexExtractor.refname">POLICIES_UNDEPLOYED</stringProp>
+ <stringProp name="RegexExtractor.regex">(\W{2})</stringProp>
+ <stringProp name="RegexExtractor.template">$1$</stringProp>
+ <stringProp name="RegexExtractor.default">NotEmpty</stringProp>
+ <stringProp name="RegexExtractor.match_number">1</stringProp>
+ </RegexExtractor>
+ <hashTree/>
+ </hashTree>
+ <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If not undeployed, wait 2 min" enabled="true">
+ <stringProp name="IfController.condition">${__jexl3(&quot;${POLICIES_UNDEPLOYED}&quot;!=&quot;[]&quot;)}</stringProp>
+ <boolProp name="IfController.evaluateAll">false</boolProp>
+ <boolProp name="IfController.useExpression">true</boolProp>
+ </IfController>
+ <hashTree>
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Waiting" enabled="true">
+ <stringProp name="ConstantTimer.delay">120000</stringProp>
+ </ConstantTimer>
+ <hashTree/>
+ <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Check vars" 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"/>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="CheckPDPGroupQueryForDeletedPolicy" enabled="true">
@@ -504,7 +463,7 @@
<connectTime>true</connectTime>
</value>
</objProp>
- <stringProp name="filename">Distribution_Performance_Test.log</stringProp>
+ <stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
@@ -519,6 +478,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">
@@ -559,10 +519,15 @@
</elementProp>
</collectionProp>
<boolProp name="AuthManager.clearEachIteration">true</boolProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
</AuthManager>
<hashTree/>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="HealthCheck/Statistics" enabled="true"/>
<hashTree>
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
+ <stringProp name="ConstantTimer.delay">1000</stringProp>
+ </ConstantTimer>
+ <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"/>
@@ -623,10 +588,6 @@
</ResponseAssertion>
<hashTree/>
</hashTree>
- <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
- <stringProp name="ConstantTimer.delay">300</stringProp>
- </ConstantTimer>
- <hashTree/>
</hashTree>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
@@ -662,7 +623,7 @@
<connectTime>true</connectTime>
</value>
</objProp>
- <stringProp name="filename">HealthcheckAndStatisticsPerformance.log</stringProp>
+ <stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
diff --git a/testsuites/performance/src/main/resources/testplans/removecsars.sh b/testsuites/performance/src/main/resources/testplans/removecsars.sh
index e5528d81..5d9ccf6c 100755
--- a/testsuites/performance/src/main/resources/testplans/removecsars.sh
+++ b/testsuites/performance/src/main/resources/testplans/removecsars.sh
@@ -1,5 +1,5 @@
# ============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.
@@ -16,11 +16,6 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-# the directory of the script
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-echo "${DIR}"
-
if [ $# -le 0 ]
then
echo "Usage ./removecsars.sh \$TARGETDIRECTORY"
@@ -29,5 +24,3 @@ fi
TARGETDIRECTORY=$1
rm -f "$TARGETDIRECTORY"/*.csar
-
-
diff --git a/testsuites/performance/src/main/resources/testplans/run_test.sh b/testsuites/performance/src/main/resources/testplans/run_test.sh
index 44a98d38..7b959587 100755
--- a/testsuites/performance/src/main/resources/testplans/run_test.sh
+++ b/testsuites/performance/src/main/resources/testplans/run_test.sh
@@ -27,4 +27,4 @@ POLICY_DISTRIBUTION_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{
${JMETER_HOME}/bin/jmeter -n -t "${DIR}"/performance.jmx -Jduration=14400 \
-Japihost="${POLICY_API_IP}" \
-Jpaphost="${POLICY_PAP_IP}" \
- -Jdisthost="${POLICY_DISTRIBUTION_IP}"
+ -Jdisthost="${POLICY_DISTRIBUTION_IP}" -l distribution_performance.jtl &