在 JMeter 中发送 XML 格式的 SOAP 请求,需使用 HTTP Request 发送 POST 请求,正确设置 Content-Type(text/xml 或 application/soap+xml)、UTF-8 编码,并在 Body Data 中粘贴完整合规的 SOAP XML;支持变量参数化、外部文件读取及响应解析。

在 JMeter 中发送 XML 格式的 SOAP 请求,核心是用 HTTP Request 发送符合 SOAP 协议的 POST 请求,并正确设置请求头和请求体。关键点在于:内容类型必须是 text/xml 或 application/soap+xml(取决于 SOAP 版本),且请求体是完整的、格式正确的 SOAP XML。
准备 SOAP 请求体(XML)
先获取或编写标准的 SOAP 请求 XML,注意版本(SOAP 1.1 或 1.2)和命名空间。例如一个简单的 SOAP 1.1 请求:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- 复制整段 XML(含
声明),粘贴到 JMeter 的 HTTP Request 的 “Body Data” 标签页中 - 确保 XML 格式合法,缩进不影响,但标签必须闭合、命名空间一致
- 如需动态参数(如 City),可用 JMeter 变量(如
${city})替换,配合 CSV Data Set Config 或 User Defined Variables 使用
配置 HTTP Request 发送器
在 HTTP Request 中设置以下关键项:
-
Protocol:一般为
http或https -
Server Name or IP:SOAP 服务地址(如
wsf.cdyne.com) -
Path:服务端点路径(如
/WeatherWS/Weather.asmx) -
Method:固定选
POST -
Content encoding:填
UTF-8(避免中文乱码) - 切换到 Headers 标签页,添加请求头:
Content-Type: text/xml; charset=UTF-8(SOAP 1.1)
或Content-Type: application/soap+xml; charset=UTF-8(SOAP 1.2)
验证与调试技巧
发不出或返回 500/400?常见原因和检查项:
- 用浏览器或 SoapUI 先测试同一请求是否成功,确认服务可用、XML 正确
- 在 JMeter 中启用 View Results Tree 查看“Request”和“Response”原始内容,确认发送的 XML 是否被截断或转义
- 检查响应中的错误提示,比如 “Invalid SOAP envelope”、“Missing namespace” 等,针对性修正 XML
- 若服务要求认证,可在 HTTP Header Manager 中添加
Authorization,或使用 HTTP Authorization Manager
进阶:复用与参数化
提高可维护性的小建议:
- 把 SOAP XML 存成外部文件(如
request_soap.xml),用 __FileToString() 函数读取:${__FileToString(/path/to/request_soap.xml,,)} - 用 XPath Extractor 或 JSON Extractor(配合 JSR223 + XmlSlurper)解析 SOAP 响应提取数据
- 多个接口共用相同信封结构?可结合 User Defined Variables 定义命名空间、URL 等,提升复用性
基本上就这些。不需要插件,纯 JMeter 原生组件就能完成。重点是 XML 合规、Content-Type 匹配、编码统一——不复杂但容易忽略细节。










