2014-11-07 3 views
0

У меня есть веб-служба, которую мне нужно протестировать с помощью JMeter, но спецификация требует сжатого json. Мне нужно создать json из данных в CSV-файле. Я смог работать с использованием препроцессора beanshell и конфигурации набора данных CSV. Но теперь мне нужен способ gzip данных и отправить их на сервер. Есть ли там пробоотборник, который сделает это?JMeter: Отправить gzipped json?

хак Решение

только рабочий раствор я нашел, чтобы сжать данные из сценария Beanshell затем JMeter отправить файл, но это, кажется, немного противно мне.

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

Ни один из пробоотборников, которые я знаю, не будет автоматически зависеть от вас.

Вы можете использовать ByteArrayOutputStream вместо FileOutputStream, затем 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()); 

Тогда в Body Data разделе вашего запроса HTTP, обратитесь к переменной ${ZIPFILE}

+0

это просто послать '$ {ZipFile}' для меня – Lrrr