Giter VIP home page Giter VIP logo

soapuipro_docker's Introduction

SOAPUI PRO & DOCKER

This project was created to aid in the execution of SoapUI PRO tests in container based environments. This is a work in progress, and the full feature set found in the SoapUI Testrunner has not been tested on the container version.

This implementation of SoapUI and Docker requires building the project file into the container, and then passing arguments to tailor how this will run outside of the default full project execution. A library of images could then be built/maintained, and pulled in as needed for execution by a pipeline or larger process.

If you are interested in other base image versions of this repository - there is a branch supporting RHEL and (potentially) some others down the line.

This is not supported by Smartbear


REQUIREMENTS & RESTRICTIONS

  • Docker 17.09 +
  • Valid SoapUI PRO floating license
  • License hosted on Protection floating license server and configured as described in official docs.
  • Local project file
  • Currently only supports flat XML projects (default type)

CLONE REPOSITORY

$ git clone https://github.com/nate01776/soapuipro_docker.git
$ cd ./soapui_docker

BUILD

  $ docker build \
      --build-arg ls_address=[server_address] \
      --build-arg project_path=[project_path] \
      -t [tag_name] .
  • server_address (REQ): License server IP address or hostname
  • project_path (REQ): Local path of project XML to be built into container
  • tag_name: Tag associated w/build (eg. soapuiproject).
  • The XML project file should be copied into the same repository the container will be built from
  • Build will typically take ~5 minutes depending on available resources

EXAMPLE

  $ docker build \
      --build-arg ls_address=127.0.0.1 \
      --build-arg project_path=./readyapi_project.xml \
      -t soapui:project_2 .

RUN

AS FULL PROJECT

$ docker run [tag_name]
  • tag_name: Same tag as from build step.

WITH ARGUMENTS

  $ docker run [tag_name] \
      "[readyapi_arguments]" \
      "./readyapi/project/run.xml"
  • tag_name: Same tag as from build step.
  • readyapi_arguments: Commands should be passed in as they would against the testrunner, these are mapped to the runner inside of the container and executed. Ensure the full list - including the project run file - is wrapped as a string.

EXAMPLE

  $ docker run soapui:project_2 \
      "-sTestSuite 1" \
      "-cTestCase 1" \
      "-EDefault environment" \
      "./readyapi/project/run.xml"

More information on the associated arguments can be found in the official documentation.

FUTURE

  • Support packaged projects instead of XML files - this will allow inclusion of Datasources in some of the standard types, as well as potentially composite projects.
  • Support for composite projects on local machine
  • Support ability to pull composite project from repository endpoint
  • Support for all report types

soapuipro_docker's People

Contributors

nazwr avatar nwrightsb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

soapuipro_docker's Issues

Dockerfile removed?

Hello, I'm wondering why the Dockerfile was removed from the master branch here?

Thank you.

Build should support 3 distinct arguments

  • proj_path (composite project)
  • proj_repo (git based project)
  • proj_file (flat XML file - default type)

Each of these will map to three build arguments defined in the dockerfile

On build, there is a check that ONE of the three is included - multiple project locations should throw an error.

On run there is a conditional check that defines the CMD to run based on which proj_[type] is not null

Is full Ubuntu install needed?

Strip down the base image to as low a level as possible to try and minimize build time. Right now, the Ubuntu/JRE/openJFX setup takes ~75% of build time, so finding an image with those core requirements already included would be ideal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.