test/automated-robot-suite/docs/RobotFrameStructure.md

6.1 KiB

Edge Compute Framework Structure documentation

Table of Contents

Introduction

This structure tries to fit Robot Framework User Guide good practices.
For more detailed information please check the following 🔗 Link

Edge Compute Folder Structure

stx-test-suite/
|--Libraries
|--Resources
    |--MyResources file
|--Variables
    |--global.py file
|--Utils
|--Tests
    |--Horizon component
       |--Tests.robot file

            *** Settings ***
            [Documentation]
            [Tags]
            imports...
            Resources
            Test Setup
            Test Teardown

            *** Test Cases
            ...
        |--__init__.robot file

            ***Settings***
            imports
            Suite Setup
            Suite Teardown

            ***keywords***
            ...
    |--Keystone
    |--Nova
    |--Glance
    |--Swift
    |--Neutron
    |--Cinder
    |--Heat
    |--Ceilometer
|--Results
    |--YYYYMMDDHHMMSS<test_suite_name>
|--Latest-results

1. Libraries

Any test library that is NOT one of the standard libraries would be here.

2. Resources

Resource files contain user keywords used in test case files and test suite initialization files providing a mechanism for sharing them.
Since the resource file structure is very close to test case files, it is easy to create them.

Resource files are imported using the Resource setting in the settings table. The path to the resource file is given in the cell after the setting name.

e.g.
TEST CASE TEMPLATE

*** Settings ***
Resource    my_resources.html
Resource    ../data/resources.html
Resource    ${RESOURCES}/common.tsv

*** Keywords ***
...

3. Variables

This folder should contain scripts declaring global variables, environmental variables, or any special variable used in the Edge Computing framework.

e.g.

  • global.py
CONTROLLER_IP='10.10.10.10'
CONTROLLER_USERNAME='root'
CONTROLLER_PASSWORD='linux'
  • virtual_machine_variables.py
-  MEMDisk1=200GB
-  MEMDisk2=100GB

4. Utils

This folder should contain generic functions that perform actions across the Edge Computing execution.

e.g.

  • common_reports.py
- check_results_dir(...)
- create_output_dir(...)
- link_latest_run(...)

5. Test

Contains the Robot Automated Test scenarios per Edge Computing Component.

5.1 Horizon

Horizon folder should contain test cases focused on exercise the Horizon GUI where every tenant or application user can launch up/manage their own instances.

COMPONENT FOLDER STRUCTURE

Tests.robot file

*** Settings ***
[Documentation] tag specifying brief description of the Test case.
[Tags] keywords specifying what is being tested.

Imports...
# Import Order Template

# {{stdlib imports in human alphabetical order}}
# {{third-party lib imports in human alphabetical order}}
# {{project imports in human alphabetical order}}

# Import Order Example
import httplib
import logging
import random

import eventlet
import webob.exc

import nova.api.ec2
from nova.api import manager
from nova.api import openstack

Resources...
Test Setup
Test Teardown

*** Test Cases ***
...

init.robot file

The __ init__ file is a special test suite initialization file.
It is a test suite created from a directory that can have the same structure and syntax as test case files, except that they cannot have test case tables and not all settings are supported.

*** Settings ***
 Imports ...
 Suite Setup
 Suite Teardown

*** Keywords ***

5.2 Keystone

Keystone folder should contain test cases focused on exercise the authorization or authentication related to every layer of services in OpenStack.

e.g. Tokens, Catalog, Policy, and Assignment Service role.

5.3 Nova

Nova folder should contain test cases focused on exercise compute domain.

e.g. When you launch a instance is where all the computing and all the processing actually happens.

5.4 Glance

Glance folder should contain test cases focused on exercise services for launching the instances. Glance has all the disk images contained in them different versions of OS such as Linux, CentOS, Ubuntu, Windows.

5.5 Swift

Swift folder should contain test cases focused on exercise databases as a Object Storage Services where you can store all kind of files as objects.

REMARK: Everything is converted to an object and saved in the Storage File System.

5.6 Cinder

Cinder folder should contain test cases focused on exercise databases as a Block storage services where the database is seen like a pluggable storage which is very similar to the disk storage system in a computer.

5.7 Neutron

Neutron folder should contain test cases focused on exercise the networking service associated with all OpenStack Services.

5.8 Heat

Heat folder should contain test cases focused on exercise Orchestration.

5.9 Ceilometer

Ceilometer folder should contain tests cases focused on exercise metering and billing. It checks availability of the services for how much time is an instance active or running.

6. Results

Test execution results are keep in folders following the next format when the execution was ran:

%Y%m%d%H%M%S_<test_suite_name>
Where
   %Y -- Year
   %m -- Month
   %d -- Day
   %H%M%S -- Hour Minute Second

7. Latest-result


...

Hope this can help you good look 👍