预处理器的 Jmeter Image Base64 post
Jmeter Image Base64 post by Preprocessor
我有一个以下的 csv
FirstName,MiddleName,LastName,ImageLocation
Jack|Michel|Rechards|D:\Image\picture.jpg
我正在使用 JSR223 预处理器来准备我的 json
import groovy.json.JsonBuilder
def json = new JsonBuilder()
json {
myData {
firstName vars.get("FirstName")
MiddleName vars.get("MiddleName")
LastName vars.get("LastName")
//How to handle Image base 64 for post ?
}
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true)
我的预期 json 如下所示
{
"myData": {
"firstName": "Jack",
"MiddleName": "Michel",
"LastName": "Rechards",
"Image": Base64 Image Data
}
}
如何从文件位置获取图像并将其转换为 base64 和 post?
使用 Beanshell 预处理器代替 JSR223 预处理器对我有好处。谢谢
类似于:
def imageStream = IOUtils.toByteArray(new URL("file:///D:/Image/picture.jpg"))
def imageBase64 = Base64.getEncoder().encodeToString(imageStream)
完整代码以防万一:
import groovy.json.JsonBuilder
import org.apache.commons.io.IOUtils
def imageStream = IOUtils.toByteArray(new URL("file:///D:/Image/picture.jpg"))
def imageBase64 = Base64.getEncoder().encodeToString(imageStream)
def json = new JsonBuilder()
json {
myData {
"firstName" vars.get("FirstName")
"MiddleName" vars.get("MiddleName")
"LastName" vars.get("LastName")
"Image" imageBase64
}
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true)
参考文献:
我有一个以下的 csv
FirstName,MiddleName,LastName,ImageLocation
Jack|Michel|Rechards|D:\Image\picture.jpg
我正在使用 JSR223 预处理器来准备我的 json
import groovy.json.JsonBuilder
def json = new JsonBuilder()
json {
myData {
firstName vars.get("FirstName")
MiddleName vars.get("MiddleName")
LastName vars.get("LastName")
//How to handle Image base 64 for post ?
}
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true)
我的预期 json 如下所示
{
"myData": {
"firstName": "Jack",
"MiddleName": "Michel",
"LastName": "Rechards",
"Image": Base64 Image Data
}
}
如何从文件位置获取图像并将其转换为 base64 和 post? 使用 Beanshell 预处理器代替 JSR223 预处理器对我有好处。谢谢
类似于:
def imageStream = IOUtils.toByteArray(new URL("file:///D:/Image/picture.jpg"))
def imageBase64 = Base64.getEncoder().encodeToString(imageStream)
完整代码以防万一:
import groovy.json.JsonBuilder
import org.apache.commons.io.IOUtils
def imageStream = IOUtils.toByteArray(new URL("file:///D:/Image/picture.jpg"))
def imageBase64 = Base64.getEncoder().encodeToString(imageStream)
def json = new JsonBuilder()
json {
myData {
"firstName" vars.get("FirstName")
"MiddleName" vars.get("MiddleName")
"LastName" vars.get("LastName")
"Image" imageBase64
}
}
sampler.addNonEncodedArgument("",json.toPrettyString(),"")
sampler.setPostBodyRaw(true)
参考文献: