Java 使用多个客户端实例自动化XMPP服务器测试
我正在为XMPP服务器开发一个测试套件。目前,我已经实现了一个客户端,它能够连接、创建帐户、发送从XML文件中获取的节、接收回复、将其存储在另一个文件中并将其与预期输出进行比较。我可以创建多个客户端,但我正在寻找并发操作 如何让多个客户机相互通信?我的愿景-将客户端放在单独的线程中,并提供诸如“等待答复”之类的命令Java 使用多个客户端实例自动化XMPP服务器测试,java,xmpp,functional-testing,smack,Java,Xmpp,Functional Testing,Smack,我正在为XMPP服务器开发一个测试套件。目前,我已经实现了一个客户端,它能够连接、创建帐户、发送从XML文件中获取的节、接收回复、将其存储在另一个文件中并将其与预期输出进行比较。我可以创建多个客户端,但我正在寻找并发操作 如何让多个客户机相互通信?我的愿景-将客户端放在单独的线程中,并提供诸如“等待答复”之类的命令 非常感谢您的建议……所有这些都是在同一个测试用例中在同一个线程上完成的 以用户1身份创建传出连接 以用户2身份创建传入连接 为测试节注册PacketListener,该测试节在传入
非常感谢您的建议……所有这些都是在同一个测试用例中在同一个线程上完成的
- 以用户1身份创建传出连接
- 以用户2身份创建传入连接
- 为测试节注册PacketListener,该测试节在传入连接时写入BlockingQueue
- 在传出连接上写一节
- 对队列和测试结果调用take()
注意:PacketListener将在Smack内部生成的单独线程上被调用,这就是为什么您需要BlockingQueue来协调发送和回复。所有这些都在单个测试用例中的同一线程上完成
- 以用户1身份创建传出连接
- 以用户2身份创建传入连接
- 为测试节注册PacketListener,该测试节在传入连接时写入BlockingQueue
- 在传出连接上写一节
- 对队列和测试结果调用take()
注意:PacketListener将在Smack内部生成的单独线程上被调用,这就是为什么你需要BuffGeWin队列来协调发送和回复的原因。 + 1还考虑了几个XMPPn连接实例,每个实例都有自己的PayTeListEnter和BuffgQueW队列来测试消息路由或多用户聊天。+ 1还考虑有几个XMPPn连接实例,每个实例都有自己的PayTeListEnter和阻塞队列。测试邮件路由或多用户聊天。