How should I test clustering in Openfire Enterprise 3.4.0?

Prerequisites

You need to have Openfire Enterprise 3.4.0 beta installed with clustering enabled. You will need to have at least 2 cluster nodes to run the test cases. Check out the document How to enable clustering in Openfire Enterprise 3.4.0 if you need to install Openfire.

Type of tests available

The beta process consists of two types of tests. On one hand we have functional test cases and on the other hand we have load tests. Functional test cases will help us ensure that the server is doing what it should under different circumstances. Load tests, as the name implies, will put a lot of load on the server so we can observe and finetune, if necessary, the server based on the expected load. If you know the load you are going to have on your servers then you will be able to customize the tests to simulate the load you will have and see beforehand how the server will behave.

Where can I get the list of functional test cases to run?

In the last section or in following Excel document you will find the list of functional test cases to run. Complete the Excel document with the result of the executions. Finally, upload the completed Excel document into a new document named Test Results - [company name or person name] and tag it with “3.4.0_beta_feedback”. You can update this document as you run more test cases. Remember that creating a document with your execution results is highly important so we can verify that you did test Openfire and thus be allowed to access the promotion benefits.

Where can I get the list of load tests to run?

It’s easier to generate load on the server by using automated scripts. Of course you can organize and manage a big number of users and ask them to chat and do other things but that is more complicated. We will provide you with some automated scripts that you can customize to simulate your expected load.

Use the following Excel document to complete test results. Finally, upload the completed Excel document into a new document named Load Test Results - [company name or person name] and tag it with “3.4.0_beta_feedback”. You can update this document as you run more load test. Remember that creating a document with your execution results is highly important so we can verify that you did test Openfire and thus be allowed to access the promotion benefits.

How should I report an error?

Errors should be reported in the discussion forums. Remember to provide information about how to reproduce it and include the server logs.

Test Cases

ID

Summary

Detailed Description

OF1

Initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user

Start Node-2 with clustering working

Assertions

Check that Node-2 is showing the user session in user session summary

OF2

Server 2 server initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user, send a message to

a user in a remote server

Start Node-2 with clustering working

Assertions

Check that Node-2 is showing the outgoing server session in server session

summary

OF3

Clustering disabled using an embedded database

Steps:

Install Openfire using an embedded database

Install the enterprise plugin with a license

Assertions

Cannot enable clustering

OF4

Presences in different cluster nodes

Steps

Start Node-1 with clustering working, log in with a user1 that is

subscribed to user2

Start Node-2 with clustering working, log in with user2

Assertions

Check that both users have their presences correct

OF5

Openfire conversion from opensource to cluster mode

Steps

Start Node-1 with clustering working, log in with a user1 that is

subscribed to user2

Start Node-2 without clustering working, log in with user2 and then enable

clustering

Assertions

Check that both users have their presences correct

OF6

Resources initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user1 using resource

X

Start Node-2 without clustering working, log in with user1 using resource Y

and then enable clustering

Assertions

Check that both clients can see the other resource (use Exodus for the test

and remember to set another resource)

OF7

Unique login in initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user1 using resource

X

Start Node-2 without clustering working, log in with user1 using resource X

and then enable clustering

Assertions

One of the clients should be closed since both have the same full JID.

OF8

Offline messages in initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user1, send a message

to user2

Start Node-2 without clustering working, log in with user2 and then enable

clustering

Assertions

Check that user2 received the offfline message

OF9

Subscriptions in initial synchronization of cluster nodes

Steps

Start Node-1 with clustering working, log in with a user1, subscribe to

user2

Start Node-2 without clustering working, log in with user2 and then enable

clustering

Assertions

Check that user2 received the presence subscription and that presences are

correct after subscription was approved (also test with rejected)

OF10

Plugin synchronization and usage in different cluster nodes

Steps

Start Node-1 with clustering working, connect an internal component (e.g.

broadcast plugin)

Start Node-2 with clustering working, log in user2

Assertions

Check that Node-2 has the broadcast plugin in the disco#items and that

user2 can use the broadcast plugin

OF11

External Component Sharing in different cluster nodes

Steps

Start Node-1 with clustering working, connect an external component (e.g.

weather component or python gateways)

Start Node-2 with clustering working, log in user2

Assertions

Check that Node-2 has the component session in component session summary

page, the disco#items contains the new service and that user2 can use the

service

OF12

User Logout in cluster

Steps

Node-1 and Node-2 are in the cluster. User1 connected to Node-1 and User2

