Веб-нагрузочный тест с параметрами маршрута MVC создает множество URL-адресов экземпляров.

У меня есть веб-тест для следующего запроса:

{{WebServer1}}/Listing/Details/{{Active Listing IDs.AWE2_RandomActiveAuctionIds#csv.ListingID}}

И я получаю сообщение об ошибке:

Превышено максимальное количество уникальных URL-адресов запросов веб-тестирования, по которым необходимо составить отчет; данные о производительности для других запросов будут недоступны

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


person Novox    schedule 16.06.2014    source источник
comment
Гугл дает много ответов. Прочтите о сообщениях об именах.   -  person AdrianHHH    schedule 17.06.2014
comment
Я использую имена для отчетов, и отдельные URL-адреса больше не отображаются, но он по-прежнему предупреждает меня о том, что существует слишком много URL-адресов экземпляров... Спасибо.   -  person Novox    schedule 17.06.2014
comment
Visual Studio имеет множество плохо документированных параметров настройки, доступных через файлы реестра и конфигурации. Тщательный поиск в Интернете может найти способ увеличить ограничение. Возможно, если спросить через собственные форумы Microsoft, можно получить ответ.   -  person AdrianHHH    schedule 17.06.2014


Ответы (1)


В Visual Studio (2010 и выше) есть несколько функций, которые помогут решить эту проблему. Я говорю конкретно о 2010 году и предполагаю, что такие же или подобные опции доступны и в более поздних версиях.

<сильный>1. Максимальное количество зарегистрированных URL-адресов запросов:

Это общий параметр, доступный в свойствах параметров запуска нагрузочного теста. Значение по умолчанию, установленное здесь, равно 1000. Обычно этого значения по умолчанию достаточно... но не всегда достаточно высокого. В зависимости от размера нагрузочного теста может потребоваться его увеличение. Основываясь на личном опыте, если вы думаете о корректировке этого значения, сначала проведите тесты и получите представление о том, сколько запросов вы ожидаете увидеть в отчетах. Для меня приблизительный ориентир, который полезен:

* количество_запросов_в_веб-тесте * количество_пользователей_в_нагрузочном_тесте = общее_оценочное_запросов*

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

Этот вариант больше подходит для больших нагрузочных тестов, которые ссылаются на несколько веб-тестов и/или имеют очень большое количество пользователей. Одна ссылка на вариант использования этой опции для решения проблемы находится здесь: https://social.msdn.microsoft.com/Forums/en-US/ffc16064-c6fc-4ef7-93b0-4decbd72167e/maximum-число-уникальных-запросов-веб-тестов-превышено?forum=vstswebtest

В конкретном случае, упомянутом в первоначально опубликованном вопросе, это не решит проблему полностью. Фактически, он может создать новый, в результате чего у вас закончится виртуальная память. Visual Studio продолжит создавать новые метрики и счетчики запросов для каждого отдельного запроса с уникальным AWE2_RandomActiveAuctionIds.

<сильный>2. Имя отчета:

Еще одна опция, которую @AdrianHHH уже затронул, — это опция «Сообщение имен». Этот параметр находится в свойствах запроса внутри веб-теста. По умолчанию оно не имеет значения, что, в свою очередь, приводит к тому, что Visual Studio пытается создать имя, которое она будет использовать, из самого запроса. Такое поведение создает проблему, с которой вы столкнулись.

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

Если у вас есть хорошее представление об ожидаемом количестве запросов, которые будут отображаться в нагрузочном тесте (и я думаю, что полезно знать эту информацию в целях отладки при запуске этого исключения), шагом отладки будет установка «Максимальное количество зарегистрированных URL-адресов запросов» ВНИЗ до этого значения. Это заставит исключение, которое вы видите, появляться быстрее. Если вы видите его после настройки этого значения, то, скорее всего, это запрос, который генерирует новое сообщаемое значение каждый раз, когда виртуальный пользователь выполняет тест.

Исходя из опыта, этот шаг отладки может сэкономить вам время и волосы при работе с запросами, которые содержат sessionId, GUID и другие подобные типы информации. Если вы явно не определяете имя отчета для каждого отдельного запроса... можно легко пропустить запрос, содержащий динамические данные.

<сильный>3. Записать результаты:

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

На Codeplex можно найти своеобразный святой Грааль, в котором параметр Reporting Name рассматривается с небольшими подробностями. На момент написания этого ответа для доступа к нему можно было использовать следующую ссылку: http://vsptqrg.codeplex.com/releases/view/42484

Я надеюсь, что эта информация поможет.

person Daileyo    schedule 17.10.2014