This is a mirror of the official repository at https://gitlab.com/openlp/openlp_api_tester
Go to file
Tim Bentley a324e3c87c Merge branch 'updates' into 'master'
Updates to version 0.4

See merge request openlp/openlp_api_tester!9
2022-02-19 08:18:50 +00:00
scripts Add Active tag and zeroconv handler. 2022-02-19 08:15:40 +00:00
test_api Add Active tag and zeroconv handler. 2022-02-19 08:15:40 +00:00
.flake8 Queues 2020-06-26 13:57:22 +00:00
.gitignore Queues 2020-06-26 13:57:22 +00:00
.gitlab-ci.yml Jan2021 2021-08-21 15:16:29 +00:00
api_test.py More Updates and year change 2021-01-02 12:05:02 +00:00
LICENSE Initial Commit 2020-06-20 08:53:44 +01:00
openlp-apitest.code-workspace Jan2021 2021-08-21 15:16:29 +00:00
README.md Jan2021 2021-08-21 15:16:29 +00:00
requirements.txt Merge branch 'updates' of gitlab.com:trb143/openlp_api_tester into updates 2022-02-12 22:04:20 +00:00
setup.cfg Fixes2 2020-06-21 08:57:12 +00:00

OpenLP API tester.

A command line utility to access a running OpenLP instance via it's API's and test all functionality.

This harness will find a running OpenLP instance on the network via ZeroConf and then using the API's build and run a service. After each command the results are tested to make sure the WebSockets have changed.

The API's need to be configured as insecure as this is not being tested.

Tests are mastered in JSON files and run using the framework.

The bible test framework is random so some bible references will not be correct and therefore will not load! The chapter and verse numbers are random numbers!!

Sample Test Structure

process_name: test process
step1:
  max: 1
  min: 1
  name: clear_live_controller
step2:
  delay: 1
  name: clear_preview_controller
step3:
  max: 1
  min: 1
  name: new_service
step4:
  delay: 1
  name: search_and_add
  payload:
    plugin: songs
step6:
  name: load_service_sequential 
  • process_name

    A unique name for the run

  • step 1

    The step number, needs to be unique and in order!

    • delay (optional)

      How long to wait after a call has been made. Default is 0.3 seconds for all calls.

    • max (optional)

      Max number of fields which will change on the Web Sockets interface.

    • min (optional)

      Max number of fields which will change on the Web Sockets interface.

    • payload

      Json to support addition information to the call.

    • name

      The step name (function name) to be called to run the step.

Commands and Payloads

Rule Name Payload
trigger_alert text:
search_and_add plugin:
search_and_live plugin:
service_item_show item: item_id
play_live_item ?????
controller_item_next ?????
controller_item_previous ???????

Adding API's and Internals

API's and their handers are defining in the callback.py file. This should be the only file that needs to change when adding new API's

The test scripts are in the scripts directory and are a pre defined set of tests.