integration.xml

<integration.xml> - is made to set up integrations with API, Database etc.

Inside integration.xml file there is a set of integrations out-of-the-box:

<apis> <websockets> <clickhouse> <dynamo> <elasticsearch> <kafka> <mongo> <mysql> <oracle> <postgres> <rabbitmq> <redis> <s3> <sendgrid> <ses> <sqs> <graphQl> <lambdaIntegration> <smtpIntegration> <twilioIntegration>

When setting up a integration.xml file, for each integration tag in the structure there is a mandatory and unique alias parameter, with the help of which we get interaction with databases and APIs within the test scenario.

Each service has a flag enabled: true & false which means whether the integration will be connected or not.

  • Configure the services you need and easily switch between them.


apis

<apis> - is a command for API integration. It means, that you are able to integrate as much APIs for your test scenarios as you need.

<apis> <api alias="ALIAS_1" url="http://URL" enabled="true"/> <api alias="ALIAS_2" url="http://URL" enabled="false"> <auth authStrategy="basic"/> </api> </apis>

Contains attributes:

  • alias - unique alias for the specific API. You can come up with your alias for your test scenarios to choose what API to use

  • url - URL for the specific API

Optional attributes:

  • Auth - Authentication

<apis> <api alias="ALIAS" url="http://URL" enabled="true"> <auth authStrategy="basic" tokenName="token" autoLogout="true"/> </api> </apis>

authStrategy - You can choose desired auth strategy, such as:

  • basic

  • default

  • custom

  • jwt

Optional attributes for Auth:

  • autoLogout - when selected, Testlum will log out after test execution (default value - true)

  • authCustomClassName - attribute for custom auth strategy

  • tokenName - name for auth token (default value - token)


websockets

<websockets> - is a command for Websocket API integration.

<websockets> <api alias="ALIAS_1" url="ws://URL" protocol="stomp" enabled="true"/> <api alias="ALIAS_2" url="wss://URL" protocol="standard" enabled="false"/> </websockets>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

url - URL for Websocket API

protocol - standard/stomp - choice of protocol for Websocket API 'enabled' - true/false - indicator which shows whether specific websocket API integration enabled or not


clickhouse

<clickhouseIntegration> - is a command for ClickHouse integration.

<clickhouseIntegration> <clickhouse alias="ALIAS_1" enabled="true" truncate="true"> <jdbcDriver>ru.yandex.clickhouse.ClickHouseDriver</jdbcDriver> <username>test</username> <password>test</password> <connectionUrl>jdbc:clickhouse://</connectionUrl> </clickhouse> <clickhouse alias="ALIAS_2" enabled="false" truncate="false"> <jdbcDriver>ru.yandex.clickhouse.ClickHouseDriver</jdbcDriver> <username>test</username> <password>test</password> <connectionUrl>jdbc:clickhouse://</connectionUrl> </clickhouse> </clickhouseIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


dynamo

<dynamoIntegration> - is a command for DynamoDB integration.

<dynamoIntegration> <dynamo alias="ALIAS_1" enabled="true" truncate="true"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> <sessionToken>SESSION_TOKEN</sessionToken> </dynamo> <dynamo alias="ALIAS_2" enabled="false" truncate="false"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> <sessionToken>SESSION_TOKEN</sessionToken> </dynamo> </dynamoIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


elasticsearch

<elasticsearchIntegration> is a command for Elasticsearch integration.

<elasticsearchIntegration> <elasticsearch alias="ALIAS_1" enabled="true" truncate="true"> <host>HOST</host> <port>PORT</port> <scheme>SCHEMA</scheme> <connectionTimeout>1000</connectionTimeout> <socketTimeout>1000</socketTimeout> <signer>SIGNER</signer> <serviceName>SEVICENAME</serviceName> <region>REGION</region> <username>USERNAME</username> <password>PASSWORD</password> </elasticsearch> <elasticsearch alias="ALIAS_2" enabled="false" truncate="false"> <host>HOST</host> <port>PORT</port> <scheme>SCHEMA</scheme> <connectionTimeout>10000</connectionTimeout> <socketTimeout>10000</socketTimeout> <signer>SIGNER</signer> <serviceName>SEVICENAME</serviceName> <region>REGION</region> <username>USERNAME</username> <password>PASSWORD</password> </elasticsearch> </elasticsearchIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


