千万不要csv写入数据和csv读取数据在同一个线程组里面,并循环多次执行!!!
先大概描述一下我的场景:
我有2个接口,第一个接口会返回2个字段A和B,都需要保存到一个csv文件中,作为参数传给第二个接口。
我是都放在同一个线程组里,顺序是:
1、第一个接口请求
2、Beanshell脚本,将A和B字段的值写到csv文件中
3、从csv文件中读取字段A和B,并保存为2个变量,变量名分别为A和B
4、第二个接口请求,参数用到变量A和B
我是想循环多次调用的,比如3次,我预期csv文件中生成3行数据,并且3次第二个接口的调用都是取值正确并成功的,结果呢,一直有问题,一直在反复发生这2种情况:
1、第二个接口,变量A的请求数据一直是<EOF>
2、第二个接口,变量A取到的是第一行第一列的数据,这个是对的,但是变量B取到的是第3行第二列的数据
然后我就各种调整写入数据的Beanshell脚本,并且修改读取csv文件的各种参数配置,弄了一下午,还找同事来帮我一起看。我后来还想是不是写入数据太慢了,读取的太快了,加了延迟也不行。
我不想纠结了,我想着,另外一个线程组批量写入数据后,这个线程组直接去读取csv文件数据就好了。好了神奇的事情发生了,一切都正常了!
所以有没有大佬帮我解答一下,为啥会发生这样的情况呢?如果之后还是想实现这样的场景,我该如何去调整我的Jmeter脚本?