Skip to content

symbionext/DockerizedRobotFramework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 [email protected]
Copyright 2016 [email protected]
Copyright 2016 [email protected]
Copyright 2016 [email protected]

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.

About

Dockerize a RobotFramework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages