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

如何在JMeter中对XML文件进行压缩并上传?

在JMeter中压缩XML文件的实现方法

完全可以在JMeter中实现XML文件压缩,推荐使用JSR223元件结合Groovy代码完成,Groovy在JMeter中执行效率高且语法简洁。以下是两种常见压缩方式的实现代码:

一、将XML文件压缩为ZIP包

添加JSR223 PreProcessor(或Sampler,根据执行时机选择),粘贴以下代码:

import java.io.FileInputStream
import java.io.FileOutputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream

// 替换为你的XML文件实际路径
def xmlFilePath = "/Users/xxx/test.xml"
// 定义压缩后的ZIP文件路径
def zipFilePath = "/Users/xxx/test.zip"

def fis = new FileInputStream(xmlFilePath)
def fos = new FileOutputStream(zipFilePath)
def zos = new ZipOutputStream(fos)

// 添加ZIP条目,使用原XML文件名
zos.putNextEntry(new ZipEntry(new File(xmlFilePath).getName()))
zos << fis
zos.closeEntry()

// 关闭所有流
fis.close()
zos.close()
fos.close()

// 将压缩文件路径存入JMeter变量,方便后续上传使用
vars.put("compressedFilePath", zipFilePath)

二、将XML文件压缩为GZIP格式

如果需要gzip压缩(常用于HTTP上传时的内容压缩),使用以下代码:

import java.io.FileInputStream
import java.io.FileOutputStream
import java.util.zip.GZIPOutputStream

def xmlFilePath = "/Users/xxx/test.xml"
def gzipFilePath = "/Users/xxx/test.xml.gz"

def fis = new FileInputStream(xmlFilePath)
def fos = new FileOutputStream(gzipFilePath)
def gzos = new GZIPOutputStream(fos)

gzos << fis

fis.close()
gzos.close()
fos.close()

vars.put("compressedFilePath", gzipFilePath)

三、直接压缩JMeter变量中的XML内容

如果XML内容不是本地文件,而是存储在JMeter变量(比如xmlContent)中,可使用以下代码:

import java.io.ByteArrayInputStream
import java.io.FileOutputStream
import java.util.zip.ZipOutputStream
import java.util.zip.ZipEntry

def xmlContent = vars.get("xmlContent")
def zipFilePath = "/Users/xxx/test.zip"

def bis = new ByteArrayInputStream(xmlContent.getBytes("UTF-8"))
def fos = new FileOutputStream(zipFilePath)
def zos = new ZipOutputStream(fos)

zos.putNextEntry(new ZipEntry("data.xml"))
zos << bis
zos.closeEntry()

bis.close()
zos.close()
fos.close()

vars.put("compressedFilePath", zipFilePath)

注意事项

  • 替换代码中的文件路径为你的实际路径
  • 后续上传时,直接引用变量${compressedFilePath}作为上传文件路径即可
  • Groovy自带所有所需的IO和压缩类,无需额外添加依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:35:27