diff --git a/README.md b/README.md index 507d54c..1e2e5cb 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ ![Compatible with: Camunda Platform 7](https://img.shields.io/badge/Compatible%20with-Camunda%20Platform%207-26d07c) + ![Compatible with: Camunda Platform 8](https://img.shields.io/badge/Compatible%20with-Camunda%20Platform%208-0072Ce) [![](https://img.shields.io/badge/Lifecycle-Incubating-blue)](https://github.com/Camunda-Community-Hub/community/blob/main/extension-lifecycle.md#incubating-) -# process-execution-automator +# Process-execution-automator Create scenarios to automate any execution of processes. Objectives are * Unit test and regression: You need to verify that a process reacts the same if you create a process instance with the variable "amount=100", and that the process comes to the user task "review". @@ -21,10 +22,11 @@ The Load Test section covers these goals. Process-Automator executes scenario. One scenario pilot a process. -It is possible to execute multiple at the same time to handle a use case like +It is possible to execute multiple scenario at the same time to handle a use case like "generate 100 process instances/minute on process Review, 5 process instances per second on process Expense." Automator does not start a Camunda Engine; it communicates with it. It can be a Camunda 7 server or a Camunda 8 server. +![ProcessExecutionAutomatorMainOverview.png](doc/images/ProcessExecutionAutomatorMainOverview.png) The goal of the Automator is not to simulate the execution. It is to pilot an execution on a real system, and to verify that the process reacts as expected. @@ -76,6 +78,10 @@ The unit scenario describes one process instance execution. Creation and user ta This functionality is used to run regression tests, coverage tests, or just advance process instances in the process for the development. +The tool is started as a Pod in the cluster. Via a REST call, it's possible to pilot it (upload a scenario, start a scenario), or via a process. + +![C8CrawlUrl-unit-test.png](doc/scenarioreference/C8CrawlUrl-unit-test.png) + Visit [Unit Scenario](doc/unittestscenario/README.md) ### Load test (flow-scenario) @@ -86,6 +92,15 @@ The flow scenario has a duration and objective to verify. You can specify objectives: produce 1000 Process Instances, end 500 process instances, and produce 300 tasks in a user task. +Same a s the unit test, it's possible to start one pod, and then start the scenario. + +![C8CrawlUrl.png](doc/scenarioreference/C8CrawlUrl.png) + +To Simulate a real situation, it's possible to start multiple pods, and specialize them to execute only one part of the scenario. +For example, one pod will run the creation, some other run workers (one or multiple workers). + +![C8CrawlUrl-multiple-pods.png](doc/scenarioreference/C8CrawlUrl-multiple-pods.png) + The method to conduct a [Load Test](doc/howRunLoadTest/README.md) is available here. diff --git a/doc/images/ProcessExecutionAutomatorMainOverview.png b/doc/images/ProcessExecutionAutomatorMainOverview.png new file mode 100644 index 0000000..9e6f9d1 Binary files /dev/null and b/doc/images/ProcessExecutionAutomatorMainOverview.png differ diff --git a/doc/scenarioreference/C8CrawlUrl-multiple-pods.bpmn b/doc/scenarioreference/C8CrawlUrl-multiple-pods.bpmn new file mode 100644 index 0000000..6e64706 --- /dev/null +++ b/doc/scenarioreference/C8CrawlUrl-multiple-pods.bpmn @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 0 s + + + + 10 s + + + + 1 s + + + + 1 s + + + + 5 s + + + + Loop 20 + + + + 2 s + + + + 400PI/mn + + + + + + Flow_17n6ju8 + + + + + + Flow_17n6ju8 + Flow_03a245y + + + Flow_191cul5 + + + Flow_03a245y + Flow_191cul5 + + + + + + + Flow_0ue17j2 + + + + + Flow_06qswzj + + + + + + Flow_0ue17j2 + Flow_1dpfwyb + + + + + + Flow_0zrd1qi + Flow_0zhmx9x + + + + + + Flow_0zhmx9x + Flow_11raeuz + Flow_1llqly1 + + + + + + Flow_1llqly1 + Flow_06qswzj + + + + + + Flow_1dpfwyb + Flow_0zrd1qi + Flow_0af83lu + + + + =urlNotFound + + + Flow_124nqht + + + + Flow_0af83lu + Flow_0x26tsm + + + Flow_0x26tsm + Flow_124nqht + Flow_15yyn2a + + + + =processAcceptable + + + + + + Flow_15yyn2a + Flow_11raeuz + + + + + + Flow_1q4xt3v + + PT20M + + + + Flow_1q4xt3v + + + + + + + + + + + DataObjectReference_16o9ddc + + + + + + + + + + + + + DataObjectReference_16o9ddc + + + + + + + DataObjectReference_16o9ddc + + + + + DataObjectReference_16o9ddc + + + + + + + DataObjectReference_16o9ddc + + + + + DataObjectReference_16o9ddc + + + + + DataObjectReference_16o9ddc + + + + + DataObjectReference_16o9ddc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/scenarioreference/C8CrawlUrl-multiple-pods.png b/doc/scenarioreference/C8CrawlUrl-multiple-pods.png new file mode 100644 index 0000000..0ebf1ee Binary files /dev/null and b/doc/scenarioreference/C8CrawlUrl-multiple-pods.png differ diff --git a/doc/scenarioreference/C8CrawlUrl-unit-test.bpmn b/doc/scenarioreference/C8CrawlUrl-unit-test.bpmn new file mode 100644 index 0000000..0af54e1 --- /dev/null +++ b/doc/scenarioreference/C8CrawlUrl-unit-test.bpmn @@ -0,0 +1,687 @@ + + + + + + + + + + + + + + + + + + + + + + + + 0 s + + + + 10 s + + + + 1 s + + + + 1 s + + + + 5 s + + + + Loop 20 + + + + 2 s + + + + 400PI/mn + + + + + + Flow_17n6ju8 + + + + + + Flow_17n6ju8 + Flow_03a245y + + + Flow_191cul5 + + + Flow_03a245y + Flow_191cul5 + + + + + + + Flow_0ue17j2 + + + + + Flow_06qswzj + + + + + + Flow_0ue17j2 + Flow_1dpfwyb + + + + + + Flow_0zrd1qi + Flow_0zhmx9x + + + + + + Flow_0zhmx9x + Flow_11raeuz + Flow_1llqly1 + + + + + + Flow_1llqly1 + Flow_06qswzj + + + + + + Flow_1dpfwyb + Flow_0zrd1qi + Flow_0af83lu + + + + =urlNotFound + + + Flow_124nqht + + + + Flow_0af83lu + Flow_0x26tsm + + + Flow_0x26tsm + Flow_124nqht + Flow_15yyn2a + + + + =processAcceptable + + + + + + Flow_15yyn2a + Flow_11raeuz + + + + + + Flow_1q4xt3v + + PT20M + + + + Flow_1q4xt3v + + + + + + + + + + + + + Flow_1ugpcld + + + Flow_1ugpcld + Flow_0223zj4 + + + + + + + + Flow_1n5n7qq + + + Flow_05jn8jx + Flow_1n5n7qq + + + Flow_15q8ny0 + Flow_05jn8jx + Flow_1kdrhxm + + + Flow_1kdrhxm + + + + Flow_0223zj4 + Flow_15q8ny0 + + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + DataObjectReference_0xd744m + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/scenarioreference/C8CrawlUrl-unit-test.png b/doc/scenarioreference/C8CrawlUrl-unit-test.png new file mode 100644 index 0000000..46a9822 Binary files /dev/null and b/doc/scenarioreference/C8CrawlUrl-unit-test.png differ diff --git a/doc/scenarioreference/C8CrawlUrl.png b/doc/scenarioreference/C8CrawlUrl.png new file mode 100644 index 0000000..7358280 Binary files /dev/null and b/doc/scenarioreference/C8CrawlUrl.png differ diff --git a/src/main/java/org/camunda/automator/bpmnengine/camunda7/BpmnEngineCamunda7.java b/src/main/java/org/camunda/automator/bpmnengine/camunda7/BpmnEngineCamunda7.java index 80e85af..719c313 100644 --- a/src/main/java/org/camunda/automator/bpmnengine/camunda7/BpmnEngineCamunda7.java +++ b/src/main/java/org/camunda/automator/bpmnengine/camunda7/BpmnEngineCamunda7.java @@ -258,7 +258,6 @@ public RegisteredTask registerServiceTask(String workerId, return null; } RegisteredTask registeredTask = new RegisteredTask(); - ExternalTaskClient client = ExternalTaskClient.create() .baseUrl(serverUrl) .workerId(workerId) @@ -272,7 +271,8 @@ public RegisteredTask registerServiceTask(String workerId, .lockDuration(10000) .handler((ExternalTaskHandler) jobHandler) .open(); - return registeredTask; + + return registeredTask; }