RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
There are generic test cases that can be executed on Raspberry Pi device loaded with RDKB stack. This helps partners to familiarize with the Automatics system and helps to validate basic features in RDKB in Raspberry Pi.
Below diagram shows the communication between different components in Automatics and the device.
A user can login to RPi device via different ways such making ssh connection or telnet connection and this method is specific to partners. So there should be an intermediate layer between RPi device and Automatics which helps to connect with device. This intermediate layer is the RPi Partner Provider Implementation which contains partner specific implementation of different Providers defined by Automatics.
To connect with an RPi device, DeviceConnection Provider is used. The project rpi-provider/java-handler contains implementation of DeviceConnection Provider based on ssh connection. So it makes an ssh connection to device, execute command within device and return the response. The test scripts uses DeviceConnection Provider to execute commands within device and verify the response.
To execute tests on Raspberry Pi device, partner has to ensure below setups are done.
Automatics system involves Automatics Orchestration, Automatics Properties, Jenkins, Automatics Core, Test Utils, Test Scripts, Device Manager and Partner Provider implementations.
The details on how various components are linked is explained in Automatics Architecture.
Partners can follow below steps for setting up Automatics for executing test cases in Raspberry Pi.
Ensure that a Raspberry Pi device loaded with RDKB stack is available for test execution.
As the next step, partner can work on setting up Automatics system. This includes Automatics Orchestration, Automatics Properties, Device Manager, Jenkins and job configurations, Maven artifact deployment of Automatics Core and RDKB Test Utils.
Hardware Requirements for Automatics is available at Automatics Hardware Requirements.
After VMs with required hardware specifications are ready and available, partner can start setting up tools in the VMs as mentioned below.
As part of executing RDKB tests in partner environment , partner has to update rdkb-test project pom file to point to the Raspberry Pi Provider implementation (it will vary for partners)
We have added a supporting shell script , which can be configured to the Jenkins Job, so it will add the RPi Provider dependency to the rdkb-test project pom.xml during run time. And, this can be done by configuring Build Step under Build Section in Test Execution Jenkins Job.
Jenkins Job → Build Section → Shell Script.
/mnt/scripts/pre-test-config.sh -g 'com.automatics.providers' -a 'rpi-provider-impl' -v '0.0.1-SNAPSHOT'
After the setup is ready, partner has to configure the device model and device details in Automatics and its details are available at Device Configuration in Automatics.
After the system is ready, partner can validate the system by executing test script TC-QUICK-DUMMY-ALL-MODELS from Automatics Orchestration. From the execution, partner can verify communication between below components are working fine.
Please follow Automatics Generic Tests#ConfigureTC-QUICK-DUMMY-ALL-MODELS to configure TC-QUICK-DUMMY-ALL-MODELS in Orchestration.
After setup validation, partner can configure RDKB test scripts in Orchestration.
To configure RDKB test scripts to Orchestration, please follow the steps below.
Note: In Manage Script page, ensure that only single Quick Test script is enabled for each device model. Please follow, Automatics Orchestration User Manual#EnableScript, to enable/disable test script.
Some test scripts has to execute commands within device and verify its response. The DeviceConnection Provider implementation in rpi-provider/java-handler helps to execute commands within device. It creates SSH connection to device and then executes the commands. So to create SSH connection, ssh login details are to be provided to Automatics. This can be done by configuring ssh login credentials in the server-config.xml and then keep it in Jenkins VM. The location where this config file is kept should be configured in Automatics Properties on parameter 'serverConfig.path'.
From Automatics core version 2.1.0 and device manager version 1.0.2 it is possible to configure SSH Connection login details in devicemanger by adding sshcredentials in extraproperties section of POST /deviceModel/add API. The priority is given first to get ssh connection details from serverconfig.xml file, if it is not there we can get details from device manager side.
For eg: if server-config.xml is available at /mnt/config in Jenkins VM, then in Automatics Properties parameter will be configured as serverConfig.path=/mnt/config/server-config.xml
After the test scripts are configured, partner can trigger test execution from Orchestration via Trigger Execution Manually page.
While triggering execution, Quick Test(Image Upgrade) should be skipped by un-selecting option 'Is Quick Test Required' in Trigger Execution Manually page. Steps to trigger execution is available at Automatics Orchestration-TriggerTestExecution.
Test Execution Results will be available at Execution Results page. Details are available at Automatics Orchestration-ExecutionResults