# OSM test automation project - osm/tests
-This repository contains tools and configuration files for testing and automation needs of OSM projet
+This repository contains tools and configuration files for testing and automation needs of OSM project.
## Prerequisites
- VIM already registered in OSM
- K8s cluster already registered in OSM (for tests involving a K8s cluster)
-## Quickstart (run tests using docker)
+## Quickstart. How to run tests using OSM docker images
### Configure the environment file
+Create a file `envconfig.rc` copying from `envconfig-local.rc` and set the required variables.
+
```
-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
+OSM_HOSTNAME=<OSM_IP_ADDRESS>
+VIM_TARGET=<VIM_REGISTERED_AT_OSM>
+VIM_MGMT_NET=<NAME_OF_THE_MGMT_NETWORK_IN_THE_VIM>
+OS_CLOUD=<OPENSTACK_CLOUD> # OpenStack Cloud defined in $HOME/.config/openstack/clouds.yaml or in /etc/openstack/clouds.yaml
+```
+
+### Run the tests
+
+```bash
+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 \
+ opensourcemano/tests:testing-daily \
+ -t sanity
```
+You can use a different robot tag instead of `sanity`. The whole list of tags are gathered below in this README.
+
+## How to build docker container for tests and run tests from there
+
### Create the docker container
```bash
-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.
-
## How to mount local tests folder for developing purposes
-The following line will mount the required files for SOL003_01 testuite and will execute the test `sol003_01`
+The following line will mount the folder `robot-systest`, including all libraries and testuites, and will execute the testsuite `sol003_01`:
```bash
docker run --rm=true --name tests -t --env-file envconfig.rc \
-v ~/.config/openstack/clouds.yaml:/etc/openstack/clouds.yaml \
+ -v ~/tests/robot-systest:/robot-systest \
-v ~/tests/reports:/robot-systest/reports \
- -v ~/tests/robot-systest/lib/sol003_common_lib.robot:/robot-systest/lib/sol003_common_lib.robot \
- osmtests \
+ -v ~/osm-packages:/robot-systest/osm-packages \
+ opensourcemano/tests:testing-daily \
-t sol003_01
```
- `-p <package_branch>` [OPTIONAL]: OSM packages repository branch. Default: master
- `-t <testing_tags>` [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
-
## How to run tests from a host
-### Installing
+In general, testing from docker images is the best way if you want to develop for OSM. However, sometimes it could be useful to run tests directly from the host.
+
+### Install dependencies
This bash script can be used to setup your environment to execute the tests.
### Configure the environment
-Create a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables.
+Create a file `envconfig.rc` copying from `envconfig-local.rc` and set the required variables (in this case, the use of `export` is mandatory).
+
+```
+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 OS_CLOUD=<OPENSTACK_CLOUD> # OpenStack Cloud defined in $HOME/.config/openstack/clouds.yaml or in /etc/openstack/clouds.yaml
+export K8S_CREDENTIALS= # path to the kubeconfig file of the K8s cluster to be tested
+export OCI_REGISTRY_URL= # URL of the OCI registry where helm charts used in test packages are stored.
+export OCI_REGISTRY_USER= # User of the OCI registry
+export OCI_REGISTRY_PASSWORD= # Password of the OCI registry
+```
### Running the tests
```bash
-source envfile.rc
+source envconfig.rc
mkdir reports
robot -d reports -i <testing_tags> testsuite/
```
- `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`
+ `k8s_07`, `k8s_08`, `k8s_09`, `k8s_10`, `k8s_11`, `k8s_12`, `k8s_13`, `sa_08`
- `cluster_k8s_charms`: `k8s_05`, `k8s_06`
- `cluster_sa`: `sa_01`, `sa_02`, `sa_07`
- `cluster_slices`: `slice_01`, `slice_02`
- `cluster_heal`: `heal_01`, `heal_02`, `heal_03`, `heal_04`
- - `cluster_sol003`: `sol003_01`
+ - `cluster_osm_rest`: `sol003_01`
- 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`
+ stage3 to be successfully verified by Jenkins, currently `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
## License
-This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details
+This project is licensed under the Apache2 License - see the [LICENSE](LICENSE) file for details