docs/index.md

Thu, 23 Mar 2023 18:28:20 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 18:28:20 +0000
changeset 181
3a9b9c98304a
parent 166
5d39804f108b
permissions
-rw-r--r--

Add support for component connections

# Scansion - Automated XMPP Client

Scansion is an automated scriptable XMPP client, useful for testing and
automating tasks. It is primarily designed to be a handy tool in an XMPP
developer's toolbox, however its scripting language is designed to be easy
to read and write by non-programmers who understand basic XML and XMPP.

An example Scansion script:

```xml
# Pubsub: Test node creation

[Client] Romeo
        jid: admin@localhost
        password: password

[Client] Juliet
        jid: juliet@localhost
        password: password

---------

Romeo connects

# Create the node
Romeo sends:
	<iq type='set' to='pubsub.localhost' id='create-node'>
		<pubsub xmlns='http://jabber.org/protocol/pubsub'>
			<create node='princely_musings'/>
		</pubsub>
	</iq>

# Server acknowledges successful creation
Romeo receives:
	<iq type='result' id='create-node'/>

# Juliet sees the node appear in the node list

Juliet connects

Juliet sends:
	<iq type='get' id='list-nodes' to='pubsub.localhost'>
		<query xmlns='http://jabber.org/protocol/disco#items'/>
	</iq>

Juliet receives:
	<iq type='result' id='list-nodes' from='pubsub.localhost'>
		<query xmlns='http://jabber.org/protocol/disco#items'>
			<item xmlns='http://jabber.org/protocol/disco#items' jid='pubsub.localhost' node='princely_musings'/>
		</query>
	</iq>

# Yay!

```

This example demonstrates how Scansion:

- Supports multiple characters in a script
- Takes care of establishing a connection and authentication
- Automatically verifies responses to stanzas

This final point is what makes Scansion a great tool for testing - it
has a flexible matching system that allows you to ensure a certain stanza
receives the response you expect.

mercurial