jmeter之csv参数化踩坑

简介: jmeter性能测试中踩过的坑记录一下

需要压测influxdb的写性能


行协议数据

行协议数据时间可以不填,默认为当前时间

指标集名称,标签键=标签值,标签键2=标签值2 指标名=指标值,指标名2=指标值2 时间

例子:

cpu,host=jydubuntu,os=linux free=200i,num=1 1607085812754755000

准备数据样例如下:

每一行作为一个数据包(在influxdb中,该行作为一个数据点)

DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
DDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true

csv数据文件配置


看请求内容,已经达到我的要求


接下来扩展请求内容,每行包含多个数据点,数据点之间需要有换行符(\n),才能被解析

准备数据如下,注意每一行我在中间都添加了\n

DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
DDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true

看请求内容,并没有达到我的要求,只发了一条数据

这样好了,我把数据写成一行,分割符换个其它的字符串,然后每个请求内容\n还是保持不变

这是一行数据,通过AAAAAAAA分割,那么就是两条数据,

每条数据包含两个influxdb的点,通过\n分割

DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true

再看看请求,分割是正常的,但是我理想中这个\n是要换行数据的,但实际没有换行,还是不能行通



换种思路,数据还是多行,默认分割还是用\n,那就把数据点的分割符换成其它字符(AAAAAAAA)8个大写的字符

DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
DDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true


增加前置处理器试试,这里把AAAAAAAA替换成\n

String data=vars.get("data");
data=data.replaceAll("AAAAAAAA","\n");
vars.put("data",data);

看请求内容,是符合我要求的

目录
相关文章
|
6月前
|
测试技术 Linux Apache
掌握JMeter参数化技巧:通过CSV文件实现高效登录压测
在本文中,我们将探讨如何使用 Apache JMeter 通过 CSV 数据文件进行登录性能测试参数化。首先创建一个包含用户名和密码的 `users.csv` 文件。接着在 JMeter 中,创建测试计划,添加线程组,配置 CSV 数据集,设置文件路径、编码及变量名。然后,创建 HTTP 请求并添加参数,使用 `${username}` 和 `${password}` 引用 CSV 中的数据。最后,添加监听器如查看结果树和聚合报告以分析测试结果。通过这种方法,能更有效地模拟真实用户行为,提高测试覆盖率,助力性能瓶颈的发现和优化。
|
7月前
|
存储 NoSQL 测试技术
JMeter Redis 数据集 vs CSV 数据集性能对比
【2月更文挑战第27天】JMeter Redis 数据集 vs CSV 数据集性能对比
133 1
JMeter Redis 数据集 vs CSV 数据集性能对比
|
测试技术 数据安全/隐私保护
jmeter--全局参数设置与CSV数据导入
jmeter--全局参数设置与CSV数据导入
|
测试技术 数据安全/隐私保护
|
存储 文件存储
Jmeter之实现参数化的不同方式详解
Jmeter参数化定义:动态的获取、设置或生成数据,是一种由程序驱动代替人工驱动的数据设计方案,提高脚本的编写效率以及编写质量。适用场景:当提交的数据量较大时,每次修改太麻烦,可以使用参数化。 本文介绍实现参数化的4种方式:1、用户定义的变量;2、CSV数据文件设置;3、用户参数;4、函数:计数器函数/随机数/时间戳。。。
327 0
Jmeter之实现参数化的不同方式详解
|
Java 关系型数据库 MySQL
JMeter 参数化之利用JDBCConnectionConfiguration从数据库读取数据并关联变量
JMeter 参数化之利用JDBCConnectionConfiguration从数据库读取数据并关联变量
150 0