connected to Node-2. Both users can see each other in their rosters as

available. User2 logs out

Assertions

Check that presences are correctly sent when changed in one client or the

other.

Check that User1 see User2 offline upon logout

OF13

Server shutdown in cluster

Steps

Node-1 and Node-2 are in the cluster. User1 connected to Node-1 and User2

connected to Node-2. Both users can see each other in their rosters as

available. Node-2 shutdown

Assertions

Check that presences are correctly sent when changed in one client or the

other.

Check that User1 see User2 offline

OF14

Conference room in cluster

Steps

Node-1 and Node-2 are in the cluster. User1 connected to Node-1 and User2

connected to Node-2. User1 joins room. User2 joins room. Users send messages

to room

Assertions

Check that users can receive messages from the other user

Check that if a user leaves the room the other user gets the notification

OF15

Cluster node shutdown in a conference room

Steps

Node-1 and Node-2 are in the cluster. User1 connected to Node-1 and User2

connected to Node-2. User1 joins room. User2 joins room. Node-1 gets

shutdown.

Assertions

Check that user2 gets the notification message that user1 left the room

OF16

Cluster lost in a conference room

Steps

Node-1 and Node-2 are in the cluster. User1 connected to Node-1 and User2

connected to Node-2. User1 joins room. User2 joins room. Connectivity between

nodes is lost and then recovered

Assertions

Check that user2 gets the notification message that user1 left the

room

Check that user1 gets the notification message that user2 left the

room

Check that both users get that the other user has joined the room

OF17

Enable clustering without enterprise plugin

Steps:

Openfire Opensource installation without enterprise plugin

From the Admin Console, Server -> Clustering and try to enable

clustering

Assertions

Suggestion to install enterprise plugin

OF18

Enable clustering with enterprise plugin but without license

Steps:

Install Openfire Opensource without enterprise plugin

Install Enterprise Plugin

Attempt to enable clustering

Assertions

Suggestion to install the license

OF19

Connect N nodes to the cluster

Steps:

Install several Openfire connected to the same database with enterprise

plugin and a proper license

In the admin console Server -> Clustering, enable Cluster on each

node

Assertions

Every node is shown in Cluster Overview.

OF20

Clustering Disconnection

Steps:

Node-1 and Node-2 are in the cluster. User1 is connected to Node-1 and

User2 is connected to Node-2. Both users can see each other in their rosters

as available. Clustering is disabled from Node-2

Assertions

Check that User1 see User2 offline.

Check that User2 is still connected and can see other users connected to

Node-2 and interact with them

OF21

Offline messages in clustering disconnection

Steps:

Node-1 and Node-2 are in the cluster. User1 is connected to Node-1 and

User2 is connected to Node-2. Both users can see each other in their rosters

as available. Clustering is disabled from Node-2. User1 sends a message to

User2. Install enterprise plugin

Assertions

Check that User2 gets the offline message from User1

OF22

Clustering Disconnection in group chats

Steps:

Node-1 and Node-2 are in the cluster. User1 is connected to Node-1 and

User2 is connected to Node-2. User1 joins the room. User2 joins the room.

Clustering is disabled from Node-1.

Assertions

Check that user2 gets the notification message that user1 has left the

room

Check that user1 gets the notification message that user2 has left the room

OF23

Clustering Disconnection and Reconnection in room chats

Steps:

Node-1 and Node-2 are in the cluster. User1 is connected to Node-1 and

User2 is connected to Node-2. User1 joins the room. User2 joins the room.

Node-1 is disabled from the clustering and enabled later

Assertions

Check that user2 gets the notification message that user1 has left the

room

Check that user1 gets the notification message that user2 has left the

room

Check that both users get notified

that other has joined the room

OF24

Cluster Routing from S2S communication

Steps:

Node-1 and Node-2 are in the cluster, user 1 in node 1 and user 2 in node

  1. From a remote server a third user sends a message to either user 1 and

user 2.

Assertions:

Messages are routed to user 1 and user 2

In the Cluster Overview page, the Incoming and Outgoing Servers has been

incremented.

OF25

Group chat with clustering enabled and users from remote server

Steps:

Node-1 and Node-2 are in the cluster, user 1 in node 1 and user 2 in node

2, user 3 logged in an external server.

Join a group chat and talk,

Send private chats between user 1 and user 2

Send private chats between user 2 and user 3

Send private chats between user 2 and user 3

Leave user 2, then user 3.

Assertions:

