在PTS原生压测中,如果您需要构造动态变化的业务请求,可以通过参数化实现。在使用JMeter压测时,如果有同样的动态压测需求,建议您在JMeter脚本中添加Config Element:CSV Data Set Config,从CSV文件中读取参数。同时,PTS支持切分CSV文件,将CSV文件中的数据分配到每个压测引擎。
背景信息
CSV Data Set Config是JMeter官方提供的配置元件,用于读取CSV文件中的数据并将它们拆分为变量。适用于处理大量变量的场景。
如果上传的CSV文件在JMeter脚本中没有对应的CSV Data Set Config配置,则切分CSV文件时默认作为不包含表头(即变量名)的CSV文件切分。为方便操作,并避免数据被错误切分,建议您始终通过配置CSV Data Set Config使用CSV参数文件。
配置CSV参数文件
为构建动态变化的压测请求,需要在JMeter脚本中配置CSV文件。
例如,为测试同时有100人登录某网站时,该网站登录接口的性能表现如何,则需要构造100条不同的用户登录数据。操作步骤如下:
CSV文件切分
PTS自动根据场景并发数分配JMeter施压引擎。分配多个引擎时,PTS支持切分CSV文件,将CSV文件中的数据均匀分配到每个压测引擎。
如果数据条数不能完全均分,则部分引擎可能比其他引擎多一条数据。
包含文件头的CSV文件切分
当原CSV带文件头时,切分后的每个文件都会包含文件头,但保证数据不重复。
如上述示例文件切分到2个引擎时:
-
第1个文件内容为:
id,name 1,ali 2,pts
-
第2个文件内容为:
id,name 3,jmeter
不含文件头的CSV文件切分
如果CSV文件不包含文件头(第一行即为CSV数据),例如,文件“b.csv”内容如下:
1,ali
2,pts
3,jmeter
则需在JMeter中配置变量名,如下图所示:

此时如果选择切分CSV文件,切分后的文件也不包含文件头。如切分到2个引擎时:
- 第1个文件内容为:
1,ali 2,pts
- 第2个文件内容为:
3,jmeter
更多信息
更多CSV文件配置和使用说明,请参见JMeter官方文档。