windows版jmeter的body data如何用\n作为“换行”
前段时间用jmeter进行某个web接口性能测试的时候遇到一个问题,body data中的换行的内容发送后,通过抓包发现总是发送"0D0A"即"\r\n"(wireshark—〉Hex Dump),因为接口中有一个参数需要测试并发多条数据,每个数据规定用"\n"分隔,所以一直没有找到好方法模拟,51testting问了也没人答,google了N久也没有好办法,今天有时间重新试了几次,终于找到方法了。
我首先尝试的办法是不用body data,改用parameters,增加一条detail,然后把原来在body data的内容贴进去,大概如下
------------------------------c2549808e0df Content-Disposition: form-data; name="em" product=deepscan uv=4 et=1 en=1 md5s=a1d7e3adcdb07ddb6f42386 a1d7e3adcdb07ddb6f42387 ------------------------------c2549808e0df--
运行测试之后发现原来数据中的换行都变成"\n"了,包括之前一直无法解决的md5s也是用"\n"来换行啦,因为这个接口要求除了md5s这个参数的换行要用"\n",其他地方的换行还是要用"\r\n",所以这样并不能解决问题,但是起码知道原来windows版jmeter也是可以发送"\n"作为换行的了,因为"\n"是个转义字符,所以便从转义方向考虑,只要能把"\n"转义后作为数据发送出去就可以了,google后发现jmeter有转义字符相关的函数:
__char(将一串数字翻译成Unicode字符)
__unescape(用于反转义Java-escaped字符串)
__unescapeHtml(用于反转义一个包含HTML字符串,将其变为包含实际Unicode字符的字符串)
__escapeHtml(用于转义HTML字符串中的字符)
最终找到问题的解决办法,就是一句:
${__unescape(\n)}或${__char(0xA)}
所以只要把body data中需要这样处理的内容修改一下就就可以了,即
Content-Disposition: form-data; name="em" product=deepscan uv=4 et=1 en=1 md5s=a1d7e3adcdb07ddb6f42386${__unescape(\n)}a1d7e3adcdb07ddb6f42387 ------------------------------c2549808e0df--
作者:肥狐
出处:http://idbeta.cnblogs.com/
本博客内除了标题带[转]字样外的所有文章,均采用“署名-非商业性使用-禁止演绎 2.5 中国大陆”授权,任何违反本协议的行为均属于非法行为。如需非商业性转载,必须保留此段声明,且在文章页面明显位置给出原文连接。如需商业性转载出版,请直接和我联系。
如果您看了本篇博客,觉得对您有所收获,请点击右下方的【推荐】,同时欢迎您【关注我】
出处:http://idbeta.cnblogs.com/
本博客内除了标题带[转]字样外的所有文章,均采用“署名-非商业性使用-禁止演绎 2.5 中国大陆”授权,任何违反本协议的行为均属于非法行为。如需非商业性转载,必须保留此段声明,且在文章页面明显位置给出原文连接。如需商业性转载出版,请直接和我联系。
如果您看了本篇博客,觉得对您有所收获,请点击右下方的【推荐】,同时欢迎您【关注我】