Я пытаюсь параметризовать запросы веб-службы в тесте веб-производительности. Используя Fiddler2, я записал последовательность из более чем 60 запросов веб-службы для транзакции, выполняемой моим настольным приложением, и сохранил их в виде файла .webtest
. Этот веб-тест проходит без каких-либо ошибок, и ответы, которые я проверил, выглядят правильно.
Когда запросы веб-службы просматриваются в Visual Studio 2012, они отображаются в виде простого текста, поэтому я должен иметь возможность редактировать их, чтобы параметризовать значения в запросах SOAP. Например, большинство запросов содержат текст <Database>db1a</Database>
(на самом деле он имеет <Database>db1a</Database>
), и я хочу изменить их, чтобы получить имя базы данных из параметра контекста. Есть несколько других элементов, которые нужно заменить параметрами. Для этой одной транзакции имеется более 60 запросов к веб-службе, и у меня есть другие транзакции для записи. Файл .webtest
содержит XML, а запросы выглядят так:
<Request Method="POST" Version="1.1" Url="http://example.com/somewhere.asmx" ThinkTime="83" Timeout="60" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8">
<Headers>
<Header Name="Content-Type" Value="text/xml; charset=utf-8" />
<Header Name="SOAPAction" Value=""http://example.com/webservices/VariousActionNamesHere"" />
</Headers>
<StringHttpBody ContentType="text/xml; charset=utf-8">PAA/AHgAbQBsACAAdg
... lots more characters not shown
+AA==</StringHttpBody>
</Request>
Поле StringHttpBody
содержит закодированную версию запроса SOAP. Visual Studio показывает его как обычный текст. Какова кодировка этого поля и как я могу его декодировать и кодировать?
Я установил выпуск 3.0 «Плагины веб-тестирования и нагрузочного тестирования для Visual Studio Team Test» с сайта http://teamtestplugins.codeplex.com/ . Они обеспечивают немного лучший интерфейс для редактирования запросов SOAP по одному. Но они не допускают массовых изменений.
Преобразование веб-теста в закодированный веб-тест (т. е. в C#) показывает запросы SOAP в виде простого текста, и их можно редактировать там, но я бы предпочел сохранить гибкость файла .webtest
.
Обновление: я опубликовал частичный ответ на вопрос. Хотя это работает, кажется, что это неправильный способ выполнения работы, потому что он кажется слишком сложным. Поэтому я ищу лучший общий подход.