Links

Database Testing

Loadmill allows users to execute various queries directly to their DB in order to validate data. This is a very powerful feature as it allows users to check data integrity and accuracy.

Usage

Postgres

To execute a database query:
  1. 1.
    Go to the relevant test flow within your Test Suite.
  2. 2.
    Request Method: POST.
  3. 3.
    Request URL: https://db-relay-service.loadmill.com/api/postgres
  4. 4.
    Content Type: application/json
  5. 5.
    Request Body:
body: {
"connectionString": "postgres://...",
"query": "SELECT * FROM USERS"
}
See the request example below:
Running this request with result with a JSON response with the required data.

MongoDB

To execute MongoDB queries:
  1. 1.
    Apply the same steps above.
  2. 2.
    Request URL: https://db-relay-service.loadmill.com/api/mongo
  3. 3.
    Request Body:
In this example we're searching for a user with the name "John"
body: {
connectionString: 'mongodb://...',
collection: 'users',
command: 'find',
query: { "name":"John" }
}
The MongoDB service is initially meant for "read-only" puposes (i.e. find). However, using a Docker image privately allows you to use the environment variable ALLOW_ALTERING=true and by doing so the following options are available: insertOne, insertMany, updateOne, updateMany, deleteOne and deleteMany.

MongoDB Altering Example Options

InsertOne:
body: {
connectionString: 'mongodb://...',
collection: 'users',
command: 'insertOne',
query: { "name": "John", "age": "56" }
}
updateOne:
body: {
connectionString: 'mongodb://...',
collection: 'users',
command: 'updateOne',
query: { "name":"John" },
update: { "$set": { "age": "67" } }
}
deleteOne:
body: {
connectionString: 'mongodb://...',
collection: 'users',
command: 'deleteOne',
query: { "name":"John" }
}
Additional help regarding update operators can be found here.

Redis

To execute Redis queries:
  1. 1.
    Apply the same steps above.
  2. 2.
    Request URL: https://db-relay-service.loadmill.com/api/redis
  3. 3.
    Request Body:
body: {
{
connectionString: "redis://...",
command:"get | hget | hgetall",
key:"any-key",
field: "any-field"
}
}

MySQL

To execute queries directly to MySQL 5.7:
  1. 1.
    Apply the same steps above.
  2. 2.
    Request URL: https://db-relay-service.loadmill.com/api/redis
  3. 3.
    Request Body:
body: {
"connectionString": "mysql://...",
"query": "SELECT * FROM TASKS"
}

DB relay service static IPs

Executing queries to your environment DB may require VPN. You can easily overcome this by whitelisting the DB relay service static IPs: [52.42.51.230, 54.190.108.53] in your firewall.

Docker image

You can use a Docker image for DB relay service to deploy it in a specific environment.
Find more information here.