Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Automatics

...

Automatics is

...

the fully  integrated test automation system to support functional & non-functional testing. Automatics is now available to the RDK community. Any community member can use this system to validate their RDK builds or their infrastructure.

Automatics supports:

  • Integration with CI flow to validate new changes checked in by user

...

  • Configure test script details and test strategies
  • Manual trigger of automated tests against

...

  • RDK builds

...

Hence, Automatics helps in faster release of RDK builds by validating builds using automated test execution. The results of test execution can be viewed from results page of Automatics.

Automatics Setup

Setup details will guide the user to setup Automatics system in their environment.  It includes following details.

  • Setup details of Automatics Orchestration
  • Setup for Automatics Core
  • Configuration of Jenkins jobs for test execution
  • Setup details of Automatics Property

Automatics Orchestration

Software Requirement

  • JDK 1.7
  • MySql 5.0.6
  • Tomcat 7.0.92
  • Maven 3

Mysql Configuration           

  • Create database with name ‘automatics’.
  • Execute the script 'Automatics_DB.sql' that is available with Orchestration source at 'automatics\resources\'. Now the Automatics tables are created with basic configuration data.

WAR Generation

  • Pull the latest Automatics Orchestration tool project from the repository (rdk/tools/automatics) with branch “rdk-next”.
  • After taking the pull, do “mvn clean install” then war file will be generated and will be present inside Automatics/release/Automatics-v0.1/ folder inside the project.
  • Rename war to Automatics.war.

War Deployment

  • Copy the Automatics.war file to the apache-tomcat/webapps folder.
  • Copy the restartTMR.sh file which is inside Automatics/config to apache-tomcat/bin folder.
  • Copy “hibernate.cfg.xml”(inside Automatics/config folder) and “log4j.properties”(inside Automatics) files to any specific location,
  • Update “hibernate.cfg.xml” with database user name and password. And the password updating in "hibernate.cfg.xml” should be Base64 encoded. And, the DB name should be 'automatics'.
  • Add the following params to JAVA_OPTS inside apache-tomcat/bin/catalina.sh file   

-DAutomatics -DhibernateUI.config.file = {path to hibernate config file} -DloggerUI.properties.file = {path to log properties file} 

  • Create empty files childUI.jmd and mainUI.jmd in apache-tomcat/bin/. This is required by orchestration for job scheduling.
  • Navigate to apache-tomcat/bin directory and start the server by executing command.

./startup.sh

  • To verify the server logs, navigate to logs directory (apache-tomcat/logs) under tomcat. 
    • catalina.out - server start up logs
    • automatics_{time_stamp} - Automatics logs
    • traces/trace_automatics_{time_stamp} - Automatics trace logs
  • Automatics Orchestration can be launched from “{protocol}://{host:port}/Automatics/login.htm
  • To stop the server type ./shutdown.sh.

Configuration

...

System Configuration

  • From Automatics UI, go to Settings -> System Configuration page.

           The system configuration page has following parameters and partner has to configure values for their environment. The description of each parameter is provided below which helps to configure them.

...

System Config Param

...

Description

...

DEFAULT_SYNDICATION_PARTNER

...

Default syndication partner.

...

SYNDICATION_PARTNERS

...

Syndication partner names in comma separated format

...

DEVICE_INVENTORY_BASE_URL

...

Base URL which is having the rest implementation of device management

...

EXECUTION_ENVIRONMENT_TYPES

...

Execution environment types in comma separated format. Supported values are RDKV, RDKB

...

JUN

...

Jenkins Username 

...

JUP

...

Jenkins Password 

...

LDAP

...

LDAP Configuration values

...

Test_Types

...

Test Types supported by Automatics, QUICK, 1HOUR, 4HOUR, FAST_QUICK

...

EXECUTION_PRIORITY

...

Test cases will be executed based on the priority. Default provided values in comma separated format for execution priority are P0,P1,P2,P3

...

JOB_NAME_PREFIX

...

Prefix of the Jenkins job name. Default provided value is “GENERIC_RDKM_JOB”

...

RDK_PORTAL_AUTH

...

Authentication token to access the RDK portal

...

MINIMUM_FAIL_PERCENTAGE_TO_RETRY_TEST

...

The percentage limit to test retry the failed tests. Default provided value is 20

...

USER_DEFAULT_MODULES

...

Values of the default modules that can be accessed by the guest user. Default provided values separated by hyphen -3-5-6-8-9-13-

...

MASTER

...

Comma separated string keywords to identify a build name as master

...

SPRINT

...

Comma separated string keywords to identify a build name as sprint

...

STABLE

...

Comma separated string keywords to identify a build name as stable

...

CI_BUILD

...

Comma separated string keywords to identify a build name as CI build

...

TM_TYPE

...

Automatics deployment environment. Valid values DEV or PROD

...

HEAD_ENDS

...

Device head end values provided in comma separated format

...

SERVICE_CI_VERIFICATION_VALUE

...

Value for service CI_VERFICATION. Supported value CI_VERIFICATION.

...

SERVICE_FUNCTIONAL_VERIFICATION_VALUE

...

