Jmeter中的压缩肥皂请求

时间:2018-09-26 22:23:07

标签: soap request jmeter gzip

是否可以发送压缩的肥皂请求?

我添加了带有以下标头的HTTP标头管理器:

Content-Type: application/soap+xml; charset=Utf-8
Content-Encoding: gzip 

我添加了一个Beanshell预处理器作为需要编码的请求的子代,并定义了以下脚本:

import org.apache.commons.io.IOUtils;
import java.util.zip.GZIPOutputStream;

// This only works for the HTTP Request, not Soap Request.
// String bodyString = sampler.getArguments().getArgument(0).getValue();
String bodyString = ctx.getCurrentSampler().getXmlData();

byte [] requestBody = bodyString.getBytes();

ByteArrayOutputStream out = new ByteArrayOutputStream(requestBody.length);
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(requestBody);
gzip.close();

// This only works for the HTTP Request, not Soap Request.
// sampler.getArguments().getArgument(0).setValue(out.toString(0));
ctx.getCurrentSampler().setXmlData(???);

我的问题是最后一行,如何设置xmlData?

Jmeter 3.1版

1 个答案:

答案 0 :(得分:0)

  1. SOAP/XML-RPC Sampler which is deprecated采样器替换HTTP Request
  2. 升级到JMeter 5.0(或JMeter Downloads页上提供的最新版本)
  3. Beanshell to Groovy切换
  4. 使用sampler.getArguments().getArgument(0).setValue(out.toString(0));来生成请求正文。