Apica Data Repository (ADR) aka Apica Table Server
The Apica Data Repository application matches the functionality up to and beyond the former “HP Virtual Table server.“ The ADR tool provides shared data tables that can be accessed by multiple scripts during the execution to manage data (C.R.U.D. operations). ADR will help accomplish the data sharing across the scripts during the execution, eliminating the need to attach data to the script before the execution to manage data.
ADR can be used in any use case where the script execution requires dynamic data, like feeding script with credentials, feeding script with security tokens, sharing data across different microservices scripts in the same application, etc. So basically, customers can save time by using the ADR tool, so it is apt for cost savings and flexibility. To communicate with ADR for data retrieval and feeding, ZebraTester now includes new inline functions.
Pros over the “HP Virtual Table Server”:
Ease of use (Has a Rich GUI)
Security (both in the GUI and API)
Low Resource consumption
Rich APIs support
Scalability
Better performance
Release Notes Pages
https://apica-packages.s3.eu-central-1.amazonaws.com/stable/adr/1.4/ApicaTableServer.pdf
V1.4 Release Notes (Dec 02, 2021)
Releasing as a standalone package (before it was delivered along with ZebraTester)
Tables are saved as encrypted files, means not as plain CSV files
Supports Search option by a keyword on the created tables
V1.3 Release Notes (April 22, 2021)
Support for
client certificate authentication when communicating to ATS API end points. (refer section 1.2 for more details)
Supports new API end point for query table based on column names and values like below example GET url - http://127.0.0.1:8992?cmd=ats_retrieve_row_by_column body JSON- { "TableName”: "table_name", "MatchColumnNames": ["column_name1",”column_name2”], "MatchColumnValues" : ["column_value1","column_value2"] } This API should also support retrieval based on multiple column names and values. This API also supports an optional input OutputColumnNames, the column names in a row to be retrieved based on the matching column names and values.
Supports the user case of not removing the retrieved column value from the table when querying based on the row index.
V1.2 Release Notes (January 17, 2021)
Support for
Authentication using a username and password, Authorization with the help of Users - Groups - Tables relations.
Create a New Table option, so that the user can create new tables that will be automatically added to the groups, the user belongs to.
Fixed bugs related to intermittent issues - duplicate retrieval and insertion of data.
V1.1 Release Notes (September 30, 2020)
Support for
Column actions like insert value at the start, append a value to the end, insert a column, and delete a column.
Row actions like editing a row; modifying the values of the columns inside a row or delete a row.
Server-side pagination for the ATS tables, so that table with a huge amount of data will load in milliseconds.
Enable /Disable API Access
If disabled, the APIs supported by ATS won’t be reachable.
Added a new API call for getting the size of a table on ATS.
V1.0 Release Notes (July 20, 2020)
Import CSV files
Contents of the CSV files will be stored as a table and can be viewed in the ATS GUI.
Support Multiple tables
There’s an available drop-down for selecting a particular table.
Export the selected table.
Delete the selected table.
REST endpoints can Retrieve and Upload data from/to ATS.
Installation of ADR
Include Page
Edit to setup
getTableColumn(tableName, columnName)
Retrieves the first row in that column, there is an optional parameter row index you can pass as well when you need to have value from a particular row index
country = getTableColumn("100_Sales_Records", "Country", 1)
By default this function will give different column values for each request , but if you want to get always the same value , you need to pass the third parameter row index
team = getTableColumn("TeamDetails", "teamName", 2)
getTableRow(tableName, columnNames)
Retrieves the first row of each column given. columnNames separated by semicolon . Next call will give the second row and so on.
getTableRow("100_Sales_Records", "Country;Region")
getTableRowByColumn(tableName, matchColumnNames, matchColumnValues, outputColumnNames)
Retrieves the first row of column values that matches given column names and values. User can also supply the output columns to be retrieved , but it is optional . In case of multiple input, the values of matchColumnNames, matchColumnValues and outputColumnNames should be separated by a semicolon
This function will always give the values of the columns consistently, means you can have the same set of values for every call based on the criteria
getTableRowByColumn(“100_Sales_Records”, “Region;Country”, “Europe;Russia”)
setTableColumn(tableName, columnName, columnValue, uniqueFlag)
Set a value to a single column of the table. Value of uniqueFlag can be 0 or 1
setTableColumn("100_Sales_Records", "Country","USA", "0")
setTableRow(tableName, columnNames, columnValues, type)
Set the values of a row in a table(columnNames and columnValues separated by semicolon). Value of type can be ROW or UNIQUE or STACKED
setTableRow("100_Sales_Records", "Country;Region", "Japan;Nagasaki", "ROW")
updateTableColumn(tableName, columnName, columnValue, uniqueFlag, rowIndex)
Update a value to a single column of the table by row index. Value of uniqueFlag can be 0 or 1
updateTableColumn("100_Sales_Records", "Country","India", "0", "1")
ADR REST Endpoints
1. Retrieve column values from a table
GET url - http://127.0.0.1:8992?cmd=ats_retrieve_row - Suits performance testing use cases body JSON- { "TableName”: "table_name", "ColumnNames”: ["column_name1","column_name2"] }
This API call will give different column values for each request ,that means once a value is retrieved, it had been marked as retrieved and cannot be retrieved again
OpenPreview unavailable
2. Set values of multiple columns in a table
POST url - http://127.0.0.1:8992?cmd=ats_send_row body JSON - { "TableName”: "table_name", "ColumnNames”: ["column_name1","column_name2"], "ColumnValues”: ["column_value1","column_value2"], "Type”: "ROW" }
Type have three values ROW, STACKED and UNIQUE
OpenPreview unavailable
3. Retrieve a column value from a table - Suits performance testing use cases , but can be used for other use cases with the help of RowIndex
GET url - http://127.0.0.1:8992?cmd=ats_retrieve_column body JSON- { "TableName”: "table_name", "ColumnName”: "column_name" }
By default this API call will give different column values for each request ,that means once a value is retrieved, it had been marked as retrieved and cannot be retrieved again. But in some cases if you want to retrieve always the same value , you need to pass the third parameter RowIndex
OpenPreview unavailable
4. Set a column value in a table
POST url - http://127.0.0.1:8992?cmd=ats_send_column body JSON- { "TableName”: "table_name", "ColumnName”: "column_name", "ColumnValue”: "column_value", "Unique”: true }
OpenPreview unavailable
5. Update a column value by row index in a table
POST url - http://127.0.0.1:8992?cmd=ats_update_column body JSON - { "TableName”: "table_name", "ColumnName”: "column_name", "ColumnValue”: "column_value”, “Unique”: false, " RowIndex “: 1 }
OpenPreview unavailable
6. Get the size of a table or column in a table
POST url - http://127.0.0.1:8992?cmd=ats_retrieve_table_size body JSON - { "TableName”: "table_name", "ColumnName”: "column_name" ColumnName is optional }
7. Retrieval of rows based on multiple column names and values. This API also supports an optional input OuputColumnNames, the column names in rows to be retrieved based on the matching column names and values
GET url - http://127.0.0.1:8992?cmd=ats_retrieve_row_by_column body JSON- { "TableName”: "table_name", "MatchColumnNames": ["column_name1",”column_name2”], "MatchColumnValues" : ["column_value1","column_value2"] }
OpenPreview unavailable
8. Save a table after you have called any of the above APIs
POST url - http://127.0.0.1:8992?cmd=ats_save_table body JSON - { "TableName”: "table_name" }
9. Retrieve all the records in a particular table
GET url - http://127.0.0.1:8992?cmd=ats_retrieve_all_rows body JSON - { "TableName”: "table_name" }
Last updated
Was this helpful?