我打算使用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日志上也没有出现错误。
对此有任何帮助表示赞赏。
答案 0 :(得分:2)
Apache CXF是service framework,而不是加密方法,因此为了获得答案,您需要提供尽可能多的信息。
您还可以考虑使用jmeter-wssecurity采样器对Web服务端点进行负载测试,它提供了简单的GUI,允许选择签名算法,摘要算法,证书等,因此如果您不确定您的Web服务安全配置你可以玩它。
将插件安装为WS Security for SOAP
个捆绑包