loadrunner 发送gzip压缩json格式(转)
转:http://blog.csdn.net/gzh0222/article/details/7711281
使用java vuser实现,发送gzip压缩json格式。
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import java.io.*; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.InputStream; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.InputStreamEntity; import org.apache.http.impl.client.DefaultHttpClient; public class Actions { public int init() throws Throwable { return 0; }//end of init public int action() throws Throwable { String foo = "{\"job_id\":93044,\"client_id\":1009,\"version\":\"10001\",\"dev_type\":1,\"app_guid\":\"1\"}"; HttpResponse response; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost= new HttpPost ("http://10.10.10.10:61013/proxy/c/job/detail.json"); httppost.setHeader("Content-Type", "application/json; charset=UTF-8"); httppost.setHeader("Accept-Encoding","gzip"); byte[] bgzip =gzip(foo); System.out.println(bgzip.length); InputStreamEntity httpentity = new InputStreamEntity(new ByteArrayInputStream(bgzip), bgzip.length); httpentity.setChunked(true); httppost.setEntity(httpentity); lr.start_transaction("发送"); response=httpclient.execute(httppost); httppost.setEntity(httpentity); int httpCode = response.getStatusLine().getStatusCode(); System.out.println(httpCode); HttpEntity entity = response.getEntity(); Header header = response.getFirstHeader("content-type"); System.out.println(header); InputStream inputStream = entity.getContent(); inputStream=new GZIPInputStream(inputStream); lr.end_transaction("发送", lr.AUTO); InputStreamReader isr = new InputStreamReader(inputStream, "utf-8"); // 设置读取流的编码格式,自定义编码 BufferedReader br = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); String tempbf; while ((tempbf = br.readLine()) != null) { sb.append(tempbf); sb.append("\r\n"); } String html = sb.toString(); System.out.println(html); isr.close(); inputStream.close(); return 0; }//end of action public static byte[] gzip(String foo){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); GZIPOutputStream gzos = null; try { gzos = new GZIPOutputStream(baos); gzos.write(foo.getBytes("UTF-8")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (gzos != null) try { gzos.close(); } catch (IOException ignore) {}; } return baos.toByteArray(); } public int end() throws Throwable { return 0; }//end of end }