Adds Robot test EPA-03 with new SDNC library
[osm/tests.git] / README.md
1 <!--
2 Copyright 2020 ETSI
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8    http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 implied.
14 See the License for the specific language governing permissions and
15 limitations under the License
16 -->
17
18 # OSM test automation project - osm/tests
19
20 This repository contains tools and configuration files for testing and automation needs of OSM projet
21
22 ## Prerequisites
23
24 * **Robot Framework**
25 * **Packages**: ssh ping yq git
26 * **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary
27 * Clone **osm-packages** from gitlab
28 * Environment config file for your infrastructure [envfile.rc]
29
30 ## Installing
31
32 This bash script can be used to setup your environment to execute the tests.
33
34 ```bash
35    PACKAGES_FOLDER=osm-packages
36    add-apt-repository -y ppa:rmescandon/yq && apt update && apt install yq git iputils-ping ssh -y
37    pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary \
38       robotframework-sshlibrary
39    snap install charm
40    # Download community packages
41    git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER}
42 ```
43
44 envfile.rc
45
46 ```bash
47    # VIM Setup
48    OS_USERNAME=<openstack_username>
49    OS_PASSWORD=<openstack_password>
50    OS_TENANT_NAME=<openstack_tenant_name>
51    OS_AUTH_URL=<openstack_authorization_url>
52    OS_TENANT_ID=<openstack_tenant_id>
53
54    # OSM Setup
55    OSM_HOSTNAME=<osm_ip_address>
56    VIM_TARGET=<osm_vim_name>
57    VIM_MGMT_NET=<osm_vim_mgmt_name>
58
59    # Clouds file datacenter
60    OS_CLOUD=<datacenter_in_clouds_file>
61    # SDNCs file
62    OS_SDNC=<SDN_controller_in_sdncs_file>
63
64    # K8S config file
65    K8S_CREDENTIALS=<path_to_kubeconfig>
66
67    # The following set of environment variables will be used in host
68    # of the robot framework. Not needed for docker execution
69
70    # Folder where Robot tests are stored
71    ROBOT_DEVOPS_FOLDER=robot-systest
72
73    # Folder to save alternative DUT environments (optional)
74    ENVIRONMENTS_FOLDER=environments
75
76    # Folder where all required packages are stored
77    PACKAGES_FOLDER=osm-packages
78
79    # Folder where test results should be exported
80    ROBOT_REPORT_FOLDER=results
81 ```
82
83 ## Deployment
84
85 It is possible to run the tests directly from the repository or using a docker container with the tests
86
87 1. Docker container creation:
88
89 ```bash
90 docker build -f docker/Dockerfile -t osmtests .
91 ```
92
93 Options:
94
95 * --env-file: It is the environmental file where is described the OSM target and VIM
96 * -o <osmclient_version> [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
97 * -p <package_branch> [OPTIONAL]: OSM packages repository branch. Default: master
98 * -t <testing_tags> [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
99
100 Volumes:
101
102 * <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
103 * <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
104 * <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
105 * <path_to_kubeconfig> [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters
106
107 ```bash
108    docker run --rm=true -t osmtests --env-file <env_file> \
109        -v <path_to_reports>:/reports osmtests \
110        -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \
111        -v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \
112        -v <path_to_kubeconfig>:/root/.kube/config \
113        -o <osmclient_version> \
114        -p <package_branch> \
115        -t <testing_tags>
116 ```
117
118 1. Running the tests manually:
119
120 The way of executing the tests is via the following command:
121
122 ```bash
123    source envfile.rc
124    robot -d reports -i <testing_tags> testsuite/
125 ```
126
127 ## Built With
128
129 * [Python](www.python.org/) - The language used
130 * [Robot Framework](robotframework.org) - The testing framework
131
132 ## Contributing
133
134 Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
135
136 ## Versioning
137
138 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).
139
140 ## License
141
142 This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details
143
144 ## Acknowledgments