在 JMeter/LoadRunner 中验证 SOAP XML 时,得到以下奇怪的响应:但是它在 SOAPUI 中工作正常。
重播回应:
#content{ 字体大小:0.7em;底部填充:2em;边距-左:30px}主体{边距-顶部:0px;左边距:0px;颜色:#000000;字体系列:Verdana; BACKGROUND-COLOR: white}P{MARGIN-TOP: 0px;底部边距:12px;颜色:#000000;字体系列:Verdana}PRE{BORDER-RIGHT:#f0f0e0 1px solid;填充右:5px;边框顶部:#f0f0e0 1px 实心;边距顶部:-5px;填充-左:5px;字体大小:1.2em;底部填充:5px;左边框:#f0f0e0 1px 纯色;填充顶部:5px; BORDER-BOTTOM:#f0f0e0 1px 实心;字体系列:Courier New;背景颜色:#e5e5cc}.heading1{MARGIN-TOP: 0px;左填充:15px;字体粗细:正常;字体大小:26px;底部边距:0px;底部填充:3px;左边距:-30px;宽度:100%;颜色:#ffffff;填充顶部:10px;字体系列:Tahoma; BACKGROUND-COLOR: #003366}.intro{MARGIN-LEFT: -15px}XXX ServiceXXX Service考虑一下您的请求在架构上可能有何不同。您是否在 Jmeter 中包括了所有与在 SOAPUI 中相同的标头……默认…………?
记录 SOAPUI 请求,包括所有标头。然后看看你在 Jmeter 和 SOAPUI 中发送的内容
很可能您没有像 SoapUI 那样发送相同的请求。
使用第 3 方嗅探器工具比较两个工具发送的请求,找出差异并修改 JMeter 配置,使其发送与 SoapUI 完全相同的请求。
不匹配的最常见原因是缺少 HTTP 标头,例如 Content-Type 和/或 SOAPAction 所以请检查您的 HTTP 标头管理器
您还可以考虑使用 JMeter 的 HTTP(S) 测试脚本记录器 记录来自 SoapUI 的请求。如果您配置 SoapUI 以使用 JMeter 作为代理JMeter 将能够拦截请求并生成适当的HTTP 请求 采样器和 HTTP 标头管理器。
我在我的 JMeter 脚本中手动添加了类似的 soap 标头,但在 SOAP UI 中找不到这些标头,这对我来说很好用。方法也是“POST”:
<wsse:Security xmlns:wsse="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
<wsse:UsernameToken wsu:Id="sample"
xmlns:wsu="XXXXXXXXXXXXXXXXXXXXXXXXXX">
<wsse:Username>XXXXXXXXX</wsse:Username>
<wsse:Password Type="wsse:PasswordText">XXXXXXXXX</wsse:Password>
<wsu:Created>XXXXXXXXXXXXXX</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>