2种方法,法1从数据库读取参数值列表,法2从文件读取。

1.法1从数据库读取参数值列表

1.1 把查询的返回值当做参数值列表

添加jdbc型sampler,并把查询结果映射为变量。

jmeter 调用 python jmeter 调用动态库_压力测试

注意:用了once only控制器。如果不加once only控制器,jmeter默认每个线程每次执行都执行一遍当前sampler,其实只用查询一次,后续迭代使用给个值即可。

1.2 验证查询中使用动态sql

注意:

  1. query type使用动态sql,选择Prepared Select Statement.
  2. 变量值引用了上一步定义的变量。注意:名称有点差异,下一步讲。
  3. Parameter Type:设为varchar,这里是基于mysql的数据类型的。一开始以为用java的,写的String,报错。

1.3 从计数器和组合变量逐条获取参数值

加了Counter控制器。否则,默认只取第1条,这样sql重复执行n边,用的DB的buffer,不能测试性能。
注意:

  1. Maximum value:${testrecordid_#},表示变量值查询的条数。
  2. Exported Variable Name:计数器的变量名,在动态sql中被引用。
  3. 回去看动态sql的变量值:${testrecordid_1},表示结果集的第1条记录;${_V(testrecordid${N})}表结果集的第N条记录,因为N被技术其控制递增,所以实现的参数值遍历。

1.4 验证结果

第2、3次执行,入参值是不一样的。

jmeter 调用 python jmeter 调用动态库_jmeter 调用 python_02


jmeter 调用 python jmeter 调用动态库_jmeter_03

2.法2从csv文件读取参数值列表

2.1.从CSV Data Set config读取文件

  1. 添加CSV Data Set Config组件,选择csv文件。可以为不同的线程设置不同的文件,用到${__threadNum}(表线程号)内置函数区分文件。
  2. 把取值映射为变量,支持多个字段对应多个变量。

2.2.验证查询从变量取值,且自动递进

直接使用原始变量名${testrecordid}。

jmeter 调用 python jmeter 调用动态库_压力测试_04


自动迭代,第1、2次测试的参数值不同。

ps:真正使用时,建议使用csv读取方式,更简便,也减轻对db的压力。