使用多个客户端实例自动化 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 客户端进行家庭自动化