Netboard Service
The test designer’s Netboard service is an HTTP service that allows you to store and retrieve named data. The stored data is deleted after 1 hour and since it each entry is named, then if another set of key/values comes with the same name, then the previous value if existing, will get replaced with the new value. The concept is similar to a temporal hash map. So a Netboard is basically a named set of key/value pairs that are stored for 1 hour and then automatically cleared to avoid memory leaks.
Netboard Calls
To make a Netboard call take the AIQ server address but with port 9090, as this service is hosted in the Test Designer server. Example:
http://localhost:9090/ds/dyn/Netboard/<command>
create
Parameters: board
Description: creates an empty net board with id "395". This call is optional as the first put will create the named board if it does not exist.
http://localhost:9090/ds/dyn/Netboard/create?board=staging
put - POST
Parameters: board, key,value
Description: store into the “staging” Netboard a key/value pair data with key = “homepage“ and a JSON string as a value. If a board with the provided key does not exist, a new board is created automatically and the data gets added.
http://localhost:9090/ds/dyn/Netboard/put?board=staging&key=id&value=623465387
get
Parameters: board, key
Description: returns a String with the value for an entry named key in the board provided.
http://localhost:9090/ds/dyn/Netboard/get?board=staging&key=account
containsKey
Parameters: board, key
Description: returns true if the provided board contains an entry with the provided key.
http://localhost:9090/ds/dyn/Netboard/containsKey?board=staging&key=account
getKeys
Parameters: board
Description: returns a JSON string with all keys defined in the board named “staging“
isEmpty
Parameters: board
Description: returns true if the board is empty
clearBoard
Parameters: board
Description: clear all the contents of the board
deleteBoard
Parameters: board
Description: remove the Netboard
getBoards
Parameters: none
Description: returns a JSON string with all the currently existing board names.
Example Test Designer JS Script
Segment.com Integration using the Netboard service
A set of entry points has been implemented along with standard Netboard calls to implement a webhook integration that allows automatic store of http://segment.com events. Segment.com events have JSON data. Need to configure any of the below entry points as webhooks inside http://segment.com configurations. The data received from those entry points will be processed in a way that received events data will be automatically named and put in corresponding Netboards.
_setDomain("http://localhost:9090"); get("/ds/dyn/Netboard/resetBoards"); get("/ds/dyn/Netboard/create?board=hitrecord"); get("/ds/dyn/Netboard/put?board=hitrecord&key=State&value=Alaska"); get("/ds/dyn/Netboard/put?board=hitrecord&key=Country&value=USA"); var $state = get("/ds/dyn/Netboard/get?board=hitrecord&key=State").getDataString(); log($state); assertEquals($state,"Alaska"); var $contains = get("/ds/dyn/Netboard/containsKey?board=hitrecord&key=State").getDataString(); log($contains); assertTrue($contains); var $fields = JSON.parse(get("/ds/dyn/Netboard/getKeys?board=hitrecord").getDataString()); log($fields[0]); assertEquals("State",$fields[0]); log($fields[1]); assertEquals("Country",$fields[1]); var $isEmpty = get("/ds/dyn/Netboard/isEmpty?board=hitrecord").getDataString(); log("isEmpty: "+$isEmpty) assertTrue($isEmpty=="false"); get("/ds/dyn/Netboard/create?board=costa%20rica"); get("/ds/dyn/Netboard/put?board=costa%20rica&key=State&value=San%20Jose"); get("/ds/dyn/Netboard/put?board=costa%20rica&key=Country&value=Costa%20Rica"); var $boards = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString()); log($boards[0]); assertEquals("hitrecord",$boards[0]); assertEquals("costa rica",$boards[1]); var $text = get("/ds/dyn/Netboard/removeOldEntries").getDataString(); log($text); assertContains($text,"Removing data from Netboard older than"); get("/ds/dyn/Netboard/clearBoard?board=hitrecord"); $fields = JSON.parse(get("/ds/dyn/Netboard/getKeys?board=hitrecord").getDataString()); log($fields.length); assertEquals(0,$fields.length); get("/ds/dyn/Netboard/deleteBoard?board=hitrecord"); $fields = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString()); log($fields.length); assertEquals(1,$fields.length); get("/ds/dyn/Netboard/deleteBoard?board=costa%20rica"); $fields = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString()); log($fields.length); assertEquals(0,$fields.length);
Segment.com Entry points
There are 5 independent entry points, each one capable of admin many Netboard.
-
<aiq server dns>:9090/ds/dyn/Netboard/aiq01
-
<aiq server dns>:9090/ds/dyn/Netboard/aiq02
-
<aiq server dns>:9090/ds/dyn/Netboard/aiq03
-
<aiq server dns>:9090/ds/dyn/Netboard/aiq04
-
<aiq server dns>:9090/ds/dyn/Netboard/aiq05
Once the webhook is configured with one of the above entry points the data from the incoming http://segment.com event will be available to be verified using normal get Netboard calls.