我正在尝试在 Web 性能测试中参数化 Web 服务请求。使用 Fiddler2,我记录了由我的桌面应用程序执行的事务的 60 多个 Web 服务请求序列,并将它们保存为.webtest
文件。此 Web 测试运行没有任何错误,并且我检查的响应看起来正确。
当在 Visual Studio 2012 中查看 Web 服务请求时,它们以纯文本形式出现,因此我应该能够编辑它们以参数化 SOAP 请求中的值。例如,大多数请求都包含文本<Database>db1a</Database>
(实际上它有<Database>db1a</Database>
),我想更改它们以从上下文参数中获取数据库名称。还有其他几个项目可以用参数替换。对于这一交易,有超过 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/安装了“用于 Visual Studio Team Test 的 Web 和负载测试插件”的 3.0 版。它们为一次编辑一个 SOAP 请求提供了更好的界面。但它们不允许大规模更改。
将 web 测试转换为编码的 web 测试(即转换为 C#)将 SOAP 请求显示为简单的文本,并且可以在那里对其进行编辑,但我更愿意保持.webtest
文件的灵活性。
更新:我已经发布了这个问题的部分答案。虽然它有效,但感觉做这项工作的方式是错误的,因为它感觉太复杂了。所以我正在寻找一种更好的整体方法。