Тестирование WebServices
От: Ellin Россия www.rsdn.ru
Дата: 24.03.10 10:03
Оценка:
Как вы тестируете WebServices? И тестируете ли вообще. Хотя пожалуй резннно спросить как тестировали... ибо WCF... но у нас пока все по старинке, поэтому вопрос.
Re: Тестирование WebServices
От: Аноним  
Дата: 24.03.10 12:20
Оценка: +1
Здравствуйте, Ellin, Вы писали:

E>Как вы тестируете WebServices? И тестируете ли вообще. Хотя пожалуй резннно спросить как тестировали... ибо WCF... но у нас пока все по старинке, поэтому вопрос.


Я думаю что ВебСервисы это механизм(обвертка) для вызова метода бизнес логики, соотв. тестировать нужно ее, пример используя тот же NUnit или даже просто вызывать методы БЛ из своего консольного приложения — тестера.
Сами же вебСервисы нужно тестировать на определенные ситуации, например если вы используете какие то переменные внутри сессии, или свои заголовки для авторизации итд...
Слудет проверить длинну входящего/исхлдящего сообшения, что бы ваш лимит установленный на вебСервере соотв. вашей конфигурации, вообщем поле для работы большое.
Re: Тестирование WebServices
От: Nuseraro Россия  
Дата: 24.03.10 13:09
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Как вы тестируете WebServices? И тестируете ли вообще. Хотя пожалуй резннно спросить как тестировали... ибо WCF... но у нас пока все по старинке, поэтому вопрос.


Для ручного тестирования я люблю сгенерить форму в Infopath(входит в мс офис) от веб-сервиса — очень наглядно. А так да, надо тестить модули, а не сам сервис.
Homo Guglens
Re[2]: Тестирование WebServices
От: Ellin Россия www.rsdn.ru
Дата: 24.03.10 13:21
Оценка:
Я именно так сейчас и поступаю. Однако. Во-первых в тестовом проекте от MS есть возможность настроить тест на web method. Правда у меня не получилось... и никто на форуме мне не подсказал как... до сих пор кстати не получилось....
Во-вторых у меня есть достаточное колличество web methods в которых код написан непосредственно в них. И криво написан. Так что я хотел бы все это дело отрефакторить (уж больно жуткая в них мешанина какая-то). Но тут то мне и нужны тесты.
Re[3]: Тестирование WebServices
От: Nuseraro Россия  
Дата: 24.03.10 13:24
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Я именно так сейчас и поступаю. Однако. Во-первых в тестовом проекте от MS есть возможность настроить тест на web method. Правда у меня не получилось... и никто на форуме мне не подсказал как... до сих пор кстати не получилось....

E>Во-вторых у меня есть достаточное колличество web methods в которых код написан непосредственно в них. И криво написан. Так что я хотел бы все это дело отрефакторить (уж больно жуткая в них мешанина какая-то). Но тут то мне и нужны тесты.

А что мешает тестировать веб-сервис как просто класс, просто вызвав его конструктор и методы?
Homo Guglens
Re[4]: Тестирование WebServices
От: sto Украина http://overstore.codeplex.com
Дата: 24.03.10 17:37
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>Здравствуйте, Ellin, Вы писали:


E>>Я именно так сейчас и поступаю. Однако. Во-первых в тестовом проекте от MS есть возможность настроить тест на web method. Правда у меня не получилось... и никто на форуме мне не подсказал как... до сих пор кстати не получилось....

E>>Во-вторых у меня есть достаточное колличество web methods в которых код написан непосредственно в них. И криво написан. Так что я хотел бы все это дело отрефакторить (уж больно жуткая в них мешанина какая-то). Но тут то мне и нужны тесты.

N>А что мешает тестировать веб-сервис как просто класс, просто вызвав его конструктор и методы?


Не подойдет, если в веб-сервисе используется HttpContext.Current.
There is no such thing as the perfect design.
Re[5]: Тестирование WebServices
От: Nuseraro Россия  
Дата: 24.03.10 20:20
Оценка:
Здравствуйте, sto, Вы писали:

sto>Здравствуйте, Nuseraro, Вы писали:


N>>Здравствуйте, Ellin, Вы писали:


E>>>Я именно так сейчас и поступаю. Однако. Во-первых в тестовом проекте от MS есть возможность настроить тест на web method. Правда у меня не получилось... и никто на форуме мне не подсказал как... до сих пор кстати не получилось....

E>>>Во-вторых у меня есть достаточное колличество web methods в которых код написан непосредственно в них. И криво написан. Так что я хотел бы все это дело отрефакторить (уж больно жуткая в них мешанина какая-то). Но тут то мне и нужны тесты.

N>>А что мешает тестировать веб-сервис как просто класс, просто вызвав его конструктор и методы?


sto>Не подойдет, если в веб-сервисе используется HttpContext.Current.


Ну вот классы по работе с контекстом и конфигом как раз первые кандидаты на выделение из сервиса
Homo Guglens
Re: Тестирование WebServices
От: anabis  
Дата: 24.03.10 20:42
Оценка: +1
Здравствуйте, Ellin, Вы писали:

E>Как вы тестируете WebServices? И тестируете ли вообще. Хотя пожалуй резннно спросить как тестировали... ибо WCF... но у нас пока все по старинке, поэтому вопрос.


Сам подход неверный. На WebService надо смотреть, как на UI или presentation layer. Это тот слой, который отображает информацию по определённым параметрам ввода. Мне доводилось рефакторить подобные системы и раньше, где всё было вперемешку. Начните с того, что весь код из [WebMethod] перенесите в новую Assembly и назовите её как Project.Business (про это писалось уже тут). В WebService должно будет остаться что-то вроде:

HelloWorldService _service;

[WebMethod]
public void HelloWorld(String from)
{
   _service.SayHelloWorld(from);  
}


Это автоматически даст вам возможность писать Unit Test'ы и вызывать уже без обёртки.

[Test]
public void TestHelloWorld(String from)
{
   Assert.AssertEqual("Hello World From", _service.SayHelloWorld(from));
}
--
iЧаВО
Re[2]: Тестирование WebServices
От: Ellin Россия www.rsdn.ru
Дата: 25.03.10 08:37
Оценка:
Ну я так и живу сейчас. Другой вопрос что не всегда поведение WebMetods похоже на поведение обычных методов. Ну допустим если бы вы попытались писать в файл. на сервисах это завалилось. а так нет.
Потом все есть сторонние сервеса к которым у меня нет исходников... хотелось бы как то следить за их стабильностью.
Одним словом какой-либо инструмент тестирования именно сервисов не помешал бы.
Re[3]: Тестирование WebServices
От: Аноним  
Дата: 25.03.10 09:52
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Ну я так и живу сейчас. Другой вопрос что не всегда поведение WebMetods похоже на поведение обычных методов. Ну допустим если бы вы попытались писать в файл. на сервисах это завалилось. а так нет.

E>Потом все есть сторонние сервеса к которым у меня нет исходников... хотелось бы как то следить за их стабильностью.
E>Одним словом какой-либо инструмент тестирования именно сервисов не помешал бы.

Есть такое понятие как интегрированное и unit тестирование. Вы пытаетесь их перемешать. Если WebMethod использует сторонние webmethod'ы они должны быть выделены, и оттестированы отдельно. Это всё — вопрос абстракции, как вам и написали постом выше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.