summaryrefslogtreecommitdiffstats
path: root/docs/development/devtools/testing
diff options
context:
space:
mode:
Diffstat (limited to 'docs/development/devtools/testing')
-rw-r--r--docs/development/devtools/testing/csit.rst196
1 files changed, 196 insertions, 0 deletions
diff --git a/docs/development/devtools/testing/csit.rst b/docs/development/devtools/testing/csit.rst
new file mode 100644
index 00000000..4eb1256c
--- /dev/null
+++ b/docs/development/devtools/testing/csit.rst
@@ -0,0 +1,196 @@
+.. This work is licensed under a
+.. Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _policy-csit-label:
+
+Policy Framework CSIT Testing
+#############################
+
+.. contents::
+ :depth: 3
+
+The Continuous System and Integration Testing suites are run normally as a Jenkins job to assert
+that common usage of Policy Framework services are running as expected.
+
+This article provides the steps to run CSIT tests in a local environment, most commonly after a
+significant code change.
+
+.. note::
+ If building images locally, follow the instructions :ref:`here <building-pf-docker-images-label>`
+
+
+First, clone policy/docker repo from gerrit:
+
+.. code-block:: bash
+
+ git clone "https://gerrit.onap.org/r/policy/docker"
+
+On this whole article, it's assumed the base folder for policy-docker repository is
+`~/git/policy/docker`
+
+Under the folder `~/git/policy/docker/csit`, there are two main scripts to run the tests:
+
+* run-k8s-csit.sh
+* run-project-csit.sh
+
+
+Running CSIT in Docker environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If not familiar with the PF Docker structure, the detailed information can be found :ref:`here <docker-label>`
+
+Running tests to validate code changes
+--------------------------------------
+
+After building image(s) locally, the compose file needs to be edited to use the local image when
+bringing up the container. Open file `~/git/policy/docker/compose/docker-compose.yml` and remove the
+tag `${CONTAINER_LOCATION}` from the image variable in the service description.
+If change is GUI related, then `docker-compose.gui.yml` might need to be edited as well, although
+there are no GUI related test suites.
+
+For example, if testing against a PAP change, a new onap/policy-pap image with latest and
+x.y.z-SNAPSHOT versions is available. When editing the docker-compose file, the following change
+would be done:
+
+From:
+
+.. code-block:: yaml
+
+ pap:
+ image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION}
+ container_name: policy-pap
+
+
+To:
+
+.. code-block:: yaml
+
+ pap:
+ image: onap/policy-pap:latest
+ container_name: policy-pap
+
+
+.. note::
+ Make sure to do the same changes to any other components that are using locally built images.
+
+
+After finished with edits in compose file, then use the `run-project-csit.sh` script to run the
+test suite.
+
+
+.. code-block:: bash
+
+ cd ~/git/policy/docker
+ ./csit/run-project-csit.sh <component>
+
+
+The <component> input is any of the policy components available:
+
+ - api
+ - pap
+ - apex-pdp
+ - distribution
+ - drools-pdp
+ - drools-applications
+ - xacml-pdp
+ - policy-acm-runtime
+
+Keep in mind that after the Robot executions, logs from docker-compose are printed and
+test logs might not be available on console and the containers are teared down. The tests results
+are available under `~/git/policy/docker/csit/archives/<component>/` folder.
+
+
+Running tests for learning PF usage
+-----------------------------------
+
+In that case, no changes required on docker-compose files, but commenting the tear down of docker
+containers might be required. For that, edit the file `run-project-csit.sh` script and comment the
+following line:
+
+.. code-block:: bash
+
+ # source_safely ${WORKSPACE}/compose/stop-compose.sh (currently line 36)
+
+
+This way, the docker containers are still up and running for more investigation.
+
+To tear them down, execute the `stop-compose.sh` script:
+
+.. code-block:: bash
+
+ cd ~/git/policy/docker/compose
+ ./stop-compose.sh
+
+
+Running CSIT in Micro K8S environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The microk8s version of Policy Framework was brought up for integration test in PF as whole, such
+as Stability and Performance tests, but can be used for CSIT validation as well. The helm charts
+are under `~/git/policy/docker/helm` folder.
+
+
+Running tests or installing one PF component
+--------------------------------------------
+
+If needed to install or run tests for an specific PF component, the `run-k8s-csit.sh` script can be
+used to run the test suite or installation with the proper arguments.
+
+
+.. code-block:: bash
+
+ cd ~/git/policy/docker
+ ./csit/run-k8s-csit.sh install <component>
+
+
+The <component> input is any of the policy components available:
+
+ - api
+ - pap
+ - apex-pdp
+ - distribution
+ - drools-pdp
+ - xacml-pdp
+ - clamp
+
+
+Different from Docker usage, the microk8s installation is not removed when tests finish.
+
+
+Installing all available PF components
+--------------------------------------
+
+Use the `run-k8s-csit.sh` script to install PF components with Prometheus server available.
+
+.. code-block:: bash
+
+ cd ~/git/policy/docker
+ ./csit/run-k8s-csit.sh install
+
+
+In this case, no tests are executed and the environment can be used for other integration tests
+such as Stability and Performance, Smoke tests or manual test.
+
+
+Uninstall and clean up
+----------------------
+
+If running the CSIT tests with microk8s environment, docker images for the tests suites are created.
+To clean them up, user `docker prune <https://docs.docker.com/config/pruning/>`_ command.
+
+To uninstall policy helm deployment and/or the microk8s cluster, use `run-k8s-csit.sh`
+
+
+.. code-block:: bash
+
+ cd ~/git/policy/docker
+
+ # to uninstall deployment
+ ./csit/run-k8s-csit.sh uninstall
+
+ # to remove cluster
+ ./csit/run-k8s-csit.sh clean
+
+
+End of document \ No newline at end of file