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
}

loadrunner 发送gzip压缩json格式(转),布布扣,bubuko.com

时间: 2024-10-26 21:12:23

loadrunner 发送gzip压缩json格式(转)的相关文章

Loadrunner:LR提交JSON格式的POST请求

场景: 影视分发:影院客户端向管理平台发起取任务的操作,取任务接口getDispatchTask,为JSON格式的POST请求 1 Action() 2 { 3 web_custom_request("getdispatch", 4 "URL=http://rct.chinanetcenter.com:60009/rctItfAgent/dispatch/getDispatchTask", //请求的目的地址 5 "Method=POST", /

linux shell中curl 发送post请求json格式问题

今天在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来 如下 curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} http://api.baidu.com 变量没有做解析 原来在shell中,"" '还是有很大区别的, 把修改后的curl发送贴出 atime=`dat

requests(一): 发送一个json格式的post请求

总结一下问题所在 ,今天我也遇到这个问题了,所以请教了一下下列博文的博主,小简姐姐 总结:我们平常请求都是字典格式 ,有些post接口可能限制只能json格式,所以你请求时候 data=data ,会请求失败 json=data ,请求参数是json格式.....成长道路的小白,遇到问题就记录下,希望能帮到大家 今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属. 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应. 用python的r

符合json格式要求的字符串转化为json字符串

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&g

Loadrunner接口测试-发送JSON格式的请求

昨天接到了一个测试接口的任务,接口的请求参数和返回结果均是JSON字符串,先是使用了函数web_submit_date,执行时报错,查询资料没找到原因,不知道是不是不支持JSON串,有兴趣的可以自己试下.然后尝试用web_custom_request函数,执行后返回的结果都正确,ok,就它了. web_custom_request("refund",                           //VuGen中树形视图中显示的名称         "Url=http:

Asp.net WebAPi gzip压缩和json格式化

现在webapi越来越流行了,很多时候它都用来做接口返回json格式的数据,webapi原本是根据客户端的类型动态序列化为json和xml的,但实际很多时候我们都是序列化为json的,所以webapi的序列化比我们用ServiceStack.Text序列化要多花费一些时间,还有如果返回的数据量比较大那么我们应该启动gzip和deflate压缩.而这些实现都不得影响现有的code, 我个人喜欢同时也是习惯用特性来完成压缩和json格式化. 1.压缩的code: namespace MvcApp {

HTTP POST 发送JSON格式数据(解决Expect:100-continue 问题)

最近在开发的一个项目,需要涉及到使用Http请求发送比较大的数据,研究了挺长时间,遇到问题,解决问题,在此分享给大家 1.由于数据量较大,所以采用POST方式 传输数据(POST理论上不限制数据大小,但不同服务器都会有相应的默认设置限制数据大小) 2.由于项目需要,使用JSON格式的数据 代码示例: JAVA 版,使用Apache的commons-httpClient包 发送http请求,代码仅供参考,发送请求方式可根据自己需要进行修改 import org.apache.commons.htt

[SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据

通过SoapUI发送POST请求,请求的body是JSON格式的数据: data={"currentDate":"2015-06-19","reset":true} 而且通过Fiddler抓取页面报文 Content-Type 是 application/x-www-form-urlencoded 一开始我将Content-Type = application/x-www-form-urlencoded 加到Header 里面. SoapUI里面

android客户端向服务器发送图片和文字,类似于发微博。能用json格式发送吗?

============问题描述============ 能的话,请问怎么将图片转成json格式.最好有源码.谢谢 ============解决方案1============ 显然可以,把图片和语音byte 数据打成base64当字符串发出去,组装成json是可以的. 只是这样流量太耗了,一般图片和语音都用byte精简指令发送也就是用tcp socket通信,不用HTTP. ============解决方案2============ 引用 3 楼 u010665680 的回复: Quote: 引