c# - 如何使用 JMeter 测试 WCF Web 服务?

标签 c# web-services soap jmeter

我有一个托管在 IIS 上的 WCF Web 服务,它公开了一个采用三个整数参数的方法。我有一个简单的、基于控制台的客户端,它可以调用这个方法。

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>

但是,通过查看我的 WSDL 文档,我看不到它在哪里引用传递给该方法所需的任何参数。我还使用 Fiddler 检查客户端发送给服务的 soap 消息。同样,我看不到它在哪里传递参数。因此,我不知道如何创建一个简单的 SOAP 信封,我可以使用 JMeter 来测试此服务。

谁能告诉我为什么 WSDL 文档不提供方法参数的任何细节,或者解释我如何创建必要的 SOAP 信封以用于 JMeter?

我使用 VS 2010、JMeter 2.4、IIS v6、wsHttpBinding 在 C# 中编码。

最佳答案

免责声明:我不是 WSDL 专家,所以我无法告诉您为什么文档没有提供详细信息。

为了为 JMeter 生成 SOAP 信封,我使用了免费版的 soapUI。

步骤

  1. 将 WSDL 导入 soap
  2. 为方法创建默认请求
  3. 将请求 View 设置为RAW,并复制到JMeter

这为我提供了 jmeter 所需的所有信息,包括参数、用户代理、端点等。

关于c# - 如何使用 JMeter 测试 WCF Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803974/

相关文章:

java - 更改 WSDL xsd :complexType name with Apache CXF

PHP - 使用 header 调用 SoapClient,并返回 fatal error

c# - 如何使用c#从后面的代码中查找SQL Server实例名称和服务器名称?

web-services - 用于用户和组管理的 Web 框架

java - 不存在表示消息寻址属性的必需 header

wcf - 在 MVVM 中将对 WCF 或其他 Web 服务的调用放在哪里?

web-services - 我们可以使Restful Webservice成为有状态的吗

c# - 使用服务帐户身份验证访问 Google Calendar API

c# - 游戏关卡意外地相互叠加

c# - Asp.Net Core 2.0 中的 Configuration.GetSection 获取所有设置