使用 JMeter 对本地 IIS 中托管的 WCF 服务进行负载测试

我的要求是对本地 IIS 服务器中托管的 WCF 服务进行负载测试。我们正在努力提高 WCF 服务的性能。在 PROD 环境中,WCF 服务和使用该服务的桌面应用程序也驻留在同一台计算机中。

因此,为了确定 WCF 服务的现有性能基准,我尝试使用 JMeter 通过在托管服务的同一台计算机上运行该服务来对服务进行负载测试。

我使用 JMeter 的 HTTP 测试脚本记录器来捕获从桌面应用程序到 WCF 服务的任何请求,以便稍后能够增加线程计数来获取性能测量结果。

问题是我无法捕获发送到本地 IIS 服务器中托管的服务的任何请求。但是,如果我在单独的服务器中托管相同的服务,并从运行消费桌面应用程序的计算机上执行 Jmeter,那么 Jmeter 就能够捕获对该 Web 服务器的所有传出请求。

是否可以记录服务和消费桌面应用程序都驻留在同一台计算机上的请求?

当前配置

我使用 8895 作为 Jmeter 代理中的端口号

https://img2.mukewang.com/650faa670001dbaf10780606.jpg

Windows 中手动设置代理(使用 Jmeter 中配置的相同端口号)

https://img1.mukewang.com/650faa7100014d3a04740520.jpg

桌面应用程序配置文件(将请求发送到本地服务)


    <bindings>

        <wsHttpBinding>

            <binding name="WSHttpBinding_IPayment" proxyAddress="http://127.0.0.1:8895" useDefaultWebProxy="false" bypassProxyOnLocal="false">                     

                <security mode="None" />

            </binding>            

        </wsHttpBinding>        

    </bindings>

    <client>

      <!--<endpoint address="http://10.2.179.100/PaymentService/Payment.svc " binding="wsHttpBinding"-->                      

      <endpoint address="http://127.0.0.1:88/Payment.svc" binding="wsHttpBinding"          

          bindingConfiguration="WSHttpBinding_IPayment" contract="PaymentServiceReference.IPayment"

            name="WSHttpBinding_IPayment" />

    </client>

</system.serviceModel>



忽然笑
浏览 83回答 1
1回答

缥缈止盈

您可能需要添加Microsoft Loopback Adapter才能捕获链路本地流量您可能需要设置系统级 HTTP 代理,例如:netsh winhttp set proxy 127.0.0.1:8895
打开App,查看更多内容
随时随地看视频慕课网APP