我们可以看到大部分基于JMeter分布式压测平台大多数都将JMeter测试的测试数据保存在CSV文件中。即使CSV文件是一个非常好的选择—通过让测试数据远离测试脚本,当你在分布式模式下使用JMeter时,它变得非常难以管理。你可能知道,JMeter只是在所有从压测服务器中执行相同的jmx文件。因此,CSV文件,这是你的JMeter测试的依赖,也应该由您复制到所有的slave节点,有时,slave1使用的测试数据不应该被slave2使用。在这种情况下,你需要将CSV文件分割为每个slave服务器的多个文件,并将它们移动到对应压测服务器,以成功运行测试。
在JMeter分布式模式测试中,Redis是一个选择,因为它可以为所有slave提供数据。
什么是RedisREmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的key-value存储系统,是跨平台的非关系型数据库。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的API。Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sortedsets)等类型。
对比测试CSVDataSetconfig首先,我创建了一个包含,条记录的非常简单的CSV文件。
voidcreateCsvDate()throwsFileNotFoundException,UnsupportedEncodingException{intmaximum=0;PrintWriterwriter=newPrintWriter("d:/redis-csv-