| .. This work is licensed under a Creative Commons Attribution 4.0 |
| International License. http://creativecommons.org/licenses/by/4.0 |
| |
| .. _docs_robot: |
| |
| :orphan: |
| |
| Robot |
| ----- |
| |
| Introduction |
| ~~~~~~~~~~~~ |
| Robot Framework is a generic open source automation framework for acceptance |
| testing, acceptance test driven development (ATDD), and robotic process |
| automation (RPA). This framework is widely used in ONAP. |
| The full documentation of robot can be found in https://robotframework.org/. |
| |
| In ONAP, Robot scripts have been developed to validate the components, provision |
| and run end to end tests. |
| |
| The robot scripts can be retrieved in the ONAP testsuite repository: https://git.onap.org/testsuite/ |
| |
| A Robot pod is part of the ONAP default installation. |
| This pod includes the robot framework and the needed scripts cloned from the |
| testsuite repository. |
| Additional scripts are created during the installation in order to simplify |
| the launch of the different tests and are loacted in /opt/oom/kubernetes/robots. |
| |
| From one of the kubernetes controller, you shall see the pod as follows: |
| |
| :: |
| |
| $ kubectl get pods -n onap | grep robot |
| onap-robot-robot-7fc49977fd-6jblt 1/1 Running 0 9h |
| |
| You can access the robot configuration through its configmap. |
| |
| :: |
| |
| $ kubectl describe cm onap-robot-robot-eteshare-configmap -n onap |
| |
| You shall see a long list of variables set during the ONAP installation by OOM. |
| Please note that some of these variables are set thanks to the OOM |
| overide openstack.yaml file. See the examples described in https://git.onap.org/oom/tree/kubernetes/onap/resources/overrides/openstack.yaml |
| |
| Verification of the ONAP components |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ONAP robot healthcheck tests have been created to give a quick feedback on the |
| status of the ONAP components. |
| |
| You can run them from one of the kubernetes controller. You need to log on the |
| machine then perform the following commands: |
| |
| :: |
| |
| $ cd /opt/oom/kubernetes/robot |
| $ ./ete-k8s.sh onap health |
| |
| You shall the execution of all the healthcheck launched from bash script hosted |
| on the kubernetes controller and executed on the robot pod. |
| |
| At the end you shall see that logs and reporting are automatically generated |
| by robot and stored on the pod under /share/logs/. |
| You can retrieve the logs directly from the pods or through the web interface |
| integrated in the robot pod by typing |
| http://portal.api.simpledemo.onap.org:30209/logs/ (test/test) |
| |
| .. figure:: files/robot/robot_logs.png |
| :align: center |
| |
| You shall see 3 files: |
| |
| * log.html |
| * output.xml |
| * report.html |
| |
| A new directory will be created after each run. |
| |
| log.html should look like |
| |
| .. figure:: files/robot/robot_report_logs.png |
| :align: center |
| |
| When the testsuite is passed, the reporting page is green. |
| |
| .. figure:: files/robot/robot_report_ok.png |
| :align: center |
| |
| You can click on the test case to get details. |
| |
| .. figure:: files/robot/robot_report_details.png |
| :align: center |
| |
| If one of the test is FAIL, the generated web reporting page will be red. |
| |
| .. figure:: files/robot/robot_report_ko.png |
| :align: center |
| |
| Lots of tags have been created for healthcheck tests. You may replace health by |
| core, small, medium, 3rdparty, health-sdc, health-multicloud,... |
| |
| See https://git.onap.org/testsuite/tree/robot/testsuites/health-check.robot to |
| get all the tags. |
| |
| As an illustration, healthcheck core traces should be displayed as follows. |
| |
| :: |
| |
| $ ./ete-k8s.sh onap core |
| ++ export NAMESPACE=onap |
| ++ NAMESPACE=onap |
| +++ kubectl --namespace onap get pods |
| +++ sed 's/ .*//' |
| +++ grep robot |
| ++ POD=onap-robot-robot-7c47659f7-tt9w4 |
| ++ TAGS='-i core' |
| ++ ETEHOME=/var/opt/ONAP |
| +++ kubectl --namespace onap exec onap-robot-robot-7c47659f7-tt9w4 -- bash -c 'ls -1q /share/logs/ | wc -l' |
| ++ export GLOBAL_BUILD_NUMBER=2 |
| ++ GLOBAL_BUILD_NUMBER=2 |
| +++ printf %04d 2 |
| ++ OUTPUT_FOLDER=0002_ete_core |
| ++ DISPLAY_NUM=92 |
| ++ VARIABLEFILES='-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py' |
| ++ VARIABLES='-v GLOBAL_BUILD_NUMBER:17175' |
| ++ kubectl --namespace onap exec onap-robot-robot-7c47659f7-tt9w4 -- /var/opt/ONAP/runTags.sh -V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py -v GLOBAL_BUILD_NUMBER:17175 -d /share/logs/0002_ete_core -i core --display 92 |
| Starting Xvfb on display :92 with res 1280x1024x24 |
| Executing robot tests at log level TRACE |
| ============================================================================== |
| Testsuites |
| ============================================================================== |
| Testsuites.Health-Check :: Testing ecomp components are available via calls. |
| ============================================================================== |
| Basic A&AI Health Check | PASS | |
| ------------------------------------------------------------------------------ |
| Basic DMAAP Message Router Health Check | PASS | |
| ------------------------------------------------------------------------------ |
| Basic Portal Health Check | PASS | |
| ------------------------------------------------------------------------------ |
| Basic SDC Health Check (DMaaP:UP)| PASS | |
| ------------------------------------------------------------------------------ |
| Basic SDNC Health Check | PASS | |
| ------------------------------------------------------------------------------ |
| Basic SO Health Check | PASS | |
| ------------------------------------------------------------------------------ |
| Testsuites.Health-Check :: Testing ecomp components are available ... | PASS | |
| 6 critical tests, 6 passed, 0 failed |
| 6 tests total, 6 passed, 0 failed |
| ============================================================================== |
| Testsuites | PASS | |
| 6 critical tests, 6 passed, 0 failed |
| 6 tests total, 6 passed, 0 failed |
| ============================================================================== |
| Output: /share/logs/0002_ete_core/output.xml |
| Log: /share/logs/0002_ete_core/log.html |
| Report: /share/logs/0002_ete_core/report.html |
| |
| Onboard and Instantiate VNF/PNF with Robot |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Robot scripts have been also created to provision components and perform end |
| to end tests. |
| All the robot scripts are hosted on the tesuite repository and deal with various |
| test cases and/or components. |
| |
| :: |
| |
| robot/testsuites/ |
| ├── aai |
| │ └── aai-regression-test-v14.robot |
| ├── cds.robot |
| ├── clamp.robot |
| ├── closed-loop.robot |
| ├── create-cloud-config.robot |
| ├── demo.robot |
| ├── health-check.robot |
| ├── hvves.robot |
| ├── model-distribution.robot |
| ├── model-distribution-vcpe.robot |
| ├── oof |
| │ ├── oof-cmso.robot |
| │ ├── oof-has.robot |
| │ └── oof-osdf.robot |
| ├── pnf-registration.robot |
| ├── portalApp.robot |
| ├── post-install-tests.robot |
| ├── update_onap_page.robot |
| ├── vnf-orchestration-direct-so.robot |
| └── vnf-orchestration.robot |
| |
| It is, for instance possible to test the onboarding of the vFirewall model in |
| the SDC by running the command: |
| |
| :: |
| |
| $ ete-k8s.sh onap healthdist |
| |
| If you consider the ete-k8s.sh script, the following testsuites are referenced: |
| |
| * cds.robot: cds |
| * clamp.robot: clamp |
| * demo.robot: InitDemo, InitCustomer, APPCCDTPreloadDemo, APPCMountPointDemo, DistributeDemoVFWDT, DistributeVFWNG |
| * health-check.robot: health, core, small, medium, 3rdparty, api, datarouter, externalapi, health-aaf,... |
| * hvves.robot: HVVES, ete |
| * model-distribution-vcpe.robot: distributevCPEResCust |
| * model-distribution.robot: distribute, distributeVFWDT, distributeVLB |
| * oof-cmso.robot, oof-homing.robot, oof-has.robot: oof related tests |
| * pnf-registration.robot: ete, pnf_registrate |
| * post-install-tests.robot dmaapacl, postinstall |
| * update_onap_page.robot: UpdateWebPage |
| * vnf-orchestration-direct-so.robot: instantiateVFWdirectso |
| * vnf-orchestration.robot: instantiate, instantiateNoDelete, stability72hr |
| |
| If you use the demo-k8s.s script, you may see the following options: |
| |
| * init_robot |
| * init |
| * init_customer |
| * distribute |
| * preload |
| * appc |
| * instantiateVFW |
| * instantiateVFWdirectso |
| * deleteVNF |
| * heatbridge |
| * cds |
| * distributeVFWNG |
| * distributeDemoVFWDT |
| * instantiateDemoVFWDT |
| * vfwclosedloop |
| |
| See :ref:`Verified Use Cases and Functional Requirements <docs_usecases>` to see |
| how to use these scripts. Some of them may need specific prerequisites on the |
| environment and may support specific versions and/or configurations. |
| |
| |
| Develop your own Robot scripts |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| A dedicated wiki page has been created to help people to design and write their |
| own robot scripts within ONAP context (https://wiki.onap.org/display/DW/Robot+Framework+Development+Guide) |
| It is also possible to contact the integration team to get support. |