Database Library for Robot Framework
Project description
Robot Framework Database Library
The Database Library for Robot Framework allows you to query a database and verify the results.
It requires an appropriate Python module to be installed separately - depending on your database, like e.g. oracledb
or pymysql
.
The library consists of some keywords designed to perform different checks on your database. Here you can find the keyword docs.
Requirements
- Python
- Robot Framework
- Python database module you're going to use - e.g.
oracledb
Installation
pip install robotframework-databaselibrary
Usage examples
Basic usage
*** Settings ***
Library DatabaseLibrary
Test Setup Connect To My Oracle DB
*** Keywords ***
Connect To My Oracle DB
Connect To Database
... oracledb
... dbName=db
... dbUsername=my_user
... dbPassword=my_pass
... dbHost=127.0.0.1
... dbPort=1521
*** Test Cases ***
Person Table Contains Expected Records
${output}= Query select LAST_NAME from person
Length Should Be ${output} 2
Should Be Equal ${output}[0][0] See
Should Be Equal ${output}[1][0] Schneider
Person Table Contains No Joe
${sql}= Catenate SELECT id FROM person
... WHERE FIRST_NAME= 'Joe'
Check If Not Exists In Database ${sql}
Handling multiple database connections
*** Settings ***
Library DatabaseLibrary
Test Setup Connect To All Databases
Test Teardown Disconnect From All Databases
*** Keywords ***
Connect To All Databases
Connect To Database psycopg2 db db_user pass 127.0.0.1 5432
... alias=postgres
Connect To Database pymysql db db_user pass 127.0.0.1 3306
... alias=mysql
*** Test Cases ***
Using Aliases
${names}= Query select LAST_NAME from person alias=postgres
Execute Sql String drop table XYZ alias=mysql
Switching Default Alias
Switch Database postgres
${names}= Query select LAST_NAME from person
Switch Database mysql
Execute Sql String drop table XYZ
See more examples in the folder tests
.
Database modules compatibility
The library is basically compatible with any Python Database API Specification 2.0 module.
However, the actual implementation in existing Python modules is sometimes quite different, which requires custom handling in the library. Therefore there are some modules, which are "natively" supported in the library - and others, which may work and may not.
Python modules currently "natively" supported
Oracle
- oracledb
- Both thick and thin client modes are supported - you can select one using the
driverMode
parameter. - However, due to current limitations of the oracledb module, it's not possible to switch between thick and thin modes during a test execution session - even in different suites.
- Both thick and thin client modes are supported - you can select one using the
- cx_Oracle
MySQL
PostgreSQL
MS SQL Server
SQLite
Teradata
IBM DB2
ODBC
Kingbase
- ksycopg2
Further references (partly outdated)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file robotframework-databaselibrary-1.4.1.tar.gz
.
File metadata
- Download URL: robotframework-databaselibrary-1.4.1.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe7e3ec40fde2eb715130956c8b40bae45f9c1a61a24a464a61c13db66fb8535 |
|
MD5 | 217b74cb2daedf91aa990c61a515ddd2 |
|
BLAKE2b-256 | 8bc7efe5c26ff68394fe0ca219435b285d9126b787d98926c3fa0cabea364101 |
File details
Details for the file robotframework_databaselibrary-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: robotframework_databaselibrary-1.4.1-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0f0e1456e84e91c663c9d57b4afe4bcab61c5b38e5667f253208384734ec587 |
|
MD5 | 4e3cb1056fd78b82ef3c87a02ebd7b8b |
|
BLAKE2b-256 | b8a05487782381204d9d6dc3a4f946f6fb994555071cfd6d1f8828887fa550cf |