在Jmeter中,我想使用JSR 223 PreProcessor groovy准备multipart/form-data
我尝试像这样使用vars.put(“formData”,formData)
import org.apache.http.entity.ContentType
import org.apache.http.entity.mime.MultipartEntityBuilder
import org.apache.http.entity.mime.content.FileBody
import org.apache.http.entity.mime.content.StringBody
import org.apache.http.util.EntityUtils
def filePath = "path/to/file"
def file = new File(filePath)
def payload = "some payload"
def builder = MultipartEntityBuilder.create().setCharset(java.nio.charset.StandardCharsets.UTF_8)
builder.addPart("payload", new StringBody(payload, ContentType.TEXT_PLAIN))
builder.addPart("file", new FileBody(file, ContentType.APPLICATION_OCTET_STREAM, file.name))
def formData = builder.build()
vars.put("formData", formData)
并得到错误“No signature of method:org.apache.jmeter.threads.JMeterVariables.put()适用于参数类型:(String,org.apache.http.entity.mime.MultipartFormEntity)”如果我想在脚本中准备multipart/form-data,然后在HTTP请求中使用它,我应该怎么做?
1条答案
按热度按时间txu3uszq1#
vars
代表JMeterVariables类示例。vars.put()
函数假设第二个参数是String,并且您正在尝试传递其他内容。如果这是你想要的,你应该使用vars.putObject()
。或者您需要先以某种方式将实体转换为String1.我认为你根本不需要在Groovy中这样做,你可以使用普通的JMeter的HTTP请求采样器来执行多部分请求,你可以将“payload”放入请求参数中,将文件放入“Files Upload”并勾选
Use multipart/form-data
框:也可以使用HTTPSamplerProxy类的
sampler
快捷方式以编程方式完成有关上述以及其他JSR223测试元素可用的API简写的更多信息,请参见Top 8 JMeter Java Classes You Should Be Using with Groovy文章