How should I test clustering in Openfire Enterprise 3.4.0?

Version 11

    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

                   2. 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

                   2. 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

                   2. 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

                   2.

     

                   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