Keyword |
Arguments |
Documentation |
---|
Check If Exists In Database |
selectStatement |
Check if any row would be returned by given the input selectStatement. If there are no results, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
When you have the following assertions in your robot
Check If Exists In Database |
select id from person where first_name = 'Franz Allan' |
Check If Exists In Database |
select id from person where first_name = 'John' |
Then you will get the following:
Check If Exists In Database |
select id from person where first_name = 'Franz Allan' |
# PASS |
Check If Exists In Database |
select id from person where first_name = 'John' |
# FAIL |
|
Check If Not Exists In Database |
selectStatement |
This is the negation of check_if_exists_in_database.
Check if no rows would be returned by given the input selectStatement. If there are any results, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
When you have the following assertions in your robot
Check If Not Exists In Database |
select id from person where first_name = 'John' |
Check If Not Exists In Database |
select id from person where first_name = 'Franz Allan' |
Then you will get the following:
Check If Not Exists In Database |
select id from person where first_name = 'John' |
# PASS |
Check If Not Exists In Database |
select id from person where first_name = 'Franz Allan' |
# FAIL |
|
Connect To Database |
dbapiModuleName=None, dbName=None, dbUsername=None, dbPassword=None, dbHost=localhost, dbPort=5432, dbConfigFile=./resources/db.cfg |
Loads the DB API 2.0 module given dbapiModuleName then uses it to connect to the database using dbName, dbUsername,
and dbPassword.
Optionally, you can specify a dbConfigFile wherein it will load the default property values for dbapiModuleName, dbNamedbUsername and dbPassword (note:
specifying dbapiModuleName, dbName dbUsername or dbPassword directly
will override the properties of the same key in dbConfigFile). If no dbConfigFile is specified, it defaults to ./resources/db.cfg.
The dbConfigFile is useful if you don't want to check into your SCM your database credentials.
Example usage:
# explicitly specifies all db property values |
| Connect To Database | psycopg2 | my_db | postgres | s3cr3t | tiger.foobar.com | 5432
# loads all property values from default.cfg |
|
Connect To Database |
dbConfigFile=default.cfg |
# loads all property values from ./resources/db.cfg |
Connect To Database |
# uses explicit dbapiModuleName and dbName but uses the dbUsername and dbPassword in
'default.cfg' |
|
|
|
Connect To Database |
psycopg2 |
my_db_test |
dbConfigFile=default.cfg |
# uses explicit dbapiModuleName and dbName but uses the dbUsername and dbPassword in
'./resources/db.cfg' |
|
|
Connect To Database |
psycopg2 |
my_db_test |
|
Connect To Database Using Custom Params |
dbapiModuleName=None, db_connect_string= |
Loads the DB API 2.0 module given dbapiModuleName then uses it to connect to the database using the map string db_custom_param_string.
Example usage:
# for psycopg2 |
|
|
Connect To Database Using Custom Params |
psycopg2 |
database='my_db_test', user='postgres', password='s3cr3t', host='tiger.foobar.com', port=5432 |
# for JayDeBeApi |
|
|
Connect To Database Using Custom Params |
JayDeBeApi |
'oracle.jdbc.driver.OracleDriver', 'my_db_test', 'system', 's3cr3t' |
|
Delete All Rows From Table |
tableName |
Delete all the rows within a given table.
For example, given we have a table person in a database
When you do the following:
Delete All Rows From Table |
person |
If all the rows can be successfully deleted, then you will get:
Delete All Rows From Table |
person |
# PASS |
If the table doesn't exist or all the data can't be deleted, then you will get:
Delete All Rows From Table |
first_name |
# FAIL |
|
Description |
selectStatement |
Uses the input selectStatement to query a table in the db which will be used to determine the description.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
When you do the following:
@{queryResults} |
Description |
select * from person |
Log Many |
@{queryResults} |
|
You will get the following: [Column(name='id', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)] [Column(name='first_name', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)]
[Column(name='last_name', type_code=1043, display_size=None, internal_size=255, precision=None, scale=None, null_ok=None)] |
Disconnect From Database |
|
Disconnects from the database.
For example:
Disconnect From Database |
# disconnects from current connection to the database |
|
Execute Sql Script |
sqlScriptFileName |
Executes the content of the sqlScriptFileName as SQL commands. Useful for setting the database to a known state before running your tests, or clearing out your test data after running each a test.
SQL commands are expected to be delimited by a semi-colon (';').
For example: delete from person_employee_table; delete from person_table; delete from employee_table;
Also, the last SQL command can optionally omit its trailing semi-colon.
For example: delete from person_employee_table; delete from person_table; delete from employee_table
Given this, that means you can create spread your SQL commands in several lines.
For example: delete from person_employee_table; delete from person_table; delete from employee_table
However, lines that starts with a number sign (#) are treated as a commented line. Thus, none of the contents of that line will be executed.
For example: # Delete the bridging table first... delete from person_employee_table; # ...and then the bridged tables. delete from person_table; delete from employee_table |
Query |
selectStatement |
Uses the input selectStatement to query for the values that will be returned as a list of tuples.
Tip: Unless you want to log all column values of the specified rows, try specifying the column names in your select statements as much as possible to prevent any unnecessary surprises with schema changes and to easily see what your [] indexing is trying to
retrieve (i.e. instead of "select * from my_table", try "select id, col_1, col_2 from my_table").
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
When you do the following:
@{queryResults} |
Query |
select * from person |
Log Many |
@{queryResults} |
|
You will get the following: [1, 'Franz Allan', 'See']
Also, you can do something like this:
${queryResults} |
Query |
select first_name, last_name from person |
Log |
${queryResults[0][1]}, ${queryResults[0][0]} |
|
And get the following See, Franz Allan |
Row Count |
selectStatement |
Uses the input selectStatement to query the database and returns the number of rows from the query.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
2 |
Jerry |
Schneider |
When you do the following:
${rowCount} |
Row Count |
select * from person |
Log |
${rowCount} |
|
You will get the following: 2
Also, you can do something like this:
${rowCount} |
Row Count |
select * from person where id = 2 |
Log |
${rowCount} |
|
And get the following 1 |
Row Count Is 0 |
selectStatement |
Check if any rows are returned from the submitted selectStatement. If there are, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
When you have the following assertions in your robot
Row Count is 0 |
select id from person where first_name = 'Franz Allan' |
Row Count is 0 |
select id from person where first_name = 'John' |
Then you will get the following:
Row Count is 0 |
select id from person where first_name = 'Franz Allan' |
# FAIL |
Row Count is 0 |
select id from person where first_name = 'John' |
# PASS |
|
Row Count Is Equal To X |
selectStatement, numRows |
Check if the number of rows returned from selectStatement is equal to the value submitted. If not, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
2 |
Jerry |
Schneider |
When you have the following assertions in your robot
Row Count Is Equal To X |
select id from person |
1 |
Row Count Is Equal To X |
select id from person where first_name = 'John' |
0 |
Then you will get the following:
Row Count Is Equal To X |
select id from person |
1 |
# FAIL |
Row Count Is Equal To X |
select id from person where first_name = 'John' |
0 |
# PASS |
|
Row Count Is Greater Than X |
selectStatement, numRows |
Check if the number of rows returned from selectStatement is greater than the value submitted. If not, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
2 |
Jerry |
Schneider |
When you have the following assertions in your robot
Row Count Is Greater Than X |
select id from person |
1 |
Row Count Is Greater Than X |
select id from person where first_name = 'John' |
0 |
Then you will get the following:
Row Count Is Greater Than X |
select id from person |
1 |
# PASS |
Row Count Is Greater Than X |
select id from person where first_name = 'John' |
0 |
# FAIL |
|
Row Count Is Less Than X |
selectStatement, numRows |
Check if the number of rows returned from selectStatement is less than the value submitted. If not, then this will throw an AssertionError.
For example, given we have a table person with the following data:
id |
first_name |
last_name |
1 |
Franz Allan |
See |
2 |
Jerry |
Schneider |
When you have the following assertions in your robot
Row Count Is Less Than X |
select id from person |
3 |
Row Count Is Less Than X |
select id from person where first_name = 'John' |
1 |
Then you will get the following:
Row Count Is Less Than X |
select id from person |
3 |
# PASS |
Row Count Is Less Than X |
select id from person where first_name = 'John' |
1 |
# FAIL |
|
Table Must Exist |
tableName |
Check if the table given exists in the database.
For example, given we have a table person in a database
When you do the following:
Then you will get the following:
Table Must Exist |
person |
# PASS |
Table Must Exist |
first_name |
# FAIL |
|