Update S3P testing xacml PDP documentation 97/136597/1
authorFrancescoFioraEst <francesco.fiora@est.tech>
Mon, 20 Nov 2023 14:23:22 +0000 (14:23 +0000)
committerFrancesco Fiora <francesco.fiora@est.tech>
Mon, 20 Nov 2023 14:28:00 +0000 (14:28 +0000)
Issue-ID: POLICY-4873
Change-Id: I9137c4b75c2e43dc68e225ac86bd18a8a7175af2
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png [changed mode: 0644->0755]
docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png [new file with mode: 0755]
docs/development/devtools/testing/s3p/xacml-s3p.rst

old mode 100644 (file)
new mode 100755 (executable)
index 2c27967..b5ef579
Binary files a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png differ
diff --git a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png
new file mode 100755 (executable)
index 0000000..d45aeee
Binary files /dev/null and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png differ
index 5ea2e28..2ca0a53 100644 (file)
@@ -9,39 +9,48 @@
 
 ##########################
 
-Performance Test of Policy XACML PDP (Jakarta)
-**********************************************
+Policy XACML PDP S3P Tests
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-The Performance test was executed by performing requests
-against the Policy RESTful APIs.
+Both the Performance and the Stability tests were executed by performing requests
+against Policy components installed in Kubernetes environment. These tests were all
+performed on a Ubuntu VM with 32GB of memory, 16 CPU and 100GB of disk space.
 
-A default ONAP installation in the Policy tenant in UNH was used to run the tests.
+Policy XACML PDP Deployment
++++++++++++++++++++++++++++
 
-The Agent VMs in this lab have the following configuration:
+In an effort to allow the execution of the s3p tests to be as close to automatic as possible,
+a script will be executed that will perform the following:
 
-- 16GB RAM
-- 8 VCPU
+- Install of a microk8s kubernetes environment
+- Bring up the policy components
+- Checks that the components are successfully up and running before proceeding
+- Install Java 17
+- Install Jmeter locally and configure it
+- Specify whether you want to run stability or performance tests
 
-Summary
-=======
 
-The Performance test was executed, and the result analysed, via:
+The remainder of this document outlines how to run the tests and the test results
 
-.. code-block:: bash
+Common Setup
+++++++++++++
+The common setup for performance and stability tests is now automated - being carried out by a script in- **testsuites/run-s3p-test.sh**.
 
-    jmeter -Jduration=1200 -Jusers=10 \
-        -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
-        -Jxacml_port=30111 -Jpap_port=30197 -Japi_port=30664 \
-        -n -t perf.jmx -l testresults.jtl
+Clone the policy-xacml-pdp repo to access the test scripts
 
-Note: the ports listed above correspond to port 6969 of the respective components.
+.. code-block:: bash
 
-The performance tests runs the following, all in parallel:
+    git clone https://gerrit.onap.org/r/policy/xacml-pdp xacml-pdp
 
-- Healthcheck, 10 simultaneous threads
-- Statistics, 10 simultaneous threads
-- Decisions, 10 simultaneous threads, each running the following in sequence:
+Stability Test of Policy XACML PDP
+++++++++++++++++++++++++++++++++++
 
+Test Plan
+---------
+The 24 hours stability test ran the following steps.
+
+- Healthcheck, 2 simultaneous threads
+- Decisions, 2 simultaneous threads, each running the following tasks in sequence:
    - Monitoring Decision
    - Monitoring Decision, abbreviated
    - Naming Decision
@@ -50,62 +59,97 @@ The performance tests runs the following, all in parallel:
    - Frequency Limiter Guard Decision
    - Min/Max Guard Decision
 
