51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8830|回复: 14
打印 上一主题 下一主题

[求助] loadrunner发送Http post中,body为经过压缩的byte字节流,请问这里该如何模拟?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-5-2 16:09:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
【求助】测试场景为手机向服务器端post经过压缩的byte字节流,请问压缩后的byte字节流在loadrunner脚本中该如何模拟?请大神们指点下,非常感谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-28 18:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]测试团长

    13#
    发表于 2016-3-23 19:12:53 | 只看该作者
    本帖最后由 archonwang 于 2016-3-24 09:53 编辑

    面临同样的问题,不过我的是文件转换为base64 string 再post出去。问下有知道怎么写这段脚本的么?

    大体思路清楚,
    1. 读取本地文件位置,读取文件;
    2. 将文件转换为base64 string流形式再post出去;

    大致要输出的流形式如下:
            web_custom_request("UploadFile",
                    "URL=http://192.168.17.112/api/File/UploadFile",
                    "Method=POST",
                    "Resource=0",
                    "RecContentType=application/json",
                    "Referer=",
                    "Snapshot=t4.inf",
                    "Mode=HTML",
                    "EncType=application/json",
                    "Body={\r\n  \"Passport\": \"QfrU2SFIdJ5Y6k9LPRXFGymU2EdN0B/0l6xRIWC0/3vb4imBnwdw12e8BwS0jxwl0Gi+36cXi+0LinHl8a4nOnyQlnzwlEEv4/KzLkTeE6Xv8juLNvNZ4H0yPofTNugHNfJVkEZwxS+7SzNNdn4wGLgrv1eieqUSKpojNEV/cxw=\",\r\n  \"FileName\": \"testdocx-CH.docx\",\r\n  \"Data\": \"UEsDBBQABgAIAAAAIQAY+"
                    "WgijQEAAK0GAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0VctOwzAQvCPxD5GvKHHLASGUpAceR6hE+QDX3rQWiW3Z29ffs0nbCCGaiJZcIkXRzszOzm7SybYqozX4oK3J2DgZsQiMtEqbRcY+Zi/xPYsCCqNEaQ1kbAeBTfLrq3S2cxAiqjYhY0tE98B5kEuoREisA0NfCusrgfTqF9wJ+SkWwG9HozsurUEwGGONwfL0jQR4rSCaCo+"
                    "voiIevrFe8cJaNBYhJATHosd9XU2dMeFcqaVAEs7XRv0gjW1RaAnKylVFVEkN57yVEAK1VpVJC31TQ/M8fYJCrEqMnrekbW+HhzL8jfXQZkKVjbKw1C50MHS3dVB20p62u26YM9xpkSuhzVH/SR1mVc3Bk6//P6YWuldEwF05RFD2uL30YNRAST0id0mgeU29dYHTVlw8BKg3QIGKaWEceNTQRvhkBAIgUgAGWNQjclf7zbFAOj7Am+f4Yg8amF7Kgg7STMxLuJjvl/t0gO4VsYH5+2DufwPvEtLmT1p/hhnHs1lX/5I63vxs8i8AAAD//"
                    "wMAUEsDBBQABgAIAAAAIQAekRq38wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                    "AABkb2NQcm9wcy9jb3JlLnhtbFBLAQItABQABgAIAAAAIQCc6zcbSwIAAEoIAAASAAAAAAAAAAAAAAAAAGgwAAB3b3JkL2ZvbnRUYWJsZS54bWxQSwECLQAUAAYACAAAACEAHOvHN3oBAADKAgAAEAAAAAAAAAAAAAAAAADjMgAAZG9jUHJvcHMvYXBwLnhtbFBLBQYAAAAADgAOAIADAACTNQAAAAA=\"\r\n}",
                    LAST);

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2016-3-11 11:18:56 | 只看该作者
    这么久都没有一个答案,给一个java代码的实现,C的类似
              String htmlBody;   
              htmlBody = "Body=testtesttest";
               web.custom_request("reportEvents",
                    "Method=POST",
                    new String[]{
                        "URL=http://127.0.0.1:8080/clientRequest/reportEvents",
                        "EncType=multipart/form-data",
                        "ContentEncoding=gzip",
                         htmlBody,
                        "TargetFrame=",
                    "LAST"}
                    );  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-9 15:24
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2015-1-4 14:53:09 | 只看该作者
    已经放弃对这个问题的探索了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-9 15:24
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2015-1-4 10:44:45 | 只看该作者
    我也遇到了这个问题。body中传输的是经过gzip压缩的json字符串。用web_custom_request()不知道怎么把字节传入。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2013-5-7 16:02:59 | 只看该作者
    回复 9# wsbuaa


        嗯,这样尝试过,我在lr里用java代码模拟了这个过程,手动单次执行脚本需要230ms,并发测试,最大TPS也就200多。但是用C发送原始的json串,手动执行需要250ms,并发测试,最大TPS可以达到10000+,响应时间平均为4ms,不明白为什么一并发,两者的差别这么大的?
      
       所以想在C里实现将json串压缩发送的过程。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2013-5-7 15:55:30 | 只看该作者
    不行就让开发帮忙,把客户端处理数据的函数之类融到脚本里面
    你只要准备测试所用的原始数据就好了
    几年前做一个机顶盒的性能测试是这么弄的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2013-5-7 13:30:48 | 只看该作者
    回复 7# 云层


        我们的场景是:由于发送的json串比较大,所以开发在发送前使用gzip压缩以提高传输速率,服务器端进行解压,然后再解析,如果解析正确,会返回给客户端一个200 http 状态。   而你提到的使用apache做压缩,场景应该是:浏览器端接收到服务器的响应(该响应经过了压缩),然后浏览器端解压再读取。  这两种场景是不一样的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2013-5-7 13:20:57 | 只看该作者
    其实json你的压缩应该让apache服务器来做的,而不是应该用代码来做的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2013-5-7 13:17:03 | 只看该作者
    回复 5# wsbuaa

    原始的body内容为一个json串,程序在发送前将json串经过gzip压缩,变成了byte字节流,所以我的脚本里写的是byte字节流,但是这样使用lr发送,服务器端不能正确解析。因此想请教下在lr中,如果模拟发送byte字节流的情况?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-5-7 13:08:40 | 只看该作者
    是不是内容里面存在某种校验之类的?跟开发人员沟通一下发送数据是什么格式好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2013-5-7 09:49:57 | 只看该作者
    回复 2# 云层


        我使用的是web_custom_request函数,但是body里要填写byte字节流,我将字节流的字符串形式填写进去,服务器端无法正常读取,另外,将body内容参数化或者使用一个变量代替都不行。下面是我的lr脚本:

    web_custom_request("web_custom_request",
                    "URL=http://10.200.34.110:9999",
                    "Method=POST",
                    "TargetFrame=",
                    "Resource=0",
                    "RecContentType=application/json",
                    "Referer=",
                    "Mode=HTTP",
                    "EncType=application/json",
                   
                
             "Body="x\x9c\xadU\xdb\x8e\xd30\x10\xfd\x95\xc8O\x80\xda\x12\xc7\x97&\x91\xf6\xa1\xf4\x86@\x15\x82e\xc5\xc3\xaa\xaa\xdc\xd8\xdbZu\xe3\xe0\\\xa0\xac\xfa\xef\xd8N\x97\xed\xc2\x02eK\x1e\xaav2\x9e3\xe7\xcc\xf1\xf4\x16,5\xdf\x81\xf4\x16(V\xe7\xd9\x1a\xa4\xd7\xb7\x80\xb3J\x80\x14D!D\xdd\x10w#\x04:\xa0\x92[\x17\x0biJh\x1aQ\x1b)EYJ\x9d/$\xb7q\x04#\x8c\xc2>\x8d\x87\x93\x18\x0f!\x8c\x13:\xc4(\x1e\xc4\t\xc6\x03\x82\t\xd8\xcf;@l\x1a_\x9fD\x11\x1ec\x9b2I"\x84\xe0d\x18N\xa2\xf1`<\x8c\x11z\x85)\x9d\xf8$_v\xa9\xf5\xc6B\x15FfmG\xa1\xfd\xa5X\xbe\xaa\xd9\xca\x05D\xbeR\xb2\\\xbb\xfeJ\x90BD)M\x12BB\x1a\xd3\x0e\xc8\x99oy\xaa\xf5J\x89`\x90s\xa3%\x0f.Go\x83\x91h\x84\xd2\x05\xd8w\x0e8\xdb\xba\x94\x99\xad\xc2k\x90F(\xb4O\x070S\xc9\xb2\xb2/\x87B\xc9\\\x04#K\xf6$tH`\xfc\x03}\xb6\x0b^\x0b[*\xf8$\x95\n\xa6:x\x97?\x0e\x0b!\xb4:=\x19\x96RL\x08\xfa3\xec\xdc\x0f\xa1\x11y\xe5\x15~0\xc0\xbf\xce\xe4\xd8\x02\x98\xa48q}?b\x14\x96e\xb6)\x9b\xcdV\xf6U\xa1\xd8\xce\xf3\xfdW0\xc5\x96B\xd9T\xcf\xe7\'l\x12\xfe\x1b\xb6\x97\x97\xf8\xa1\x9e\xc5\x99\xc0\x93p\xbdi\xefp\x11z\x12\xee\x1d\xfdl\xcd\x8aJ\x18\xf8?Zq\x0e\x83\xf4,\r\xfa)\xc6\'\x01\xaf\xdc\xd8\x8e\x81Q\xfct\x11\x94\xbb\xae\xf0\xacN\xac\xf1\xad\x8c[\x99\xfb\xfc\xb3\xcc\x7f\xb7\xffxmX\xe5.g\n\xa3\xd8\xa1V\xb2\x91\x95\x14\xf6N^_\x83Lo{L\xa9\x9d({\x0c\xf5*\xc3\xb2\x8d0=.\xb6\xba7c2\x1f\xb4\xd9;\xd0\xb1\x87\xe7\xf3\xc7\x88\xd8\xeb\xda\x01k\xc1\xb80n?k[\x17\x1c\x96XK\xd22X\x94\xf5\xb2\xda\x15\xee\xe4\xd5\xec\xe3\xa5[\x95\x16\xa8]\x13\xbf\xef\xc0\xa6eE\xed\xca}\x98%\x11\x1d\xbf\xe9^\x06F4\x01\t\x9e5D=w\xd5\x8bb#vn\x8f\xa0/_oF\x93\xd8}\xce\xde_\\\xb8\xbd\xcf7\x8bF\x98\xd2S\x07\xb0\x17\xb6\xf9\xbf\xc4\xb8h\xec\xd6n\x05f\xe1\x89\x8f=gD\xa9U\xdd*\x0bp\x1c\xbe\x88}\xb8%\xec$\x9a\xbeDSGA\xd7ye\\\x93W\x8e\xb8.\x8f:\x88z\xb0[\x17NSg\x9bC|\x91i\xee\x84q!\xc9\xb7\x9c\xb8]\xba\x0c\xfb\x9c\xdf\xdc`\x9a\xd9/(\x82x\x99,E\x9f\x8b\x08\xd2\x84Cv\xcfck\x0f;3Z\xfa\x07;|\xd3\xb9-\x17\xb6\x8a\x1c\xa6p? #>/Z\xd3`\xf7g\x941c\xa4\x9b\xe4Q\xca\x83\x9d\xee\x18\xadY\x9e{\x90\x81\x9f\x1b\xd8\xef\xbf\x03\xa6\x06$E",
                   
                    LAST);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2013-5-4 18:13:13 | 只看该作者
    web_custom_request
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-7 05:38 , Processed in 0.088768 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表