Недавно, при написании веб тестов в VSTS, я столкнулся с одним неприятным моментом касающимся обработки ответов очень большого объема. Проблема заключается в том, что по умолчанию Visual Studio, несмотря на то, что получает полный ответ от сервера, сохраняет лишь первые 1,5 Мб этого ответа. В результатах теста это выглядит вот так:
В принципе, в этом нет ничего страшного, если вам не нужно валидировать ответ, в противном же случае не всегда возможно организовать валидацию по такому полуторамегабайтному "огрызку". Меня этот "огрызок" как раз таки и не устраивал. Покопавшись в документации я обнаружил, что все можно исправить при помощи свойства ResponseBodyCaptureLimit, которое и определяет максимальный объем ответа сохраняемого в результатах теста. Но не тут то было. Оказалось, что изменение этого свойства в конструкторе теста, в PreWebTest'е и еще в куче других мест никак не влияет на поведение по умолчанию, т.е. Visual Studio с завидным постоянством продолжает сохранять все те же 1,5 Мб. Осознав, что официальная документация мне больше ничем не поможет я принялся копаться в интернетах и таки нашел способ позволяющий обойти это странное ограничение.
Итак, для того чтобы изменить значение ResponseBodyCaptureLimit нужно написать нехитрый Web Test Plugin. Делается это так:
1. Создаем новый проект
2. Добавляем в него Class Library следующего содержания:
- using Microsoft.VisualStudio.TestTools.WebTesting;
- namespace TestProject1.Tests.Plugins
- {
- public class ResponseBodyLimitFix : WebTestPlugin
- {
- public override void PreWebTest(object sender, PreWebTestEventArgs e)
- {
- //Максимальный размер ответа в байтах
- e.WebTest.ResponseBodyCaptureLimit = 150000000;
- }
- }
- }
3. Добавлем ссылку на проект с плагином в проект с тестами
4. Добавляем плагин к веб тесту
5. Запускаем тест и радуемся
На этом все.
Удачного тестирования! 










- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии и скачивать файлы





Последние комментарии
3 дня 16 часов назад
2 недели 3 дня назад
2 недели 3 дня назад
4 недели 20 часов назад
4 недели 1 день назад
4 недели 4 дня назад
6 недель 20 часов назад
7 недель 3 дня назад
11 недель 5 дней назад
11 недель 5 дней назад