| commit | 062faaf5ba6a9523abbb074fa765893330699637 | [log] [tgz] |
|---|---|---|
| author | Gabriel Cuba <gcuba@whitestack.com> | Thu Apr 27 17:06:54 2023 -0500 |
| committer | garciadeblas <gerardo.garciadeblas@telefonica.com> | Fri Jun 02 15:51:13 2023 +0200 |
| tree | 0f8b2ec9f481b40d88142f145ff5638539969c2d | |
| parent | f9bc21a330b97f58cc2c041b9cb6936f6da3b61f [diff] |
Feature 10957: Extend basic_26 to test client side TLS in helm based EE Change-Id: Ic8630dd8f8f7cbad270479ca07082ad73c85f1bd Signed-off-by: Gabriel Cuba <gcuba@whitestack.com>
This repository contains tools and configuration files for testing and automation needs of OSM projet
export OSM_HOSTNAME=<OSM_IP_ADDRESS> export VIM_TARGET=<VIM_REGISTERED_AT_OSM> export VIM_MGMT_NET=<NAME_OF_THE_MGMT_NETWORK_IN_THE_VIM> export K8S_CREDENTIALS= # path to the kubeconfig file of the K8s cluster to be tested export OS_CLOUD= # OpenStack Cloud defined in $HOME/.config/openstack/clouds.yaml or in /etc/openstack/clouds.yaml
docker build -f docker/Dockerfile -t osmtests .
docker run --rm=true --name tests -t --env-file envconfig.rc \ -v ~/.config/openstack/clouds.yaml:/etc/openstack/clouds.yaml \ -v ~/tests/reports:/robot-systest/reports \ osmtests \ -t sol003_01
You can use a different robot tag instead of sol003_01. The whole list of tags are gathered below in this README.
The following line will mount the required files for SOL003_01 testuite and will execute the test sol003_01
docker run --rm=true --name tests -t --env-file envconfig.rc \ -v ~/.config/openstack/clouds.yaml:/etc/openstack/clouds.yaml \ -v ~/tests/reports:/robot-systest/reports \ -v ~/tests/robot-systest/lib/sol003_common_lib.robot:/robot-systest/lib/sol003_common_lib.robot \ osmtests \ -t sol003_01
Relevant volumes to be mounted are:
Other relevant options to run tests are:
--env-file: It is the environmental file where is described the OSM target and VIM-o <osmclient_version> [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest-p <package_branch> [OPTIONAL]: OSM packages repository branch. Default: master-t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanityThis bash script can be used to setup your environment to execute the tests.
sudo apt-get update sudo apt-get install ssh ping yq git # Python packages used for the tests python3 -m pip install -r requirements.txt python3 -m pip install -r requirements-dev.txt # Download community packages git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git
Create a file envfile.rc copying from envconfig-local.rc and set the required variables.
source envfile.rc mkdir reports robot -d reports -i <testing_tags> testsuite/
git clone https://osm.etsi.org/gerrit/osm/devops git clone https://osm.etsi.org/gerrit/osm/IM git clone https://osm.etsi.org/gerrit/osm/osmclient git clone https://osm.etsi.org/gerrit/osm/tests # run HTTP server to server artifacts devops/tools/local-build.sh --install-qhttpd # generate debian packages locally that will be served by the HTTP server devops/tools/local-build.sh --module IM,osmclient,tests stage-2 # create docker image and store it locally as opensourcemano/tests:devel devops/tools/local-build.sh --module tests
Then, run the tests:
docker run --rm=true -t osmtests --env-file <env_file> \ -v <path_to_reports>:/reports osmtests \ -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \ -v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \ -v <path_to_kubeconfig>:/root/.kube/config \ -o <osmclient_version> \ -p <package_branch> \ -t <testing_tags>
All tests in the testsuites have tags. Tags allow to run only a set of tests identified by a tag. Several tags can be specified when running robot in the following way:
robot -i <tag_01> -i <tag_02> testsuite/
The following tags exist for each testsuite:
basic_01)cluster_main: basic_01, basic_05, basic_08, basic_09, basic_15, basic_16, basic_17, hackfest_basic, hackfest_multivdu, hackfest_cloudinit, quotas_01cluster_ee_config: basic_06, basic_07, basic_11, basic_12, basic_13, basic_14, k8s_05, k8s_06cluster_relations: basic_11, basic_13, basic_14cluster_epa: epa_01, epa_02, epa_03, epa_04, epa_05cluster_k8s: k8s_01, k8s_02, k8s_03, k8s_04, k8s_05, k8s06, k8s_07, k8s_08, k8s_09, k8s_10, k8s_11, sa_08cluster_k8s_charms: k8s_05, k8s_06cluster_sa: sa_01, sa_02, sa_07cluster_slices: slice_01, slice_02cluster_heal: heal_01, heal_02, heal_03, heal_04cluster_sol003: sol003_01basic_07, basic_11, k8s_03, k8s_04, sa_02, hackfest_basic, hackfest_cloudinitIn addition, the tag "cleanup" exists in those tests that perform any deletion. In that way, it can be invoked to retry the deletion if the tests were forcefully stopped.
For helping in the migration tests and other scenarios in which you don't want to destroy the deployments immediately, the following tags are used:
prepare: for the tests that are used to deploy the network services under testverify: for the tests that perform the actual testing, or changes for additional verifications (e.g. scaling).cleanup: already described above.So, for instance, you could first deploy a number of network services executing the tests with "prepare" tag, migrate to another OSM version, and then check the behavior executing with the "verify" tag. Finally, use the "cleanup" tag.
The output files of Robot include tyipically three files:
report.html: overview of the test execution results in HTML formatlog.html: details about the executed test cases in HTML formatoutput.xml: all the test execution results in machine readable XML formatMore information about these files here.
It is possible to use the tool rebot, included as part of the Robot Framework, to post-process the output file output.xml.
# To re-generate log and report from output.xml: rebot [-d <output_folder>] output.xml # To re-generate log and report (and optionally new output.xml) to include only certain tags: rebot [-d <output_folder>] -i <tag1> -i <tag2> ... -i <tagN> [-o <new_output_xml>] output.xml # To re-generate log and report (and optionally new output.xml) excluding certain tags: rebot [-d <output_folder>] -e <tag1> -e <tag2> ... -e <tagN> [-o <new_output_xml>] output.xml # To merge several test executions: rebot [-d <output_folder>] --merge output1.xml output2.xml ... outputN.xml
More information about post-processing Robot output files here
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the Apache2 License - see the LICENSE.md file for details