A Drone plugin that performs XMPP interoperability tests on an XMPP domain.
This plugin can be used in several different CI environments, including:
Note that most CI environments have a distinct way to configure this plugin.
For more information, please visit our project website at https://xmpp-interop-testing.github.io/
The plugin can be configured using the following settings:
host: IP address or DNS name of the XMPP service to run the tests on. Default value:127.0.0.1domain: the XMPP domain name of server under test. Default value:example.orgtimeout: the amount of milliseconds after which an XMPP action (typically an IQ request) is considered timed out. Default value:5000(five seconds)adminAccountUsername: (optional) The account name of a pre-existing user that is allowed to create other users, per XEP-0133. See: "Provisioning Test Accounts"adminAccountPassword: (optional) The password of the admin account.accountOneUsername: (optional) The first account name of a set of three accounts used for testing. See: "Provisioning Test Accounts"accountOnePassword: (optional) The password of the accountOneUsername account.accountTwoUsername: (optional) The second account name of a set of three accounts used for testing. See: "Provisioning Test Accounts"accountTwoPassword: (optional) The password of the accountTwoUsername accountaccountThreeUsername: (optional) The third account name of a set of three accounts used for testing. See: "Provisioning Test Accounts"accountThreePassword: (optional) The password of the accountThreeUsername account.disabledTests: (optional) A comma-separated list of tests that are to be skipped. For example:EntityCapsTest,SoftwareInfoIntegrationTestdisabledSpecifications: (optional) A comma-separated list of specifications (not case-sensitive) that are to be skipped. For example:XEP-0045,XEP-0060enabledTests: (optional) A comma-separated list of tests that are the only ones to be run. For example:EntityCapsTest,SoftwareInfoIntegrationTestenabledSpecifications: (optional) A comma-separated list of specifications (not case-sensitive) that are the only ones to be run. For example:XEP-0045,XEP-0060failOnImpossibleTest: (optional) If set to 'true', fails the test run if any configured tests were impossible to execute. (default: 'false')logDir: (optional) The directory in which the test output and logs are to be stored. This directory will be created, if it does not already exist. Default value:./output
To be able to run the tests, the server that is being tested needs to be provisioned with test accounts. Three different mechanisms can be used for this:
- Admin Account - By configuring the username and password of a pre-existing administrative user, using the
adminAccountUsernameandadminAccountPasswordconfiguration options, three test accounts will be created using XEP-0133: Service Administration functionality. - Explicit Test Accounts - You can configure three pre-existing accounts that will be used for testing, using the
accountOneUsername,accountOnePassword,accountTwoUsername,accountTwoPassword,accountThreeUsernameandaccountThreePasswordconfiguration options. - In-Band Registration - If no admin account and no explicit test accounts are provided, in-band registration (XEP-0077) will be used to provision accounts.
- name: runtests
image: ghcr.io/xmpp-interop-testing/drone-xmpp-test:latest
settings:
host: xmppserver
domain: shakespeare.lit
adminAccountUsername: admin
adminAccountPassword: admin
enabledSpecifications: XEP-0115,XEP-0199,XEP-0352- step:
type: Plugin
name: Run XMPP Interop Framework tests against XMPP server
identifier: Run_Tests_against_XMPP_server
description: Executes the Drone Plugin against the XMPP server that has been created earlier in this Pipeline
spec:
image: ghcr.io/xmpp-interop-testing/drone-xmpp-test:latest
reports:
type: JUnit
spec:
paths:
- "**/*.xml"
settings:
host: xmppserver
domain: shakespeare.lit
adminAccountUsername: admin
adminAccountPassword: admin
enabledSpecifications: XEP-0115,XEP-0199,XEP-0352- name: runtests
image: ghcr.io/xmpp-interop-testing/drone-xmpp-test:latest
settings:
host: xmppserver
domain: shakespeare.lit
adminAccountUsername: admin
adminAccountPassword: admin
enabledSpecifications: XEP-0115,XEP-0199,XEP-0352It is expected that this plugin is used in a continuous integration flow that creates a new build of the XMPP server that is to be the subject of the tests.
Very generically, the xmpp-interop-tests-drone-plugin is expected to be part of such a flow in this manner:
- Compile and build server software
- Start server
- Invoke xmpp-interop-tests-drone-plugin
The way how that's done can differ per CI environment that uses this plugin. Please find more detailed examples in the documentation page that's provided on our website: