⏩很多人在使用 jmeter 做接口测试、自动化测试和性能测试时,都喜欢用 CSV 数据文件设置功能,来读取准备好的测试数据。虽然这种方法并不是最优方案,在我们的性能测试课程中,讲解了更优的方案,但是,没有上过我们的课的测试人员,还是很普遍的使用 CSV 方式。
今天,就来给大家讲一个用 CSV 准备测试数据的一个巨坑和解决办法。
jmeter 做测试,要想读取准备好的测试数据文件,如果你只想到 CSV 这一种方法,那就用‘CSV Data Set Config’这个元件,千万不要去用 csvRead 函数,用这个函数,你被坑死了,请别说我没提醒你。
但是,使用‘CSV Data Set Config’这个元件,每次只能从第 1 行数据开始读取,或忽略首行从第 2 行开始,没有办法从不定行开始。
每次从第 1 行开始取值,在日常低并发的性能测试中,是没有任何问题的,因为此时你只需要运行一个 jmeter 就可以, 但是,如果你想做高并发的性能测试,需要有多个 jmeter 同时运行,构成分布式来向服务器发起请求,这时候就有问题了。
因为,采用分布式,在多台机器上同时运行 jmeter,每台机器都会从第 1 行开始读取你准备的测试文件,那么,就会出现同时多个线程使用同一个测试数据向服务器发起请求,这很可能导致你们的被测试服务出现各种异常。