Web パフォーマンス テストで Web サービス リクエストをパラメータ化しようとしています。Fiddler2 を使用して、デスクトップ アプリケーションによって実行されたトランザクションに対する 60 を超える Web サービス リクエストのシーケンスを記録し、それらを.webtest
ファイルとして保存しました。この Web テストはエラーなしで実行され、確認した応答は正しいように見えます。
Web サービス リクエストを Visual Studio 2012 で表示すると、それらはプレーン テキストで表示されるため、それらを編集して SOAP リクエストの値をパラメータ化できるはずです。たとえば、ほとんどのリクエストにはテキストが含まれており<Database>db1a</Database>
(実際には<Database>db1a</Database>
)、コンテキスト パラメータからデータベース名を取得するように変更したいと考えています。パラメータで置き換える項目は他にもいくつかあります。この 1 つのトランザクションには、60 を超える Web サービス リクエストがあり、他にも記録するトランザクションがあります。.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 ではプレーン テキストとして表示されます。このフィールドのエンコーディングは何ですか? また、どのようにデコードおよびエンコードできますか?
http://teamtestplugins.codeplex.com/から「<em>Visual Studio Team Test 用 Web およびロード テスト プラグイン」のリリース 3.0 をインストールしました。それらは、SOAP リクエストを 1 つずつ編集するためのわずかに優れたインターフェースを提供します。ただし、大量の変更は許可されません。
Web テストをコード化された Web テスト (つまり C#) に変換すると、SOAP 要求が単純なテキストとして表示され、そこで編集できますが、ファイルの柔軟性を維持したいと考えてい.webtest
ます。
更新:質問に対する部分的な回答を投稿しました。それは機能しますが、複雑すぎるため、作業のやり方が間違っているように感じます. だから私はより良い全体的なアプローチを探しています。