2017-04-27 577 views
0

我有以下CSV的JMeter圖片Base64編碼後通過預處理

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併發布? 使用Beanshell預處理器對我來說會比較好,而不是JSR223預處理器。謝謝。

回答

2

喜歡的東西:

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) 

參考文獻:

+0

謝謝。有效。 – Esty