2010-06-24 2 views
1

Я работаю над набором тестов для сервера XMPP. В настоящее время я реализовал клиент, способный подключиться, создать учетную запись, отправить строфы, взятые из файла XML, получить ответ, сохранить его в другом файле и сравнить с ожидаемым выходом. Я могу создать несколько клиентов, но я ищу параллельную работу.Автоматизация тестирования сервера XMPP с несколькими экземплярами клиента

Как мне заставить несколько клиентов общаться друг с другом? Мое видение - поместить клиентов в отдельные потоки и предоставить команды вроде «wait for reply».

Любые советы ценится ...

ответ

1

Все делается на одном потоке в одном TestCase.

  • Создание исходящего соединения в качестве пользователя 1.
  • Создание входящего соединения, как пользователь 2.
  • Регистрация PacketListener для тестовой строфы, который записывает на BlockingQueue о входящем соединении.
  • Напишите строфу на исходящем соединении.
  • Вызов take() в очередь и результаты теста.

Примечание: PacketListener будет вызван в отдельный поток, созданный внутренне Smack, поэтому для координации отправки и ответа требуется BlockingQueue.

+0

+1 Также рассмотрите несколько экземпляров XMPPConnection каждый со своим собственным PacketListener и BlockingQueue для проверки маршрутизации сообщений или многопользовательских чатов. – mschonaker

Смежные вопросы