【发布时间】:2013-10-14 13:32:00
【问题描述】:
我正在尝试在 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/ 的“Web and Load Test Plugins for Visual Studio Team Test 3.0 版。它们为一次编辑一个 SOAP 请求提供了更好的界面。但它们不允许大规模更改。
将 Web 测试转换为编码的 Web 测试(即转换为 C#)将 SOAP 请求显示为简单的文本,并且可以在那里对其进行编辑,但我更愿意保持 .webtest 文件的灵活性。
更新:我已经发布了该问题的部分答案。虽然它有效,但感觉做这项工作的方式是错误的,因为它感觉太复杂了。所以我正在寻找一种更好的整体方法。
【问题讨论】:
标签: web-services visual-studio-2012 soap fiddler web-testing