Update README with instructions to setup enviroment and the right tags 08/12108/6
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Wed, 6 Apr 2022 09:46:58 +0000 (11:46 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Fri, 17 Jun 2022 13:39:45 +0000 (15:39 +0200)
Change-Id: I7a623bbaa29bd86e8100ce81c938abbab4ccaa1e
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
README.md

index 0bb2493..f7245e6 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
 <!--
-Copyright 2020 ETSI
+Copyright ETSI
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -21,27 +21,25 @@ This repository contains tools and configuration files for testing and automatio
 
 ## Prerequisites
 
-* **Robot Framework**
-* **Packages**: ssh ping yq git
-* **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary
-* Clone **osm-packages** from gitlab
-* Environment config file for your infrastructure [envfile.rc]
+- **Robot Framework**
+- **Packages**: ssh ping yq git
+- **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary
+- Clone **osm-packages** from gitlab
+- Environment config file for your infrastructure `envfile.rc`
 
 ## Installing
 
 This bash script can be used to setup your environment to execute the tests.
 
 ```bash
-PACKAGES_FOLDER=osm-packages
-add-apt-repository -y ppa:rmescandon/yq && apt update && apt install yq git iputils-ping ssh -y
-pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary \
-    robotframework-sshlibrary
-snap install charm
+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}
 ```
 
-envfile.rc
+Configure a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables
 
 ```bash
 # VIM Setup
@@ -80,11 +78,22 @@ PACKAGES_FOLDER=osm-packages
 ROBOT_REPORT_FOLDER=results
 ```
 
-## Deployment
+## Running the tests
+
+### From the host machine
+
+If you have installed all the dependecnies, the way of executing the tests is via the following command:
+
+```bash
+source envfile.rc
+robot -d reports -i <testing_tags> testsuite/
+```
+
+### From docker container
 
 It is possible to run the tests directly from the repository or using a docker container with the tests
 
-1. Docker container creation:
+Create the docker container:
 
 ```bash
 docker build -f docker/Dockerfile -t osmtests .
@@ -92,17 +101,19 @@ 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: sanity
+- `--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: sanity
 
 Volumes:
 
-* <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
-* <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
-* <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
-* <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
+- <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
+- <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
+- <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
+- <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
+
+Then, run the tests:
 
 ```bash
 docker run --rm=true -t osmtests --env-file <env_file> \
@@ -115,13 +126,32 @@ docker run --rm=true -t osmtests --env-file <env_file> \
        -t <testing_tags>
 ```
 
-1. Running the tests manually:
+### From an environment identical to OSM CICD
+
+````bash
+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
+```
 
-The way of executing the tests is via the following command:
+Then, run the tests:
 
 ```bash
-source envfile.rc
-robot -d reports -i <testing_tags> testsuite/
+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
@@ -139,13 +169,14 @@ 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`,
+    `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_07`, `k8s_08`, `sa_08`
+  - `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`
@@ -153,7 +184,7 @@ The following tags exist for each testsuite:
 - 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`
+  `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
@@ -189,4 +220,3 @@ We use [SemVer](http://semver.org/) for versioning. For the versions available,
 
 This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details
 
-## Acknowledgments