Dockerize a RobotFramework
Switch branches/tags
Nothing to show
Clone or download
user user
user and user Minor enhancements.
Latest commit 2776174 Aug 31, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo Minor enhancements. Aug 31, 2016
LICENSE Initial commit May 6, 2016
README.md Added msuonto and shoisko to contibution chapter. Aug 12, 2016
rfw_df_entrypoint.sh
robot_framework_dockerfile First DRAFT version of self executable demo. Aug 31, 2016

README.md

Dockerize a RobotFramework

Main focus of this project is to get Robot Framework http://robotframework.org/ , needed libraryes https://github.com/robotframework , Jenkins-slave tools https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin and RIDE https://github.com/robotframework/RIDE to be dockerized.
Long time focus is get official Robot Framework base image to docker hub https://hub.docker.com/explore/ and based tools/libraryes & development images to Robot Framework base image (more info in "Enhancements to existing implementation"). Contributing of this project should follow guidlines that are defined in here https://github.com/docker-library/official-images

Benefits of Robot Framework container

  • Easy installation just docker run -P -d robot_framework
  • Container include: a) IDE and execution tools b) Libraryes c) Jenkins slave tools => No any more version conflicts between development/testing pipeline
  • Easy to scale multiple instances by using docker micro servers => Papot library https://github.com/mkorpela/pabot change sequentally test cases execution to parallel execution that brings many huge benefits to picture (e.g. poor man performance testing and speed up of testing pipelines)
  • Get test automation container integrated to Jenkins by using dynamicly way with https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin

Container deploy time usage:

Define user to SSH connection: -e SSHUSER=< username >
Basic auth: Define user password to SSHUSER: -e SSHUSERPW=< password >
OR Key based auth: Define user public key to SSHUSER: -e SSHUSERKEY="ssh-rsa < public key >"

Add more libraries to container:

  • Base your docker file to robot framework container FROM robotframework
  • Add required libraryes to your docker file by using any method what you want (e.g. pip, easyinstall, apt-get, etc.)
  • Define your docker file entrypoint as ENTRYPOINT ["/rfw_df_entrypoint.sh"]

Test cases development inside of container:

Use e.g. volume mount to get test cases from desktop git checkout to inside of TA-container.
Get GUI open to desktop (In linux xauth package is required to desktop):



OR in linux world

docker run -ti --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
< TA_container_image >

Enhancements to existing implementation:

Split existing content to different images:

  • robot_framework_base container that include Robot Framework, installed by using pip
  • rf_jenkins_slave container, based to robot_framework_base and include needed tools: https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin => This just bring ssh server and jre to container.
  • rf_exectools customer specifig library container that based to rf_jenkins_slave container and customer required libraries are installed by using pip => This container is under execution in pipeline. It is light waith container to customer purposes. In here also papot could be installed by using pip.
  • rf_tests_development test suites/cases development container. Based to rf_exectools container and RIDE is installed by using pip => This made possible test case development by using exactly same version of robot/libraryes than is used in pipeline.


Endpoint of containers: endpoint to every container could be https://github.com/symbionext/DockerizedRobotFramework/blob/master/rfw_df_entrypoint.sh
Benefit: Minimize content of containers. Just usage purpose guided stuff included to containers. Other benefits are same than before.

INFO:

License:


Copyright 2016 sakari.hoisko@symbio.com
Copyright 2016 markus.suonto@eficode.com
Copyright 2016 miyo@eficode.com
Copyright 2016 sakari.hoisko@eficode.com

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.