Skip to main content

An Amazon AWS DynamoDB big data testing library for Robot Framework with SQL-like DSL

Project description

Build Status Code Coverage Code Grade Keyword Documentation Package Version Development Status Python Version Monthly Download License


DynamoDBSQLibrary is a big data testing library for Robot Framework that gives you the capability to execute scan and query operations against multi Amazon DynamoDB sessions simultaneously using a SQL-like DSL.

It leverages DynamoDB Query Languange (DQL) internally to provide a SQL-like DSL for Amazon DynamoDB.

More information about DQL queries can be found in the DQL Queries Documentation.

More information about this library can be found in the Keyword Documentation.


Create DynamoDB Session us-west-2 label=oregon
Create DynamoDB Session ap-southeast-1 label=singapore
Create DynamoDB Session eu-central-1 label=frankfurt
Query DynamoDB oregon CREATE TABLE mine (id STRING HASH KEY)
Query DynamoDB singapore CREATE TABLE mine (id STRING HASH KEY)
Query DynamoDB frankfurt CREATE TABLE mine (id STRING HASH KEY)
DynamoDB Table Should Exist oregon mine
DynamoDB Table Should Exist singapore mine
DynamoDB Table Should Exist frankfurt mine
Query DynamoDB oregon INSERT INTO mine (id) VALUES (‘oregon’)
Query DynamoDB singapore INSERT INTO mine (id) VALUES (‘singapore’)
Query DynamoDB frankfurt INSERT INTO mine (id) VALUES (‘frankfurt’)
@{oregon} = Query DynamoDB oregon SCAN mine
@{singapore} = Query DynamoDB singapore SCAN mine
@{frankfurt} = Query DynamoDB frankfurt SCAN mine
List And JSON String Should Be Equal ${oregon} [{“id”:”oregon”}]
List And JSON String Should Be Equal ${singapore} [{“id”:”singapore”}]
List And JSON String Should Be Equal ${frankfurt} [{“id”:”frankfurt”}]
Delete All Dynamodb Sessions

Config and Credentials File

Set up config file in default location:

  • ~/.aws/config (Linux/Mac)
  • %USERPROFILE%.awsconfig (Windows)
region = us-east-1

Set up credentials file in default location:

  • ~/.aws/credentials (Linux/Mac)
  • %USERPROFILE%.awscredentials (Windows)
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET

aws_access_key_id = ANOTHER_KEY
aws_secret_access_key = ANOTHER_SECRET
region = us-west-1


Using pip

The recommended installation method is using pip:

pip install robotframework-dynamodbsqllibrary

The main benefit of using pip is that it automatically installs all dependencies needed by the library. Other nice features are easy upgrading and support for un-installation:

pip install --upgrade robotframework-dynamodbsqllibrary
pip uninstall robotframework-dynamodbsqllibrary

Notice that using --upgrade above updates both the library and all its dependencies to the latest version. If you want, you can also install a specific version or upgrade only the dql package used by the library:

pip install robotframework-dynamodbsqllibrary==x.x.x
pip install --upgrade dql
pip install dql==x.x.x

Proxy configuration

If you are behind a proxy, you can use --proxy command line option or set http_proxy and/or https_proxy environment variables to configure pip to use it. If you are behind an authenticating NTLM proxy, you may want to consider installing CNTML to handle communicating with it.

For more information about --proxy option and using pip with proxies in general see:

Manual installation

If you do not have network connection or cannot make proxy to work, you need to resort to manual installation. This requires installing both the library and its dependencies yourself.

gpg --keyserver --search-keys D1406DE7
  • Select the number from the list to import the public key
  • Verify the package against its PGP signature:
gpg --verify robotframework-dynamodbsqllibrary-x.x.x.tar.gz.asc robotframework-dynamodbsqllibrary-x.x.x.tar.gz
  • Extract each source distribution to a temporary location.
  • Go to each created directory from the command line and install each project using:
python install

If you are on Windows, and there are Windows installers available for certain projects, you can use them instead of source distributions. Just download 32bit or 64bit installer depending on your system, double-click it, and follow the instructions.

Directory Layout

Keyword documentation
Python source code

Test files

Robot Framework acceptance test
Python unit test


To write tests with Robot Framework and DynamoDBSQLLibrary, DynamoDBSQLLibrary must be imported into your Robot test suite. See Robot Framework User Guide for more information.

More information about Robot Framework standard libraries and built-in tools can be found in the Robot Framework Documentation.

Building Keyword Documentation

The Keyword Documentation can be found online, if you need to generate the keyword documentation, run:

make doc

Run Unit Tests, Acceptance Tests, and Test Coverage Report

Test the testing library, talking about dogfooding, let’s run:

make test


If you would like to contribute code to DynamoDB SQL Library project you can do so through GitHub by forking the repository and sending a pull request.

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also include appropriate test cases.

Before your code can be accepted into the project you must also sign the DynamoDB SQL Library CLA (Individual Contributor License Agreement).

That’s it! Thank you for your contribution!


Copyright (c) 2014 - 2015 Richard Huang.

This library is free software, licensed under: GNU Affero General Public License (AGPL-3.0).

Documentation and other similar content are provided under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions (89.0 kB view hashes)

Uploaded source

robotframework-dynamodbsqllibrary-0.2.1.tar.gz (73.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page