jmeter踩坑之换行符

简介: 碰到一个换行符的问题,特此学习记录一下

背景

公司业务部署在阿里云,有用到influxdb,领导要求压测一下阿里云influxdb的写性能,以便确认线上配置是否需要升配


使用压测工具jmeter


准备脚本试运行

准备好了脚本,运行一下,没报错,数据已成功写入influxdb


>select*from cpu
name: cpu
time                free host  os     use
----                ---- ----  --     ---160691622037617621680   node1 ubuntu 10160691632029177604380   node1 ubuntu 10160691637693707216680   node1 ubuntu 10


更改请求运行报错

报错了,我就增加了一行数据,报错了,难道不支持发送多行数据吗


使用POSTMAN验证



可以看到,使用postman是支持发送多行数据的

>select*from mem
name: mem
time                free host  os     use
----                ---- ----  --     ---160691660383996570490   node1 ubuntu 11160691702479650735490   node1 ubuntu 11160691709844724217490   node1 ubuntu 11>select*from cpu
name: cpu
time                free host  os     use
----                ---- ----  --     ---160691622037617621680   node1 ubuntu 10160691632029177604380   node1 ubuntu 10160691637693707216680   node1 ubuntu 10160691702479650735480   node1 ubuntu 10160691709844724217480   node1 ubuntu 10


调试

那为什么使用jmeter发送多行数据不行,使用postman就可以呢?

使用wireshark抓包

postman发送数据时,抓包,发现第一行数据尾部多了个\n

jmeter发送数据时抓包,发现数据尾部多了个\r\n


通过抓包发现它们换行符不一样


注意,如果通过wireshark的HTTP追踪流是不好发现问题的


这个是jmeter的


这个是postman的


你会发现请求内容都是一样,分辨不出问题,这都是因为换行符被转义了,我开始排查的时候就是使用http的追踪流,没发现不一样的地方,所有这里要注意点


那么如何解决呢,我也是第一次碰到这个问题,所以Google了一下,找到以下办法

在数据尾部声明换行

${__unescape(\n)}


运行发现还是报错,抓包看下,发现尾部换行确实变成了\n,但是中间还是多出一个\r\n,怎么解决?


那就把数据写成一行试试 (注意,数据尾部不要按回车切换到下一行),果然成功了

问题解决

>select*from cpu,disk,mem limit2name: cpu
time                free host  os     use
----                ---- ----  --     ---160691622037617621680   node1 ubuntu 10160691632029177604380   node1 ubuntu 10name: disk
time                free host  os     use
----                ---- ----  --     ---160694377805817689090   node1 ubuntu 11160694379485306324990   node1 ubuntu 11name: mem
time                free host  os     use
----                ---- ----  --     ---160691660383996570490   node1 ubuntu 11160691702479650735490   node1 ubuntu 11


目录
相关文章
|
6月前
|
Java Apache
jmeter学习记录
jmeter学习记录
30 1
|
11月前
【JavaWeb学习】—特殊字符(二)
【JavaWeb学习】—特殊字符(二)
|
JavaScript Java Apache
java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html     java后台对前端输入的特殊字符进行转义   HTML: 常见的帮助类有2个:一个是spring的HtmlUtils,另外一个是apache.
2925 0
|
测试技术
软件测试面试题:LoadRunner脚本中出现乱码如何解决?
软件测试面试题:LoadRunner脚本中出现乱码如何解决?
128 0
|
测试技术
软件测试面试题:Jmeter怎么录制脚本,怎么过滤,线程组有哪些内容?
软件测试面试题:Jmeter怎么录制脚本,怎么过滤,线程组有哪些内容?
459 0
|
Java 编译器 API
Java小白踩坑录 - 字符 & 字符串(一)
Java小白踩坑录 - 字符 & 字符串(一)
98 0
Java小白踩坑录 - 字符 & 字符串(一)
|
人工智能 Java 编译器
Java小白踩坑录 - 字符 & 字符串(二)
Java小白踩坑录 - 字符 & 字符串(二)
96 0
|
索引 Python
Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略
Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略