Rahul Maheshwari | c638783 | 2017-06-08 07:02:53 -0500 | [diff] [blame^] | 1 | # Run OpenBMC Test Automation Using Docker |
| 2 | |
| 3 | Running OpenBMC automation using Docker involves creating a Docker image and |
| 4 | then running automation tests inside the Docker container. |
| 5 | |
| 6 | |
| 7 | ## Build Docker Image |
| 8 | |
| 9 | `Note: Prerequisite is to have Docker installed.` |
| 10 | |
| 11 | 1. Create a workspace directory. |
| 12 | |
| 13 | `mkdir ${HOME}/OpenBMC_Automation` |
| 14 | |
| 15 | 2. Change directory to workspace created. |
| 16 | |
| 17 | `cd ${HOME}/OpenBMC_Automation` |
| 18 | |
| 19 | 3. Clone openbmc-build-scripts repository. |
| 20 | |
| 21 | `git clone https://github.com/openbmc/openbmc-build-scripts` |
| 22 | |
| 23 | 4. Change directory to openbmc-build-scripts. |
| 24 | |
| 25 | `cd openbmc-build-scripts` |
| 26 | |
| 27 | 5. Build the Docker image required to execute the robot tests (it may take |
| 28 | close to 15 mins for the first time). The default Docker image name is |
| 29 | "openbmc/ubuntu-robot-qemu". You can check images using "docker images" |
| 30 | command. |
| 31 | |
| 32 | `./scripts/build-qemu-robot-docker.sh` |
| 33 | |
| 34 | |
| 35 | ## Code update process using robot test code |
| 36 | |
| 37 | 1. Change directory to HOME workspace. |
| 38 | |
| 39 | `cd ${HOME}/OpenBMC_Automation` |
| 40 | |
| 41 | 2. Clone openbmc-test-automation repository. |
| 42 | |
| 43 | `git clone https://github.com/openbmc/openbmc-test-automation` |
| 44 | |
| 45 | 3. Execute docker run to initiate BMC code update. |
| 46 | ###### *Note: Download BMC fw image file (*.all.tar) before executing this. BMC_IMG_PATH below points to this downloaded file. |
| 47 | |
| 48 | ``` |
| 49 | docker run --user root \ |
| 50 | --env HOME=${HOME} \ |
| 51 | --workdir ${HOME} \ |
| 52 | --volume ${HOME}/OpenBMC_Automation:${HOME} \ |
| 53 | --tty openbmc/ubuntu-robot-qemu python -m robot \ |
| 54 | -v OPENBMC_HOST:<BMC IP> \ |
| 55 | -v FILE_PATH:<BMC_IMG_PATH> \ |
| 56 | -i Initiate_Code_Update_BMC \ |
| 57 | ${HOME}/openbmc-test-automation/extended/code_update/update_bmc.robot |
| 58 | ``` |
| 59 | |
| 60 | Example to run BMC code update using witherspoon-20170614071422.all.tar |
| 61 | image file from HOME directory of the system where docker run command |
| 62 | is executed: |
| 63 | |
| 64 | ``` |
| 65 | docker run --user root \ |
| 66 | --env HOME=${HOME} \ |
| 67 | --workdir ${HOME} \ |
| 68 | --volume ${HOME}/OpenBMC_Automation:${HOME} \ |
| 69 | --tty openbmc/ubuntu-robot-qemu python -m robot \ |
| 70 | -v OPENBMC_HOST:1.11.222.333 \ |
| 71 | -v FILE_PATH:/home/witherspoon-20170614071422.all.tar \ |
| 72 | -i Initiate_Code_Update_BMC \ |
| 73 | ${HOME}/openbmc-test-automation/extended/code_update/update_bmc.robot |
| 74 | ``` |
| 75 | |
| 76 | 4. On code update completion, logs generated from robot framework execution |
| 77 | will be available in the following location: |
| 78 | |
| 79 | ``` |
| 80 | ${HOME}/OpenBMC_Automation/log.html |
| 81 | ${HOME}/OpenBMC_Automation/report.html |
| 82 | ${HOME}/OpenBMC_Automation/output.xml |
| 83 | ``` |
| 84 | |
| 85 | |
| 86 | ## Executing Automation Test |
| 87 | |
| 88 | 1. Execute docker run to execute OpenBMC automation test cases. |
| 89 | ###### *Note: This runs a Docker container using openbmc/ubuntu-robot-qemu image.* |
| 90 | ###### *Robot test code is extracted and ran on this container using run-robot.sh script.* |
| 91 | ``` |
| 92 | docker run --user root \ |
| 93 | --env HOME=${HOME} \ |
| 94 | --env IP_ADDR=<BMC IP> \ |
| 95 | --env SSH_PORT=22 \ |
| 96 | --env HTTPS_PORT=443 \ |
| 97 | --env ROBOT_TEST_CMD="tox -e <System Type> -- <Robot Cmd>" \ |
| 98 | --workdir ${HOME} \ |
| 99 | --volume ${WORKSPACE}:${HOME} \ |
| 100 | --tty openbmc/ubuntu-robot-qemu \ |
| 101 | ${HOME}/openbmc-build-scripts/scripts/run-robot.sh |
| 102 | ``` |
| 103 | |
| 104 | Example to run entire test suite: |
| 105 | |
| 106 | ``` |
| 107 | docker run --user root \ |
| 108 | --env HOME=${HOME} \ |
| 109 | --env IP_ADDR=1.11.222.333 \ |
| 110 | --env SSH_PORT=22 \ |
| 111 | --env HTTPS_PORT=443 \ |
| 112 | --env ROBOT_TEST_CMD="tox -e witherspoon -- tests" \ |
| 113 | --workdir ${HOME} \ |
| 114 | --volume ${HOME}/OpenBMC_Automation:${HOME} |
| 115 | --tty openbmc/ubuntu-robot-qemu \ |
| 116 | ${HOME}/openbmc-build-scripts/scripts/run-robot.sh |
| 117 | ``` |
| 118 | |
| 119 | 2. After the execution, test results will be available in below files. |
| 120 | |
| 121 | ``` |
| 122 | ${HOME}/OpenBMC_Automation/log.html |
| 123 | ${HOME}/OpenBMC_Automation/report.html |
| 124 | ${HOME}/OpenBMC_Automation/output.xml` |
| 125 | ``` |