【发布时间】:2020-12-22 21:25:08
【问题描述】:
我是 Jmeter 的新手,我正在尝试创建一个休息 api 请求,我可以用它来做一些负载测试。我能够进行身份验证并继续发送发布请求的下一步。
我们的请求基本上是这样的
{"id" : 112, "someversion" : "2.0", "policyData" : "C:/TEMP/PGF/someinput.json" }
我能够在服务器上捕获示例请求的样子。看来我们在发送请求之前正在压缩并进行一些base64编码......
我的主要问题是如何在发布之前对其进行压缩和编码,使其与该格式相似。
我在 jsr223 预处理器中尝试了以下方法:
import org.apache.commons.io.IOUtils;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.codec.binary.Base64;
String bodyString = sampler.getArguments().getArgument(0).getValue();
byte [] requestBody = bodyString.getBytes();
ByteArrayOutputStream out = new ByteArrayOutputStream(requestBody.length);
GZIPOutputStream gzip = new GZIPOutputStream(out);
我在想我只需要编码策略数据而不是整个请求......
我需要在 java 中执行类似的操作,并可能在发送请求之前加密该文件。
using (var cryptStream = new CryptoStream(streamWriter.BaseStream, new
ToBase64Transform(), CryptoStreamMode.Write, leaveOpen: true))
using (var gzipStream = new GZipStream(cryptStream,
CompressionMode.Compress))
using (var inputFile = new FileStream(requestData.policyData,
FileMode.Open, FileAccess.Read))
{
inputFile.CopyTo(gzipStream);
}
【问题讨论】: