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


目录
相关文章
|
Java 关系型数据库 MySQL
IDEA(Community版)数据库插件Database Navigator的安装与使用教程
IDEA(Community版)数据库插件Database Navigator的安装与使用教程
IDEA(Community版)数据库插件Database Navigator的安装与使用教程
|
人工智能 自然语言处理 数据可视化
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
3385 1
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1724 9
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能应用
本文探讨了人工智能在软件测试中的应用,包括自动化测试、缺陷预测和测试用例生成等方面。通过实际案例分析,展示了如何利用AI技术提高软件测试的效率和准确性,并讨论了未来的发展趋势。
898 27
|
JSON 安全 API
CMS识别
【10月更文挑战第03天】
439 6
|
芯片
EDA设计:原理、实践与代码深度解析
EDA设计:原理、实践与代码深度解析
1104 2
|
测试技术 Linux Python
Jmeter如何生成合法的身份证号
Jmeter生成身份证号的三种方式:1.函数助手;2.CSV Data Set Config;3.Python+Beanshell;
Jmeter如何生成合法的身份证号
|
数据采集 搜索推荐 安全
代理IP三个常见的应用场景
代理IP在大数据时代扮演关键角色,常用于数据收集(爬虫避免被目标网站封锁)、社交媒体推广(多账号运营防止关联)和搜索引擎优化(避免频繁请求被屏蔽)。通过代理服务器,实现网络信息中转,确保业务的高效、安全执行。