C# 如何使用JMeter测试WCF Web服务?
我有一个托管在IIS上的WCF Webservice,它公开了一个接受三个整数参数的方法。我有一个简单的、基于控制台的客户端,可以调用这个方法C# 如何使用JMeter测试WCF Web服务?,c#,web-services,soap,jmeter,C#,Web Services,Soap,Jmeter,我有一个托管在IIS上的WCF Webservice,它公开了一个接受三个整数参数的方法。我有一个简单的、基于控制台的客户端,可以调用这个方法 int InsertNewOrder(short quantity, int custID, int productID); 如果我的理解是正确的,我需要向JMeter提供一个SOAP信封,其中包含要调用的方法和要传递的参数的详细信息。我见过许多类似于以下的例子: <soapenv:Envelope xmlns:soapenv="schemas.
int InsertNewOrder(short quantity, int custID, int productID);
如果我的理解是正确的,我需要向JMeter提供一个SOAP信封,其中包含要调用的方法和要传递的参数的详细信息。我见过许多类似于以下的例子:
<soapenv:Envelope xmlns:soapenv="schemas.xmlsoap.org/soap/envelope/">;
<soapenv:Body>
<ns2:InsertNewOrder xmlns:ns2="?????">
<ns2:Param1>${1}</ns2:Param1>
<ns2:Param1>${1}</ns2:Param1>
<ns2:Param1>${1}</ns2:Param1>
</ns2:InsertNewOrder>
</soapenv:Body>
</soapenv:Envelope>
;
${1}
${1}
${1}
然而,通过查看我的WSDL文档,我看不到它在哪里引用了传递给该方法所需的任何参数。我还使用Fiddler检查了客户端发送给服务的soap消息。同样,我看不到它在哪里传递参数。因此,我不知道如何创建一个简单的SOAP信封,我可以使用JMeter来测试这个服务
有人能告诉我为什么WSDL文档没有提供方法参数的任何细节,或者解释我如何创建必要的SOAP信封以便与JMeter一起使用吗
我使用VS2010、JMeter 2.4、IISV6、wsHttpBinding用C#编写代码 免责声明:我不是WSDL专家,所以我无法告诉您为什么文档没有提供详细信息
为了为JMeter生成SOAP信封,我使用了soapUI的免费版本
台阶
...
...
如果WCF客户端与JMeter在同一台计算机上运行(创建测试用例时正常),则proxyServerName为localhost
另外,如果我没有如上所示关闭安全性,我使用HTTP代理收到一条错误消息。WCF服务服务器上也必须具有相同的安全设置
快乐测试!:-) 非常感谢。这正是我所需要的。它还以与我查看原始XML时不同的方式显示WSDL。我现在可以看到参数等。很高兴我能帮忙。事实上,我发现这可以大大节省时间。通过使用SoapUI,我看到它还执行负载测试(这基本上就是我想要做的)。你觉得一个工具比另一个更好吗?我本来打算使用JMeter,但之前没有听说过SoapUI。我对SoapUI的负载测试工具不是很喜欢(SoapUI中既有loadUI,也有性能测试工具)。我发现它们比JMeter更难自定义。@BlackGaff:我在原始请求视图中看到的不是
soap:envelope
标记,而是GET http:…
。我能做什么?请帮忙。
<system.serviceModel>
<bindings>
...
<wsHttpBinding>
<binding ... proxyAddress="http://proxyServerName:8080" useDefaultWebProxy="false" ...>
...
<security mode="None">
<message establishSecurityContext="false"/>
<transport clientCredentialType="None"/>
</security>