| # Run OpenBMC Test Automation Using Docker |
| |
| Running OpenBMC automation using Docker involves creating a Docker image and |
| then running automation tests inside the Docker container. |
| |
| |
| ## Build Docker Image |
| |
| `Note: Prerequisite is to have Docker installed.` |
| |
| 1. Create a workspace directory. |
| |
| `mkdir ${HOME}/OpenBMC_Automation` |
| |
| 2. Change directory to workspace created. |
| |
| `cd ${HOME}/OpenBMC_Automation` |
| |
| 3. Clone openbmc-build-scripts repository. |
| |
| `git clone https://github.com/openbmc/openbmc-build-scripts` |
| |
| 4. Change directory to openbmc-build-scripts. |
| |
| `cd openbmc-build-scripts` |
| |
| 5. Build the Docker image required to execute the robot tests (it may take |
| close to 15 mins for the first time). The default Docker image name is |
| "openbmc/ubuntu-robot-qemu". You can check images using "docker images" |
| command. |
| |
| `./scripts/build-qemu-robot-docker.sh` |
| |
| |
| ## Code update process using robot test code |
| |
| 1. Change directory to HOME workspace. |
| |
| `cd ${HOME}/OpenBMC_Automation` |
| |
| 2. Clone openbmc-test-automation repository. |
| |
| `git clone https://github.com/openbmc/openbmc-test-automation` |
| |
| 3. Execute docker run to initiate BMC code update. |
| ###### *Note: Download BMC fw image file (*.all.tar) before executing this. BMC_IMG_PATH below points to this downloaded file. |
| |
| ``` |
| docker run --user root \ |
| --env HOME=${HOME} \ |
| --workdir ${HOME} \ |
| --volume ${HOME}/OpenBMC_Automation:${HOME} \ |
| --tty openbmc/ubuntu-robot-qemu python -m robot \ |
| -v OPENBMC_HOST:<BMC IP> \ |
| -v FILE_PATH:<BMC_IMG_PATH> \ |
| -i Initiate_Code_Update_BMC \ |
| ${HOME}/openbmc-test-automation/extended/code_update/update_bmc.robot |
| ``` |
| |
| Example to run BMC code update using witherspoon-20170614071422.all.tar |
| image file from HOME directory of the system where docker run command |
| is executed: |
| |
| ``` |
| docker run --user root \ |
| --env HOME=${HOME} \ |
| --workdir ${HOME} \ |
| --volume ${HOME}/OpenBMC_Automation:${HOME} \ |
| --tty openbmc/ubuntu-robot-qemu python -m robot \ |
| -v OPENBMC_HOST:1.11.222.333 \ |
| -v FILE_PATH:/home/witherspoon-20170614071422.all.tar \ |
| -i Initiate_Code_Update_BMC \ |
| ${HOME}/openbmc-test-automation/extended/code_update/update_bmc.robot |
| ``` |
| |
| 4. On code update completion, logs generated from robot framework execution |
| will be available in the following location: |
| |
| ``` |
| ${HOME}/OpenBMC_Automation/log.html |
| ${HOME}/OpenBMC_Automation/report.html |
| ${HOME}/OpenBMC_Automation/output.xml |
| ``` |
| |
| |
| ## Executing Automation Test |
| |
| 1. Execute docker run to execute OpenBMC automation test cases. |
| ###### *Note: This runs a Docker container using openbmc/ubuntu-robot-qemu image.* |
| ###### *Robot test code is extracted and ran on this container using run-robot.sh script.* |
| ``` |
| docker run --user root \ |
| --env HOME=${HOME} \ |
| --env IP_ADDR=<BMC IP> \ |
| --env SSH_PORT=22 \ |
| --env HTTPS_PORT=443 \ |
| --env ROBOT_TEST_CMD="tox -e <System Type> -- <Robot Cmd>" \ |
| --workdir ${HOME} \ |
| --volume ${WORKSPACE}:${HOME} \ |
| --tty openbmc/ubuntu-robot-qemu \ |
| ${HOME}/openbmc-build-scripts/scripts/run-robot.sh |
| ``` |
| |
| Example to run entire test suite: |
| |
| ``` |
| docker run --user root \ |
| --env HOME=${HOME} \ |
| --env IP_ADDR=1.11.222.333 \ |
| --env SSH_PORT=22 \ |
| --env HTTPS_PORT=443 \ |
| --env ROBOT_TEST_CMD="tox -e witherspoon -- tests" \ |
| --workdir ${HOME} \ |
| --volume ${HOME}/OpenBMC_Automation:${HOME} |
| --tty openbmc/ubuntu-robot-qemu \ |
| ${HOME}/openbmc-build-scripts/scripts/run-robot.sh |
| ``` |
| |
| 2. After the execution, test results will be available in below files. |
| |
| ``` |
| ${HOME}/OpenBMC_Automation/log.html |
| ${HOME}/OpenBMC_Automation/report.html |
| ${HOME}/OpenBMC_Automation/output.xml` |
| ``` |