diff options
author | adheli.tavares <adheli.tavares@est.tech> | 2021-10-18 17:26:44 +0100 |
---|---|---|
committer | adheli.tavares <adheli.tavares@est.tech> | 2021-10-21 08:54:59 +0100 |
commit | 555f2fd3c8321bbad9dbfc21f01982a50a1cd555 (patch) | |
tree | 99cdbf3482163fcb2d233d4e004cfed8e8c9cbff /testsuites/performance/src/main/resources/testplans | |
parent | 3b5519f9308f36e4cb056c2d2430c6fa46e98f4d (diff) |
Updating Distribution S3P configuration.
- fixing the scripts and jmx files after stability long run failures.
Issue-ID: POLICY-3654
Change-Id: I0ff0bf625f226f1b71664c1817cef65fbd5cf5a6
Signed-off-by: adheli.tavares <adheli.tavares@est.tech>
Diffstat (limited to 'testsuites/performance/src/main/resources/testplans')
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("POLICIES_UNDEPLOYED", "NotSet")</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("${POLICIES_UNDEPLOYED}"!="[]")}</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("${POLICIES_UNDEPLOYED}"!="[]")}</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 & |