kafka

<kafkaIntegration> - is a command for Kafka integration.

<kafkaIntegration> <kafka alias="ALIAS_1" enabled="false" truncate="true"> <bootstrapAddress>HOST:PORT</bootstrapAddress> <autoOffsetReset>autoOffsetReset</autoOffsetReset> <maxPollRecords>1</maxPollRecords> <maxPollIntervalMs>1000</maxPollIntervalMs> <clientId>CLIENTID</clientId> <groupId>GROUPID</groupId> </kafka> <kafka alias="ALIAS_2" enabled="true" truncate="false"> <bootstrapAddress>HOST:PORT</bootstrapAddress> <autoOffsetReset>autoOffsetReset</autoOffsetReset> <maxPollRecords>4</maxPollRecords> <maxPollIntervalMs>1000</maxPollIntervalMs> <clientId>CLIENTID</clientId> <groupId>GROUPID</groupId> </kafka> </kafkaIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


mongo

<mongoIntegration> - is a command for MongoDB integration.

<mongoIntegration> <mongo alias="ALIAS_1" enabled="true" truncate="true"> <authenticationDatabase>authenticationDatabase</authenticationDatabase> <username>USERNAME</username> <password>PASSWORD</password> <host>HOST</host> <port>PORT</port> </mongo> <mongo alias="ALIAS_2" enabled="false" truncate="false"> <authenticationDatabase>authenticationDatabase</authenticationDatabase> <username>USERNAME</username> <password>PASSWORD</password> <host>HOST</host> <port>PORT</port> </mongo> </mongoIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


mysql

<mysqlIntegration> - is a command for MySQL integration.

<mysqlIntegration> <mysql alias="ALIAS" enabled="true" truncate="true"> <jdbcDriver>com.mysql.cj.jdbc.Driver</jdbcDriver> <username>USERNAME</username> <password>PASSWORD</password> <connectionUrl>jdbc:mysql://</connectionUrl> <schema>SCHEMA</schema> <hikari> <connectionTimeout>45000</connectionTimeout> <idleTimeout>60000</idleTimeout> <maxLifetime>180000</maxLifetime> <maximumPoolSize>50</maximumPoolSize> <minimumIdle>5</minimumIdle> <connectionInitSql>CONNECTION INIT SQL</connectionInitSql> <connectionTestQuery>CONNECTION TEST QUERY</connectionTestQuery> <poolName>POOL_NAME</poolName> <autoCommit>true</autoCommit> </hikari> </mysql> </mysqlIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


oracle

<oracleIntegration> - is a command for Oracle integration.

<oracleIntegration> <oracle alias="ALIAS" enabled="true" truncate="true"> <jdbcDriver>oracle.jdbc.OracleDriver</jdbcDriver> <username>USERNAME</username> <password>PASSWORD</password> <connectionUrl>jdbc:oracle:thin:@</connectionUrl> <schema>SCHEMA</schema> <hikari> <connectionTimeout>45000</connectionTimeout> <idleTimeout>60000</idleTimeout> <maxLifetime>180000</maxLifetime> <maximumPoolSize>50</maximumPoolSize> <minimumIdle>5</minimumIdle> <connectionInitSql>CONNECTION INIT SQL</connectionInitSql> <connectionTestQuery>CONNECTION TEST QUERY</connectionTestQuery> <poolName>POOL_NAME</poolName> <autoCommit>true</autoCommit> </hikari> </oracle> </oracleIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


postgres

<postgresIntegration> - is a command for Postgres integration.

