README.md 4.62 KiB
Newer Older
<!--
Copyright 2020 ETSI

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License
-->

vicens's avatar
vicens committed
# OSM test automation project - osm/tests
vicens's avatar
vicens committed
This repository contains tools and configuration files for testing and automation needs of OSM projet
vicens's avatar
vicens committed
## Prerequisites
vicens's avatar
vicens committed
* **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]
vicens's avatar
vicens committed
## Installing
vicens's avatar
vicens committed
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
vicens's avatar
vicens committed
   snap install charm
vicens's avatar
vicens committed
   # Download community packages
   git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
vicens's avatar
vicens committed
envfile.rc
vicens's avatar
vicens committed
```bash
vicens's avatar
vicens committed
   # VIM Setup
vicens's avatar
vicens committed
   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>
vicens's avatar
vicens committed

   # OSM Setup
vicens's avatar
vicens committed
   OSM_HOSTNAME=<osm_ip_address>
   VIM_TARGET=<osm_vim_name>
   VIM_MGMT_NET=<osm_vim_mgmt_name>
vicens's avatar
vicens committed
   # Clouds file datacenter
   OS_CLOUD=<datacenter_in_clouds_file>
   # SDNCs file
   OS_SDNC=<SDN_controller_in_sdncs_file>
vicens's avatar
vicens committed

   # K8S config file
   K8S_CREDENTIALS=<path_to_kubeconfig>

vicens's avatar
vicens committed
   # The following set of environment variables will be used in host
   # of the robot framework. Not needed for docker execution
vicens's avatar
vicens committed
   # Folder where Robot tests are stored
   ROBOT_DEVOPS_FOLDER=robot-systest
vicens's avatar
vicens committed
   # Folder to save alternative DUT environments (optional)
   ENVIRONMENTS_FOLDER=environments
vicens's avatar
vicens committed
   # Folder where all required packages are stored
   PACKAGES_FOLDER=osm-packages

   # Folder where test results should be exported
   ROBOT_REPORT_FOLDER=results
vicens's avatar
vicens committed
## Deployment
vicens's avatar
vicens committed
It is possible to run the tests directly from the repository or using a docker container with the tests
vicens's avatar
vicens committed
1. Docker container creation:
vicens's avatar
vicens committed
```bash
docker build -f docker/Dockerfile -t osmtests .
vicens's avatar
vicens committed

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

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
vicens's avatar
vicens committed
* <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
vicens's avatar
vicens committed

```bash
   docker run --rm=true -t osmtests --env-file <env_file> \
vicens's avatar
vicens committed
       -v <path_to_reports>:/reports osmtests \
       -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \
       -v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \
vicens's avatar
vicens committed
       -v <path_to_kubeconfig>:/root/.kube/config \
       -o <osmclient_version> \
       -p <package_branch> \
       -t <testing_tags>
vicens's avatar
vicens committed
1. Running the tests manually:
vicens's avatar
vicens committed
The way of executing the tests is via the following command:

```bash
   source envfile.rc
   robot -d reports -i <testing_tags> testsuite/
```

## Built With

* [Python](www.python.org/) - The language used
vicens's avatar
vicens committed
* [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

vicens's avatar
vicens committed
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

## Acknowledgments