Skip to content

bptlab/ark_automate_local

Repository files navigation

Local Client of Ark Automate

This script allows the local execution of robots that were built in the Ark Automate Web Application.

Setup

While calls from robotframeworks standard libraries work on Windows and MacOS, calls from the rpaframework like Excel.Application.Open Application only work on Windows.
Because of missing security permissions we are currently not able to provide this version of the local client for MacOS. We recommend running it in a virtual machine instead.
Because of these factors, the local client for now is only supported to run on Windows.

To run the client first make sure of the following:

  1. node (at least v10) is installed
  2. robotframework is setup correctly, including the path variables!
  3. rpaframework (at least v9.6) is installed

To test this, try to execute a self written robot on your local machine using the cmd/bash/shell, for example robot ./path/to/myRobot.robot.

Then you can proceed to:

  1. Clone this repository git clone https://github.com/bptlab/ark_automate_local.git
  2. Change into the new directory cd ark_automate_local
  3. Execute npm install -g
  4. Start the script in the current directory by running ark

About the local client

The local client is the companion to the web application Ark-Automate. It registers on to a userId and awaits new robotJobs from this user to execute. As soon as it receives a new job via the socket.io connection, it executes the robot and sends live logs to the backend of Ark-Automate. The userId is set when running the local client for the first time or via the config.json.

A special feature is the LiveLogsListener.py which is an implementation of the Listener Interface provided by Robot Framwork. It reacts to the individual test cases run by executing the robot. A test case can be translated to one instruction element of the ssot. For each test case, information on the execution is written into the robotLogs.json which is observed by the local client. Each change will result in sending the entire robotLogs.json via the socketConnection to the backend, where it is further processed.

Screenshot of local client in console