51Testing软件测试论坛

标题: loadrunner发送Http post中,body为经过压缩的byte字节流,请问这里该如何模拟? [打印本页]

作者: sshd    时间: 2013-5-2 16:09
标题: loadrunner发送Http post中,body为经过压缩的byte字节流,请问这里该如何模拟?
【求助】测试场景为手机向服务器端post经过压缩的byte字节流,请问压缩后的byte字节流在loadrunner脚本中该如何模拟?请大神们指点下,非常感谢。
作者: 云层    时间: 2013-5-4 18:13
web_custom_request
作者: sshd    时间: 2013-5-7 09:49
回复 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);
作者: wsbuaa    时间: 2013-5-7 13:08
是不是内容里面存在某种校验之类的?跟开发人员沟通一下发送数据是什么格式好了
作者: sshd    时间: 2013-5-7 13:17
回复 5# wsbuaa

原始的body内容为一个json串,程序在发送前将json串经过gzip压缩,变成了byte字节流,所以我的脚本里写的是byte字节流,但是这样使用lr发送,服务器端不能正确解析。因此想请教下在lr中,如果模拟发送byte字节流的情况?
作者: 云层    时间: 2013-5-7 13:20
其实json你的压缩应该让apache服务器来做的,而不是应该用代码来做的
作者: sshd    时间: 2013-5-7 13:30
回复 7# 云层


    我们的场景是:由于发送的json串比较大,所以开发在发送前使用gzip压缩以提高传输速率,服务器端进行解压,然后再解析,如果解析正确,会返回给客户端一个200 http 状态。   而你提到的使用apache做压缩,场景应该是:浏览器端接收到服务器的响应(该响应经过了压缩),然后浏览器端解压再读取。  这两种场景是不一样的。
作者: wsbuaa    时间: 2013-5-7 15:55
不行就让开发帮忙,把客户端处理数据的函数之类融到脚本里面
你只要准备测试所用的原始数据就好了
几年前做一个机顶盒的性能测试是这么弄的
作者: sshd    时间: 2013-5-7 16:02
回复 9# wsbuaa


    嗯,这样尝试过,我在lr里用java代码模拟了这个过程,手动单次执行脚本需要230ms,并发测试,最大TPS也就200多。但是用C发送原始的json串,手动执行需要250ms,并发测试,最大TPS可以达到10000+,响应时间平均为4ms,不明白为什么一并发,两者的差别这么大的?
  
   所以想在C里实现将json串压缩发送的过程。
作者: lin_lanfen    时间: 2015-1-4 10:44
我也遇到了这个问题。body中传输的是经过gzip压缩的json字符串。用web_custom_request()不知道怎么把字节传入。
作者: lin_lanfen    时间: 2015-1-4 14:53
已经放弃对这个问题的探索了。
作者: 在路上!!    时间: 2016-3-11 11:18
这么久都没有一个答案,给一个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"}
                );  

作者: archonwang    时间: 2016-3-23 19:12
本帖最后由 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);






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2