使用多个客户端实例自动化 XMPP 服务器测试

Posted

技术标签:

【中文标题】使用多个客户端实例自动化 XMPP 服务器测试【英文标题】:Automating XMPP server testing with multiple client instances 【发布时间】:2010-06-24 16:58:41 【问题描述】:

我正在开发 XMPP 服务器的测试套件。目前我已经实现了一个客户端,能够连接、创建帐户、发送从 XML 文件中获取的节、接收回复、将其存储在另一个文件中并将其与预期的输出进行比较。我可以创建多个客户端,但我正在寻找并发操作。

如何让多个客户端相互通信?我的愿景 - 将客户端放入单独的线程并提供诸如“等待回复”之类的命令。

感谢任何建议...

【问题讨论】:

【参考方案1】:

所有在单个测试用例中的同一线程上完成。

以用户 1 的身份创建传出连接。 以用户 2 的身份创建传入连接。 为您的测试节注册 PacketListener,该节将在传入连接时写入 BlockingQueue。 在传出连接上写入节。 在队列上调用 take() 并测试结果。

注意:PacketListener 将在由 Smack 内部产生的单独线程上调用,这就是为什么您需要 BlockingQueue 来协调发送和回复。

【讨论】:

+1 还可以考虑使用多个 XMPPConnection 实例,每个实例都有自己的 PacketListener 和 BlockingQueue 来测试消息路由或多用户聊天。

以上是关于使用多个客户端实例自动化 XMPP 服务器测试的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Arduino 的 Arduino / XMPP 客户端进行家庭自动化

请推荐一个具有自动帐户注册功能的好 XMPP 服务器

多个 XMPP 服务器处理上游 GCM 消息

有没有办法实现 XMPP 客户端或接收到的消息,可以接收来自 XMPP 服务器的所有消息?

XMPP协议IM客户端互联详解

保护 XMPP 通信