-When the script starts up, it uses policy-api to create, and policy-pap to deploy,
-the policies that are needed by the test.  It assumes that the "naming" policy has
-already been created and deployed.  Once the test completes, it undeploys and deletes
-the policies that it previously created.
+This runs for 24 hours. Test results are present in the **testsuites/automated-performance/s3pTestResults.jtl**
+file and in **/tmp/** directory. Logs are present for jmeter in **testsuites/automated-performance/jmeter.log** and
+**testsuites/automated-performance/nohup.out**
 
-Results
-=======
+Run Test
+--------
 
-The test was run for 20 minutes with 10 users (i.e., threads), with the following results:
+The code in the setup section also serves to run the tests. Just one execution needed to do it all.
 
-.. csv-table::
-   :header: "Number of Users", "Throughput (requests/second)", "Average Latency (ms)"
+.. code-block:: bash
 
-   10, 4603, 2
+    bash run-s3p-test.sh run stability
 
-.. image:: xacml-s3p-results/s3p-perf-xacml.png
+Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file.
 
+This file can be imported into the Jmeter GUI for visualization. The below results are tabulated from the GUI.
 
-Stability Test of Policy XACML PDP
-**********************************
+Test Results
+------------
 
-This test was run using jmeter on a default
-ONAP installation in the Policy tenant in UNH.
+**Summary**
 
-The Agent VMs in this lab have the following configuration:
+Stability test plan was triggered for 24 hours.
 
-- 16GB RAM
-- 8 VCPU
+**Test Statistics**
 
-Summary
-=======
+=======================  =================  ========================  =========================
+**Total # of requests**  **Error %**        **Average Latency (ms)**  **Measured requests/sec**
+=======================  =================  ========================  =========================
+  63618103                 0.00 %             5 ms                      736.064 ms
+=======================  =================  ========================  =========================
 
-The stability test was performed on a default ONAP OOM installation in the Policy tenant of the UNH lab.
-JMeter injected the traffic defined in the
-`XACML PDP stability script
-<https://git.onap.org/policy/xacml-pdp/tree/testsuites/stability/src/main/resources/testplans/stability.jmx>`_
-with the following command:
+**JMeter Results**
 
-.. code-block:: bash
+.. image:: xacml-s3p-results/s3p-stability-xacml.png
 
-    jmeter.sh -Jduration=259200 -Jusers=2 -Jxacml_ip=$ip -Jpap_ip=$ip -Japi_ip=$ip \
-        -Jxacml_port=30111 -Jpap_port=30197 -Japi_port=30664 --nongui --testfile stability.jmx
+**Policy component Setup**
 
-Note: the ports listed above correspond to port 6969 of the respective components.
+==============================================  ====================================================================  ===========================================
+**NAME**                                        **IMAGE**                                                             **PORT**
+==============================================  ====================================================================  ===========================================
+mariadb-galera-0                                docker.io/bitnami/mariadb-galera:10.5.8                               3306/TCP
+policy-models-simulator-bcd494d87-cldfr         nexus3.onap.org:10001/onap/policy-models-simulator:3.0.2-SNAPSHOT     30904/TCP
+policy-apex-pdp-0                               nexus3.onap.org:10001/onap/policy-apex-pdp:3.0.2-SNAPSHOT             30001/TCP
+prometheus-f66f97b6-kpg5c                       nexus3.onap.org:10001/prom/prometheus:latest                          30909/TCP
+policy-distribution-86777bdd78-95zjx            nexus3.onap.org:10001/onap/policy-distribution:3.0.2-SNAPSHOT         30006/TCP
+policy-clamp-ac-http-ppnt-7b99cbfbf8-d5zjk      nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.0.3-SNAPSHOT
+policy-clamp-ac-pf-ppnt-55c4cb99f4-pp699        nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.0.3-SNAPSHOT     30008/TCP
+policy-clamp-ac-k8s-ppnt-6d854cc8b6-nzlgh       nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.0.3-SNAPSHOT
+policy-clamp-runtime-acm-5c6d8fbfb-zww5j        nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.0.3-SNAPSHOT    30007/TCP
+policy-pap-847d89997d-gljzh                     nexus3.onap.org:10001/onap/policy-pap:3.0.2-SNAPSHOT                  30003/TCP
+policy-xacml-pdp-656d57d578-9h6fx               nexus3.onap.org:10001/onap/policy-xacml-pdp:3.0.2-SNAPSHOT            30004/TCP
+policy-api-58cb45fc9b-9qcx6                     nexus3.onap.org:10001/onap/policy-api:3.0.2-SNAPSHOT                  30002/tcp
+==============================================  ====================================================================  ===========================================
 
-The default log level of the root and org.eclipse.jetty.server.RequestLog loggers in the logback.xml
-of the XACML PDP
-(om/kubernetes/policy/components/policy-xacml-pdp/resources/config/logback.xml)
-was set to WARN since the OOM installation did have log rotation enabled of the
-container logs in the kubernetes worker nodes.
+.. Note::
 
-The stability test, stability.jmx, runs the following, all in parallel:
+              .. container:: paragraph
+
+                  There were no failures during the 24 hours test.
+
+The XACML PDP offered very good performance with JMeter for the traffic mix described above.
+The average transaction time is insignificant.
+
+
+Performance Test of Policy XACML PDP
+++++++++++++++++++++++++++++++++++++
+
+Introduction
+------------
+
+Performance test of acm components has the goal of testing the min/avg/max processing time and rest call throughput for all the requests with multiple requests at the same time.
+
+Setup Details
+-------------
+
+We can setup the environment and execute the tests like this from the **xacml-pdp/testsuites** directory
+
+Test Plan
+---------
+
+Performance test plan is the same as the stability test plan above except for the few differences listed below.
+
+- Increase the number of threads up to 10 (simulating 10 users' behaviours at the same time).
+- Reduce the test time to 20 minutes.
+
+The performance tests runs the following, all in parallel:
+
+- Healthcheck, 10 simultaneous threads
+- Decisions, 10 simultaneous threads, each running the following in sequence:
 
-- Healthcheck, 2 simultaneous threads
-- Statistics, 2 simultaneous threads
-- Decisions, 2 simultaneous threads, each running the following tasks in sequence:
    - Monitoring Decision
    - Monitoring Decision, abbreviated
    - Naming Decision
@@ -119,16 +163,32 @@ the policies that are needed by the test.  It assumes that the "naming" policy h
 already been created and deployed.  Once the test completes, it undeploys and deletes
 the policies that it previously created.
 
-Results
-=======
+Run Test
+--------
 
-The stability summary results were reported by JMeter with the following summary line:
+The code in the setup section also serves to run the tests. Just one execution needed to do it all.
 
 .. code-block:: bash
 
-    summary = 941639699 in 71:59:36 = 3633.2/s Avg:     1 Min:     0 Max:   842 Err:     0 (0.00%)
+    bash run-s3p-test.sh run performance
 
-The XACML PDP offered very good performance with JMeter for the traffic mix described above.
-The average transaction time is insignificant.  The maximum transaction time of 842 ms.
-There was a Drools stability test running in parallel, hence the actual load was higher.
+Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file and in **/tmp/** directory.
+
+This file can be imported into the Jmeter GUI for visualization. The below results are tabulated from the GUI.
+
+Test Results
+------------
+
+**Summary**
 
+The test was run for 20 minutes with 10 users (i.e., threads), with the following results:
+
+**Test Statistics**
+
+=======================  =================  ========================  =========================
+**Total # of requests**  **Error %**        **Average Latency (ms)**  **Measured requests/sec**
+=======================  =================  ========================  =========================
+  912141                   0.00 %             25.5666 ms                741.917 ms
+=======================  =================  ========================  =========================
+
+.. image:: xacml-s3p-results/s3p-perf-xacml.png