This library provides keywords for accessing camunda workflow engine. Complete REST API reference of camunda can be found here.
Please review issue board for known issues or report one yourself. You are invited to contribute pull requests.
Keyword documentation is provided here
The library is published on pypi.org and can be installed with pip:
pip install robotframework-camunda
The tests
folder has example robot tests for keywords already implemented. Those tests assume you already have an
instance of camunda running.
Easiest way of running camunda is to launch with with docker:
docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:run-latest
*** Settings ***
Library CamundaLibrary ${CAMUNDA_HOST}
*** Variables ***
${CAMUNDA_HOST} http://localhost:8080
${MODEL_FOLDER} ${CURDIR}/../models
*** Test Cases ***
Test deployment of a single model in 1 deployment
${response} deploy ${MODEL_FOLDER}/demo_for_robot.bpmn
Test deployment of several models in 1 deployment
${response} deploy ${MODEL_FOLDER}/demo_for_robot.bpmn ${MODEL_FOLDER}/demo_embedded_form.html
*** Settings ***
Library CamundaLibrary ${CAMUNDA_HOST}
*** Variables ***
${CAMUNDA_HOST} http://localhost:8080
*** Test Cases ***
Test starting process
#GIVEN
${process_definition_key} Set Variable demo_for_robot
# WHEN
${process_instance} start process ${process_definition_key}
"Executing task" bascialy means, you execute a robot task that fetches a workload from camunda, processes it and returns its workload back to camunda during completion. Main keywords involved are:
CamundaLibrary.Fetch workload
CamundaLibrary.Complete Task
*** Settings ***
Library CamundaLibrary ${CAMUNDA_HOST}
Library Collections
*** Variables ***
${CAMUNDA_HOST} http://localhost:8000
${existing_topic} process_demo_element
*** Test Cases ***
Process workload
${variables} fetch workload topic=${existing_topic}
${recent_task} Get fetch response
log Recent task:\t${recent_task}
Pass Execution If not ${recent_task} No workload fetched from Camunda
# do some processing
# create result and return workload to Camunda
${my_result} Create Dictionary lastname=Stahl
complete task ${my_result}