Group Chat established

Messages are displayed

Users are seen

Private chats are shown

Get feedback when a user leaves the group chat

OF26

Presences changes in S2S with clustering

Steps:

Node-1 and Node-2 are in the cluster, user 1 in node 1 and user 2 in node

  1. From a remote server a third user sends a message to either user 1

and user 2.

Assertions:

Messages are routed to user 1 and user 2

OF27

File transfer in S2S and clustering

Steps:

Node-1 and Node-2 are in the cluster, user 1 in node 1 and user 2 in node

  1. From a remote server a third user sends a message to either user 1

and user 2.

Assertions:

Messages are routed to user 1 and user 2

OF28

Node Statistics

Steps:

Node-1 and Node-2 are in the cluster

Increase the memory consumption on a node in User Summary

browse several pages)

Assertions:

Verify the memory statistics are updated.

OF29

Cluster Cache Performance: Vcards

Steps:

Node-1 and Node-2 are in the cluster

Enable database query statistics

Login user 1 in node 1 and user 2 in node 2

Modify a Vcard of the user 1 in one node and get the value from the other

node

Assertions

It shouldn’t access the database to retrieve the new Vcard

User 2 should see the updated Vcard

OF30

Cluster Cache Performance: File Transfer

Steps:

Node-1 and Node-2 are in the cluster

Connect user 1 to node 1 and user 2 to node 2. Perform an inbound file

transfer. Logout user 2 and connect user 2 to node 2.

Perform a file transfer.

Assertions:

The file is transferred properly

OF31

Cluster Cache Performance: File Transfer Cache

Steps:

Node-1 and Node-2 are in the cluster

Enable Inbound File transfer

Connect users to different nodes and perform inbound file transfer.

Assertions:

File transfer is performed in inbound mode

OF32

Cluster Cache Performance: Group properties

Steps:

Node-1 and Node-2 are in the cluster

Create a new shared group in Node 1

Modify the shared group name in Node 1

Create another shared group in Node 1

Remove the shared group in Node 1

Assertions:

Verify in Node 2 that the shared group is created

Verify in Node 2 that the shared group name is updated

Verify in Node 2 that the erased group does no longer exists

OF33

Cluster Cache Performance: Group members

Steps:

Node-1 and Node-2 are in the cluster

Connect user 1 to node 1 and user 2 to node 2.

In Node 1, create a new shared group

In Node 1, add user1 and user 2

In Node 1, remove user2 from the shared group

In Node 1, add user2 to the shared group

Logout user 2

Assertions:

Verify that the users see each other in the shared group

Users should perceive presence changes

User1 should see user 2 disconnection

OF34

Group metadata cache

Steps:

Node-1 and Node-2 are in the cluster

In node 1, create a group and add persons to it.

Assertions

Verify in Node 2 that the user is displayed in the group members

Verify in Node 2 that the user is displayed in Users -> search user

-> click on the user -> properties -> verify that the user has the

created group

OF35

Cluster Cache Performance: Last Activity Cache

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1,

Logout user 1.

Assertions

Verify the user last logout in User Summary from node 2 and node 1.

OF36

Cluster Cache Performance: Offline Message Size

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1,

Send 1kb of offline messages to user 2.

Notice that you cannot send more messages to user 2

Connect user 1 to node 2

Try to send a message to user2

Assertions

Cannot send more messages to user 2.

OF37

Cluster Cache Performance: Offline Presence Cache

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1

Logout with reason: on holidays

Login user 2 to node 2

Assertions:

User 2 see the offline - on holidays status

OF38

Cluster Cache Performance: Privacy Lists

Steps:

