Как выполнить тестирование веб-сервисов и WCF? - PullRequest
1 голос
/ 19 сентября 2009

Скажем, я создал веб-сервис и сервис WCF.

Как выполняются различные виды тестирования (то есть модульное тестирование, SIT и т. Д.) Для веб-служб и службы WCF.

Нужно ли явно создавать пример проекта для тестирования службы, передавая входные параметры и анализируя выходные параметры, или есть ли какие-либо инструменты, с помощью которых мы можем выполнять все виды тестирования.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2009

Так как службы WCF являются просто классами, они, как правило, могут тестироваться модульно, как и любой другой класс, при условии, что вы не используете какие-либо специфичные для WCF функции в своем классе обслуживания . Вы можете начать с Марк Блога Симанна в блоге об этом.

Для более полного комплексного тестирования стиля необходимо учитывать множество факторов:

  • Развертывание / топология: Служба размещена на удаленной внешней конечной точке вне тестового клиента? Или тестовой среде необходимо установить и разместить службу локально? Ответы на эти и связанные вопросы определят, как спроектировать часть настройки тестирования.
  • Типы клиентов: Общаются ли клиенты вашей службы по определенным транспортам (HTTP, TCP и т. Д.)? Требуется ли им безопасность на уровне сообщений или транспорт? Используют ли они транзакции, асинхронную связь, сообщения большого и малого размера и т. Д.? Ответы на эти вопросы будут определять, насколько большой может быть ваша возможная «матрица испытаний».
  • Конфигурация сервера: Поддерживает ли ваша служба несколько платформ или типов хостинга? Есть ли у вас какие-либо "ручки" на вашем сервисе, которые могут быть изменены в производстве? В идеале они будут проверены, чтобы вы знали, что у вас нет скрытых ошибок.
  • Подтверждение: Откуда вы знаете, что ваш сервис поступил правильно? Нужно ли проверять журналы на стороне сервера на наличие ошибок / предупреждений? Вы обеспокоены производительностью или характеристиками памяти для различных операций (если это так, возможно, вы хотите показания счетчика производительности)? Сколько проверки можно сделать исключительно с точки зрения клиента?

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

Для решения другой части вопроса: есть некоторые библиотеки, которые могут автоматически генерировать простые тесты со значениями ввода / вывода. Исследовательский проект Microsoft "Pex" является одним из таких примеров.

2 голосов
/ 19 сентября 2009

Как вы сказали, существуют различные виды тестирования.

Мне нравится юнит-тестирование. Для модульного тестирования вашего веб-сервиса вы должны создать отдельный проект и создать тестовый класс, содержащий несколько методов тестирования. В каждом из этих методов вы проверяете свою DLL (НЕ веб-службу, размещенную на IIS / чем-либо еще) и проверяете, что она ведет себя так, как ожидалось.

Вы также должны убедиться, что DLL не связывается ни с чем снаружи во время UNIT-теста (это означает: файловая система, база данных, другие веб-сервисы, все, что вы не контролируете). Причина этого в том, что вы хотите протестировать ВАШ код, а не возможные проблемы с инфраструктурой, такие как сеть, авторизация или состояние базы данных ...

В VS есть тестеры, или вы можете скачать testdriven.Net или reharper.

См .: http://en.wikipedia.org/wiki/Unit_testing

Тогда есть и интеграционные тесты. Они будут в основном тестировать веб-сервис, когда он размещен в IIS, и убедиться, что настройка в целом работает без сбоев. Интеграционный тест дополняет юнит-тест, но не должен быть единственным тестом. Я бы зашел так далеко и сказал: «Интеграционные тесты - это поздние тесты», а исправление ошибок, обнаруженных во время интеграции, обычно стоит дороже, чем исправление обнаруженных во время модульных тестов.

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