17370845950

JMeter怎么发送XML格式的SOAP请求
在 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/xmlapplication/soap+xml(取决于 SOAP 版本),且请求体是完整的、格式正确的 SOAP XML。

准备 SOAP 请求体(XML)

先获取或编写标准的 SOAP 请求 XML,注意版本(SOAP 1.1 或 1.2)和命名空间。例如一个

简单的 SOAP 1.1 请求:


xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


Beijing
BJ


  • 复制整段 XML(含 声明),粘贴到 JMeter 的 HTTP Request 的 “Body Data” 标签页中
  • 确保 XML 格式合法,缩进不影响,但标签必须闭合、命名空间一致
  • 如需动态参数(如 City),可用 JMeter 变量(如 ${city})替换,配合 CSV Data Set Config 或 User Defined Variables 使用

配置 HTTP Request 发送器

在 HTTP Request 中设置以下关键项:

  • Protocol:一般为 httphttps
  • 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 ExtractorJSON Extractor(配合 JSR223 + XmlSlurper)解析 SOAP 响应提取数据
  • 多个接口共用相同信封结构?可结合 User Defined Variables 定义命名空间、URL 等,提升复用性

基本上就这些。不需要插件,纯 JMeter 原生组件就能完成。重点是 XML 合规、Content-Type 匹配、编码统一——不复杂但容易忽略细节。