Jmeter Secure WS- Security SOAP Webservices用于加密数据

时间:2017-10-23 21:59:42

标签: jmeter soapui

我打算使用JMeter for WS-Security SOAP Webservices进行性能测试。我观察到请求中发送的数据是使用Apache CXF加密的。我有什么地方可以将这些值发送到服务器并使用Jmeter获取值。我调查过了 https://www.blazemeter.com/blog/take-pain-out-load-testing-secure-web-services

但由于“验证邮件时遇到安全错误”,我无法通过。

在我尝试了Dmitri提供的解决方案后,我可以看到SOAP UI和JMeter在请求中存在以下差异。在SOAP UI中出现的Jmeter请求中缺少以下内容

                <ds:Reference URI="#id-5082">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                            <ec:InclusiveNamespaces PrefixList="ser" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                        </ds:Transform>
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                    <ds:DigestValue>qSF7n7bkl2cKYVZvDwT7ur77AdSeT4/kqbdEqPfkzVA=</ds:DigestValue>
                </ds:Reference>

        <wsu:Timestamp wsu:Id="TS-5081">
            <wsu:Created>2017-10-24T18:39:53.349Z</wsu:Created>
            <wsu:Expires>2017-10-24T18:41:33.349Z</wsu:Expires>
        </wsu:Timestamp>

对于时间戳,我已手动将wsse:Security / wsu:Timestamp添加到请求中,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.wso2.org/types">
   <soapenv:Header>
       <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
                      xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
           <wsu:Timestamp>
               <wsu:Created>#CREATED#</wsu:Created>
               <wsu:Expires>#EXPIRES#</wsu:Expires>
           </wsu:Timestamp>
       </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
       <typ:greet>           
           <name>Blazemeter</name>
       </typ:greet>
   </soapenv:Body>
</soapenv:Envelope>

但我仍面临同样的问题。 更新Jmeter system.properties文件以包含密钥库信息。 在HTTP Request Sampler下,我明白了 回复代码:500 回复信息:

在Jmeter日志上也没有出现错误。

enter image description here

对此有任何帮助表示赞赏。

enter image description here

1 个答案:

答案 0 :(得分:2)

Apache CXF是service framework,而不是加密方法,因此为了获得答案,您需要提供尽可能多的信息。

您还可以考虑使用jmeter-wssecurity采样器对Web服务端点进行负载测试,它提供了简单的GUI,允许选择签名算法,摘要算法,证书等,因此如果您不确定您的Web服务安全配置你可以玩它。

您可以使用JMeter Plugins Manager

将插件安装为WS Security for SOAP个捆绑包

JMeter Plugins Manager WS Security