You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter调用WSSE安全服务时遇ClientProtocolException异常求助

JMeter中WSSE安全服务压测的正确配置与异常排查

org.apache.http.client.ClientProtocolException的常见触发原因

  • 录制请求时格式被破坏:JMeter代理录制WSSE请求时,可能篡改SOAP信封内的WSSE头部,导致协议格式不合法。
  • 前置处理器配置冲突:录制的请求中已包含SoapUI生成的WSSE Token,再添加SOAP Message Username Token会导致重复生成Token,触发协议错误。
  • 请求头配置错误:WSSE服务通常要求特定的Content-Type,若录制后该字段被修改,会引发异常。

正确配置步骤

1. 清理录制的请求内容

打开JMeter中录制完成的HTTP请求,检查SOAP Body,删除所有SoapUI自动生成的<wsse:Security>标签及其内部内容,仅保留业务相关的SOAP信封结构。

2. 配置SOAP Message Username Token前置处理器

给目标HTTP请求添加前置处理器(路径:右键HTTP请求 → 前置处理器 → SOAP Message Username Token),按以下要求配置:

  • Username:填入服务要求的用户名
  • Password:填入对应密码
  • Password Type:选择与SoapUI一致的类型(常用PasswordText或PasswordDigest)
  • Add Nonce:勾选(若服务要求随机Nonce)
  • Add Created:勾选(若服务要求时间戳)
  • SOAP Version:匹配服务使用的SOAP版本(1.1或1.2)
  • Namespace Prefix:填入服务期望的前缀(通常为wsse,需与服务端定义一致)

3. 校验请求头

确保HTTP请求的Content-Type头符合要求:

  • SOAP 1.1:text/xml;charset=utf-8
  • SOAP 1.2:application/soap+xml;charset=utf-8
    删除录制过程中带入的SoapUI特定请求头(如SOAPAction以外的非标准头)。

4. 单线程验证

先运行单线程请求,通过查看结果树对比JMeter生成的请求与SoapUI成功请求的差异:

  • 检查WSSE头部的Nonce、Created字段格式是否一致
  • 确认Password的编码(明文或摘要)是否匹配服务要求
  • 核对SOAP信封的命名空间、结构是否完全对齐

额外排错点

  • 若使用PasswordDigest,需确认前置处理器的摘要算法(默认SHA-1)与服务端要求一致,不一致时需通过JMeter自定义函数或脚本调整。
  • 部分WSSE服务要求Token包含特定属性(如wsu:Id),可在前置处理器的Advanced选项中添加对应配置。

内容的提问来源于stack exchange,提问作者Sri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:35:16