Node-1 and Node-2 are in the cluster

           Using PSI (http://www.kismith.co.uk/files/psi/windows/nightlies/) login

user 1 to node 1.

Create privacy list, set them as default, add / restrict permissions to

different users

Assertions:

Login user 1 to node 2 and the privacy restrictions should be the same as

in node 1

OF39

Cluster Cache Performance: Remote Users Existence

Steps:

Node-1 and Node-2 are in the cluster

In Node 1, in the Openfire administration -> Server to Server, add

domains allowed and denied to connect

Assertions

In Node 2, the Server to Server configuration is the same as node 1.

OF40

Cluster Cache Performance: Roster creation

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1, user 2 to node 2

User 1, add a new group with the user 2

User 1 renames the group name

User 1 removes the group

Assertions:

Verify that the rosters are updated and openfire does not retrieve new

information from the database

User 1 connects to node 2 and the group configuration should be the same as

in Node 1.

OF41

Cluster Cache Performance: Roster rename

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1, user 2 to node 2

User 1 renames the group name

Assertions:

Verify that the rosters are updated and openfire does not retrieve new

information from the database

User 1 connects to node 2 and the group configuration should be the same as

in Node 1.

OF42

Cluster Cache Performance: Roster delete

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1, user 2 to node 2

User 1 removes the group

Assertions:

Verify that the rosters are updated and openfire does not retrieve new

information from the database

User 1 connects to node 2 and the group configuration should be the same as

in Node 1.

OF43

Cluster Cache Performance: User registration

Steps:

Node-1 and Node-2 are in the cluster

Create users to node 1

Assertions

Verify that the amount of users in node 2 were increased (Admin Console

-> Users)

OF44

Cluster Cache Performance: User update

Steps:

Node-1 and Node-2 are in the cluster

Update user personal information

Assertions

Verify that the user in the node 2 was updated (Admin Console -> Users

-> Search User)

OF45

Cluster Cache Performance: User deleted

Steps:

Node-1 and Node-2 are in the cluster

Delete a user from the node 1

Assertions

Verify that the amount of users in node 2 were decreased (Admin Console

-> Users)

OF46

Make a jingle call

Steps:

Node-1 and Node-2 are in the cluster

Login user 1 to node 1, user 2 to node 2

Make a Jingle call

Assertions

The communication is established successfully.

OF47

Connection Managers Sessions

Steps:

Make a cluster with 2 nodes and a Connection Manager in each one

Login user 1 to node 1 and user 2 to node 2.

Kill the node 2 connection manager

Assertions:

Offline status of user 2

OF48

Connection manager, change presence

Steps:

Make a cluster with 2 nodes and a Connection Manager in each one

Login user 1 to node 1 and user 2 to node 2.

Change presence to “away”, on the phone and Free to Chat

Assertions:

Presence changes are correctly updated

OF49

Connection mangager, group chat

Steps:

Make a cluster with 2 nodes and a Connection Manager in each one

Login user 1 to node 1 and user 2 to node 2

Create a group chat and user 1 and user 2 join the room.

Assertions:

Users are allowed to enter the chat room and they can exchange messages

OF50

Total Amount of Active Client Sessions

Steps:

In a cluster with 2 nodes, login user 1 to node 1 and user 2 to node

Assertion:

Check in each node that the number of logged users are 2 (Sessions ->

Client Sessions).

Check in the Cluster overview that the number of clients connected was

increased and decreased.

OF51

Secret key cache in S2S dialback

Steps

Set a cluster with 2 nodes

Set the S2S secret key in the node 1

From node 1, establish the S2S connection to the remote server

The remote server dialback with the password to the node 2.

Assertion

The remote server is correctly authenticated

OF52

Connect the cluster with a Load Balancer

Steps:

Configure the apache load balancer to the cluster nodes

Assertions:

Verify that users are logged in different nodes

Verify that the further messages from the same user are received by the

same node

OF53

Reconnection to a temporal group chat

Steps:

Make a cluster with 2 nodes

Login user 1 to node 1 and user 2 to node 2.

User 2 creates a temporal group chat and invites user1 who accepts the

invitation

Restart node 1

User 2 invites user 1 to the chat group and user 1 accepts the

invitation

Assertions:

The group chat is correctly established, user 1 and user 2 see each other

in the room.

OF54

Reconnection to a permanent group chat

Steps:

Make a cluster with 2 nodes

Login user 1 to node 1 and user 2 to node 2.

User 2 creates a temporal group chat and invites user1 who accepts the

invitation

Restart node 1

User 2 invites user 1 to the chat group and user 1 accepts the

invitation

Assertions:

The group chat is correctly established, user 1 and user 2 see each other

in the room.

OF55

Gateway plugin in clustering

Steps:

Make a cluster with 2 nodes

Install the gateway plugin in node 1

Login user 1 to node 1 and user 2 to node 2.

Enable the gateway in user 1 and user 2

Assertions:

Verify that user 1 and user 2 has the gateway functionality available

OF56

Plugins update in clustering

Steps:

Make a cluster with 2 nodes

Go to Plugins -> Available Plugins and Update Now in node 1.

Assertions:

Check plugins and auto-updated time are updated in node 1

Check plugins and auto-updated time are updated in node 2
OF_3.4.0_test_cases.xls (43008 Bytes)