Value for service FUNCTIONAL_VERIFICATION. Supported value FUNCTIONAL _VERIFICATION.

...

REASON_TYPES

...

Reasons for adding/updating/deleting scripts added in comma separated format

  • Walk through on test execution results
  • End to End system is designed to support fast-paced DevOps model
  • Support to execute test scripts based on Java, Python and PyTest.

Major features of Automatics framework to work with external tools to enhance the Automatics capabilities:

  • The framework supports integration with modern software tools - Jira, ALM, Jenkins, Git, Grafana, Candela, CDRouter etc
  • Dynamic device allocation and device health check is supported
  • Automated defect creation and tagging can be done using the framework


Automatics Framework


Page Tree
rootAutomatics Framework


Automatics Core


Page Tree
rootAutomatics Core

Automatics RDK-B Tests


Page Tree
rootAutomatics RDK-B Tests

Automatics Working Group


Page Tree
rootAutomatics Working Group

Automatics Community Collaboration


Page Tree
rootAutomatics Community Collaboration

 Image Removed

Image Removed

Image Removed

Image Removed

Device Models

  • From Automatics UI, navigate to Settings -> Manage Scripts -> Run on Models

User needs to configure all device models that is going to execute from Automatics. 

Automatics identifies a device model from its build name. For this, admin user has to configure device model and its corresponding build name. It requires only to map the device model and initial starting sub string of build name.

Image Removed

    • Click on Add Device Name
    • Enter the Device Name.
    • Enter the Image Prefix Name. The build name prefix which will be unique to identify a device model. Automatics identify a device model from the build name.
    • Select the device category.
    • Check-in isClientDevice, if the device is a RDKV client device.

Device Group

  • From Automatics UI, navigate to Settings -> Device Groups

For Automatics to use devices from partner's inventory, device groups have to be configured. The device group name in inventory should be added here so that user can execute tests on devices from configured device groups only. Admin user can map device groups to users so that only those users mapped to device group can execute tests on device.

Image Removed

    • Go to Settings -> Device Groups
    • Click on Add New Device Group Name
    • Enter the Device Group Name. Devices should be present in this Group Name.

Resource Details

  • From Automatics UI, navigate to Settings ->  Resource Details

User can configure Jenkins details in resource details. The test execution happens at jenkins.

Image Removed

    • Click on Add Resource Details.
    • Enter the Jenkins resource base URL
    • Select the Category type from the dropdown (Select if jenkins is configured for RDKV or RDKV execution).
    • Maximum Parallel Jobs :- It represents the number of jobs configured in Jenkins for Automatics. It also requires, the configured jenkins jobs should have pre-defined name which is configurable from system property 'JOB_NAME_PREFIX'. For, eg: If "JOB_NAME_PREFIX" is set to AUTO_JOB, then in jenkins, jobs dedicated for Automatics execution should have names AUTO_JOB1, AUTO_JOB2, AUTO_JOB3. Here, the Maximum Parallel Jobs configured will be 3.

Source Code Repository

            User can configure source repository of test project in Automatics. Test project repository path and branch are passed to jenkins during execution. Jenkins will clone the repository and execute the tests. It requires user to add details from database.

  • Update the Source Code Repository Details, by executing sql command on 'source_code_details' table in database.
    • Ex: insert into source_code_details (NAME, CATEGORY_TYPE, SOURCE_REPO, SOURCE_BRANCH, DELETED_DATE, UPDATED_BY, UPDATED_DATE) values ('{generic category name}','{category type}',{repo details of the project been deployed}','{branch name of the project where it is pulled}','NULL', 'admin', now());

            Job Settings

  • From Automatics UI, navigate to Settings ->  Job Settings

            For each test type in Automatics, job will be created during test execution. The jobs are created based on job templates. For each test type, a job template need to be created.

Image Removed

    • Click on Add New Job
    • Enter Job Name: Enter the Job Name with the prefix of AUTO followed by TEST_TYPE and JOB, all are separated by “_”.                                

Eg: AUTO_1HOUR_JOB

    • And fill all the necessary details.
    • Click on Save.

Admin Only Features

Following features should be given permission only to Admin.

...

Admin can upgrade the Automatics by going to Settings -> Upgrade Automatics

Automatics provides support for automated deployment.

  • Click on Browse button, now select the following Automatics.war file and click on Open.
  • Click on Upgrade button to upgrade the Automatics.

...

Admin can manage all the users of the Automatics. Go to Settings -> User Management.

Admin can Add/Delete the user details and groups. Also, manages the user group module access.

  • Click on Add New User
    • Enter Preferred User Id: “guest”
    • Enter the user name: “guest”
    • Enter email: guest@automatics.com
    • Select user group: GUEST
  • Click on Add New User Group
    • Enter User Group name: GUEST_1
  • Click on Delete User Group
    • Select the User Group, you want to delete and click on Delete
  • Click on User Group Module Access
    • Select the User Group and click on Fetch Access Rights.
    • Select the access right checkbox of the Module Name, you want to provide access.
    • Click on Save.

Automatics Core

Automatics Generic Tests

Automatics Properties

Automatics Partner Implementation

...