2014-11-07 3 views
0

JMeter로 테스트해야하는 웹 서비스가 있지만 사양에 압축 json이 필요합니다. CSV 파일의 데이터에서 json을 작성해야합니다. 나는 beanshell 전처리기를 사용하고 CSV 데이터 셋을 사용하여 작업 할 수 있었다. 하지만 지금은 데이터를 gzip하고 서버로 보내는 방법이 필요합니다. 이 작업을 수행 할 샘플러가 있습니까? 내가 찾은JMeter : gzipped json을 보내시겠습니까?

Hackish 솔루션

유일한 작업 용액은 JMeter가이 파일을 보내 가지고으로 Beanshell 스크립트에서 데이터를 압축하는 것입니다, 그러나 이것은 나에게 조금 심한 것 같다.

import com.eclipsesource.json.*; 
import java.io.FileOutputStream; 
import java.io.BufferedWriter; 
import java.io.OutputStreamWriter; 
import java.util.zip.GZIPOutputStream; 

jsonObject = new JsonObject(); 
// populate json data here 

GZIPOutputStream zip = new GZIPOutputStream(new FileOutputStream("c:\\json.gz")); 
writer = new BufferedWriter(new OutputStreamWriter(zip, "UTF-8")); 
jsonObject.writeTo(writer); 
writer.close(); 

압축을 수행하는 샘플러가없는 경우 데이터를 파일 시스템에 쓰는 것을 방지 할 수있는 방법이 있습니까? 포스트 프로세서를 만들어 임시 파일을 삭제해야합니까? 당신의 도움을 주셔서 감사합니다!

답변

2

필자가 알고있는 샘플러 중 자동으로 지퍼가 자동 설치되지 않습니다.

FileOutputStream 대신 ByteArrayOutputStream을 사용하고, toString 대신 jmeter 변수 또는 속성을 사용할 수 있으므로 변수 이름을 사용하여 샘플러에서 사용할 수 있습니다.

import com.eclipsesource.json.*; 
import java.io.ByteArrayOutputStream; 
import java.io.BufferedWriter; 
import java.io.OutputStreamWriter; 
import java.util.zip.GZIPOutputStream; 

jsonObject = new JsonObject(); 
// populate json data here 

GZIPOutputStream zip = new GZIPOutputStream(new ByteArrayOutputStream()); 
writer = new BufferedWriter(new OutputStreamWriter(zip, "UTF-8")); 
jsonObject.writeTo(writer); 
writer.close(); 

vars.put("ZIPFILE", zip.toString()); 

는 그런 다음 HTTP 요청의 Body Data 섹션에서 그냥 나를 위해``$ {ZipFile를}을 보낼 변수 ${ZIPFILE}

+0

참조 – Lrrr