Автоматический тест клиент-серверного приложения - PullRequest
2 голосов
/ 21 июля 2010

Как гласит заголовок, как бы вы протестировали клиент-серверное приложение, написанное на C / C ++, которое общается по протоколу по сети?Я немного запутался в том, как это сделать.Я думал о том, чтобы насмехаться, но я никогда не пробовал насмехаться, поэтому я не знаю, является ли это лучшим способом.Как мне это сделать?Я написал много модульных тестов, но никогда не пытался тестировать то, что взаимодействует по сети.

Ответы [ 3 ]

0 голосов
/ 21 июля 2010

Как правило, вы хотите использовать макет для проверки того, что каждая сторона реагирует, как требуется, на сообщения другой стороны (например, когда клиент получает ответ от сервера, что он обрабатывает этот ответ правильно).

Чтобы проверить работоспособность самой сети, вы можете протестировать обе программы на одной и той же машине, а также одну (или обе) на виртуальной машине.Если у вас есть два сетевых адаптера, вы можете даже выделить каждый из них для виртуальной машины, чтобы сетевой трафик фактически выходил один, на коммутатор / маршрутизатор и возвращался в другой (особенно полезно, когда / если вы хотите захватывать и проверять пакеты).

0 голосов
/ 21 июля 2010

У меня есть некоторый клиент / серверный код, который я тестирую модулем через адрес обратной связи. Я использую некоторые макеты, когда мне нужно проверить условия ошибки. Итак, я тестирую с реальным кодом, когда могу, и проверяю, когда мне нужно вызвать очень специфические условия.

0 голосов
/ 21 июля 2010

Я использую шаблон команд в драйвере модульного теста (клиент) для отправки тестовых команд на сервер.Преимущество этого заключается в том, что тест кодируется в одном месте.

Пример для проверки тайм-аута запроса:

Клиент отправляет команду ожидания серверу, а затем запрос.Время ожидания запроса истекло, и контрольный пример пройден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...