| commit | eb302297bd3dfd3977a24bfc3ef5d10547dfc98c | [log] [tgz] |
|---|---|---|
| author | garciadeblas <gerardo.garciadeblas@telefonica.com> | Sat Jun 18 00:02:18 2022 +0200 |
| committer | garciadeblas <gerardo.garciadeblas@telefonica.com> | Sat Jun 18 00:04:01 2022 +0200 |
| tree | fa2ca185ad908a0acbbb02334c83f4c3707a7eee | |
| parent | 631d1616bfd6f500ab4c454967678cbb042dcd8c [diff] |
Fix typo in slice_02 introduced by commit 6e121fd Change-Id: I8164b63666c3f87c39da55b8fe6a0bcd4ab27593 Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
This repository contains tools and configuration files for testing and automation needs of OSM projet
envfile.rcThis bash script can be used to setup your environment to execute the tests.
python3 -m pip install -r requirements.txt python3 -m pip install -r requirements-dev.txt # Download community packages PACKAGES_FOLDER=osm-packages git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
Configure a file envfile.rc copying from envconfig-local.rc and set the required variables
# VIM Setup OS_USERNAME=<openstack_username> OS_PASSWORD=<openstack_password> OS_TENANT_NAME=<openstack_tenant_name> OS_AUTH_URL=<openstack_authorization_url> OS_TENANT_ID=<openstack_tenant_id> # OSM Setup OSM_HOSTNAME=<osm_ip_address> VIM_TARGET=<osm_vim_name> VIM_MGMT_NET=<osm_vim_mgmt_name> # Clouds file datacenter OS_CLOUD=<datacenter_in_clouds_file> # SDNCs file OS_SDNC=<SDN_controller_in_sdncs_file> # K8S config file K8S_CREDENTIALS=<path_to_kubeconfig> # The following set of environment variables will be used in host # of the robot framework. Not needed for docker execution # Folder where Robot tests are stored ROBOT_DEVOPS_FOLDER=robot-systest # Folder to save alternative DUT environments (optional) ENVIRONMENTS_FOLDER=environments # Folder where all required packages are stored PACKAGES_FOLDER=osm-packages # Folder where test results should be exported ROBOT_REPORT_FOLDER=results
If you have installed all the dependecnies, the way of executing the tests is via the following command:
source envfile.rc robot -d reports -i <testing_tags> testsuite/
It is possible to run the tests directly from the repository or using a docker container with the tests
Create the docker container:
docker build -f docker/Dockerfile -t osmtests .
Options:
--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: sanityVolumes:
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>
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: ```bash 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> ``` ## Test 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: ```bash robot -i <tag_01> -i <tag_02> testsuite/ ``` The following tags exist for each testsuite: - A tag per testsuite using its mnemonic (e.g. `basic_01`) - Cluster tag for each of the statistically similar tests: - `cluster_main`: `basic_01`, `basic_05`, `basic_08`, `basic_09`, `basic_15`, `basic_16`, `basic_17`, `hackfest_basic`, `hackfest_multivdu`, `hackfest_cloudinit`, `quotas_01` - `cluster_ee_config`: `basic_06`, `basic_07`, `basic_11`, `basic_12`, `basic_13`, `basic_14`, `k8s_05`, `k8s_06` - `cluster_relations`: `basic_11`, `basic_13`, `basic_14` - `cluster_epa`: `epa_01`, `epa_02`, `epa_03`, `epa_04`, `epa_05` - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_05`, `k8s06`, `k8s_07`, `k8s_08`, `k8s_09`, `k8s_10`, `k8s_11`, `sa_08` - `cluster_k8s_charms`: `k8s_05`, `k8s_06` - `cluster_sa`: `sa_01`, `sa_02`, `sa_07` - `cluster_slices`: `slice_01`, `slice_02` - daily: for all testsuites that will run in the daily job - regression: for all testsuites that should pass in the current stable branch - sanity: for all testsuites that should be passed by each commit in the stage3 to be successfully verified by Jenkins, currently `basic_07`, `basic_11`, `k8s_03`, `k8s_04`, `sa_02`, `hackfest_basic`, `hackfest_cloudinit` In 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 test - verify: 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. ## Built With * [Python](www.python.org/) - The language used * [Robot Framework](robotframework.org) - The testing framework ## Contributing Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://osm.etsi.org/gitweb/?p=osm/tests.git;a=tags). ## License This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details