<postgresIntegration> <postgres alias="ALIAS" enabled="true" truncate="true"> <jdbcDriver>org.postgresql.Driver</jdbcDriver> <username>USERNAME</username> <password>PASSWORD</password> <connectionUrl>jdbc:postgresql://</connectionUrl> <schema>SCHEMA</schema> <hikari> <connectionTimeout>45000</connectionTimeout> <idleTimeout>60000</idleTimeout> <maxLifetime>180000</maxLifetime> <maximumPoolSize>50</maximumPoolSize> <minimumIdle>5</minimumIdle> <connectionInitSql>CONNECTION INIT SQL</connectionInitSql> <connectionTestQuery>CONNECTION TEST QUERY</connectionTestQuery> <poolName>POOL_NAME</poolName> <autoCommit>true</autoCommit> </hikari> </postgres> </postgresIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


rabbitmq

<rabbitmqIntegration> - is a command for RabbitMQ integration.

<rabbitmqIntegration> <rabbitmq alias="ALIAS" enabled="true" truncate="true"> <host>HOST</host> <port>PORT</port> <username>USERNAME</username> <password>PASSWORD</password> <apiPort>APIPORT</apiPort> <virtualHost>/</virtualHost> <enabledMetrics>true</enabledMetrics> </rabbitmq> </rabbitmqIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


redis

<redisIntegration> - is a command for Redis integration.

<redisIntegration> <redis alias="ALIAS_1" enabled="true" truncate="true"> <host>HOST</host> <port>PORT</port> </redis> <redis alias="ALIAS_2" enabled="false"> <host>HOST</host> <port>PORT</port> </redis> </redisIntegration>

Contains attributes:

alias - uniquealias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


s3

<s3Integration> - is a command for S3 integration.

<s3Integration> <s3 alias="ALIAS_1" enabled="false" truncate="true"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> </s3> <s3 alias="ALIAS_2" enabled="false" truncate="false"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> </s3> </s3Integration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


sendgrid

<sendgridIntegration> - is a command for SendGrid integration.

<sendgridIntegration> <sendgrid alias="ALIAS" enabled="true"> <apiKey>APIKEY</apiKey> </sendgrid> </sendgridIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios


ses

<sesIntegration> - is a command for SES integration.

<sesIntegration> <ses alias="ALIAS" enabled="true"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> </ses> </sesIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios


sqs

<sqsIntegration> - is a command for SQS integration.

<sqsIntegration> <sqs alias="ALIAS" enabled="false" truncate="true"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> </sqs> </sqsIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

truncate="true"- when selected, data will be cleared before each test run

truncate="false" - when selected, data will not be cleared before each test run (default value)


graphql

<graphqlIntegration> - is a command for GrapghQL integration.

<graphqlIntegration> <api alias="ALIAS_1" url="http://URL" enabled="true"/> <api alias="ALIAS_2" url="https://URL" enabled="true"/> <api alias="ALIAS_3" url="https://URL" enabled="true"/> </graphqlIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios

url - URL for GraphQL API


lambda

<lambdaIntegration> - is a command for Lambda integration.

<lambdaIntegration> <lambda alias="ALIAS" enabled="true"> <region>REGION</region> <endpoint>http://URL</endpoint> <accessKeyId>ACCESS_KEY</accessKeyId> <secretAccessKey>SECRET_KEY</secretAccessKey> </lambda> </lambdaIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios


smtp

<smtpIntegration> - is a command for SMTP integration.

<smtpIntegration> <smtp alias="ALIAS" enabled="false"> <host>HOST</host> <port>PORT</port> <username>USERNAME</username> <password>PASSWORD</password> <smtpAuth>true</smtpAuth> <smtpStarttlsEnable>true</smtpStarttlsEnable> </smtp> </smtpIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios


twilio

<twilioIntegration> - is a command for Twilio integration.

<twilioIntegration> <twilio alias="ALIAS" enabled="false"> <accountSid>accountSid</accountSid> <authToken>authToken</authToken> <twilioNumber>+NUMBER</twilioNumber> </twilio> </twilioIntegration>

Contains attributes:

alias - unique alias, that you can come up with and use in your test scenarios



On This Page
integration.xml