目前配合 csv 的文件,传递参数。post 请求体我引用了变量,但是可以看三图中,发出的请求是同一个值组成的数组
目前一列的数据量很大,没办法整很多列。要求是要从 5 万个值中随机取 2000 个出来组成数组,能从一列中提取出来的办法么
谢谢!
或者给个方案,现在有已知的 5W 个数,让我能够在请求的时候传参能拿到 5W 个数中的 2000 个数,每次请求的值不一样~
自己用 beanshell 写一个不出现重复的随机数方法,生成 2000 个随机数,然后用这 2 千个随机数在 5 万行中取值
jmeter 组件没有能实现这个需求的,只能自己用 beanshell 写 java 代码。
${CSVRead(/home/item7.txt,${Random(0,50000,)}) 偷懒解决法,读文件随机从 5w 个值取,传参 2000 个
自己写 beanshell 比较合适,语法比较简单 链接 https://blog.csdn.net/hujyhfwfh2/article/details/80862134
首先,题主的组成数组的写法是非常低效和代码冗余的。
推荐写法:
(1)并发压力小的话,实时创建数据:用 Beanshell 实现不重复的随机数组
参考:Java 生成不重复的随机数组的方法
(2)并发压力大的话,提前生成数据:每列为 2000 个整数的数组,然后自定义非英文逗号分隔符
参考:JMeter - CSV Data 数据中带有逗号解决方法
还有一个办法是用__FileToString
把文件读取成字符串,再 split 处理下。
你的需求是每个迭代都要一次性产生 2000 个 id 放到请求体的列表中进行请求;而 JMeter 组件参数化的逻辑是每个迭代取一行数据不能取多行。
需要区分下。
beanshell 的话我这边是需要去学习下,这边并发压力挺大的。我的数组需要传 2000 个值的,我得写两千列而且这些数据还是随机从 5W 个里面取的,我不可能自己去造数组 ,只能让他去从 5W 个数里面去取值造数组,csvdata 的这种搞不了~