JMETER 使用JDBC查找数据作为参数

有些情况下我们需要读取平台中的用户作为参数,比如用户ID作为参数进行压力测试,我们可以使用CSV文件,如果这样做,需要每一次

都构造文件,比较麻烦。如果可以查询数据库,将查出的数据作为参数循环传入的话就很方便了,JMETER 可以很方便的实现这个。

下面就介绍一下做法:

为了简单实现:

我实现的目标是:

1.从数据库读出数据。

2.把这些数据循环写到文件中。

1.配置驱动

在测试计划处选取jar文件,这里我选择mysql的驱动程序。

2.配置 JDBC连接池

红框表示连接池名称,之后的执行查询操作需要使用到这个连接池名称。

3.配置一个jdbc request 查询用户并把用户id作为变量存储到用户上下文变量中。

1.填写数据库连接池名称。

2.填写需要执行的SQL语句,我们查询数用户表的ID作为参数。

3.Variable names 填写变量名前缀。

实际的变量存储 是 变量前缀名 +_ + 索引

用户可以通过索引获取变量,下文还有介绍,比如上面的定义,我们可以通过代码 获取这个变量,比如 vars.get("uuid_" + index)。

4.获取用户总数并放入变量中。

我们通过获取用户的总数,这个的作用是我们可以获取这个变量数据,决定之后循环的次数。

我们获取用户的总数,并用来控制下一步循环的次数。

5.执行循环获取用户的ID数据作为参数

控制循环的次数,这里通过变量表达式获取用户的总数,应为用户的总数只有一个值,所以可以通过 count_1 来获取这个值。

增加计数器,用来读取变量。计数器从1开始,每次迭代增加1。

读取变量

增加一个beanshell取样器。

这个作用是:

1.读取计数器

2.通过变量读取之前的用户id 数据。

3.将读取的数据写入到文件中。

我们执行后,查看生成的文件。

这个文件和数据库的数据一致,这样就实现类读取数据的数据实现参数化。

上面的例子中,我们可以通过 变量前缀加 索引获取结果,还有一种方法也是可以获取变量的。

我们可以使用:

Result Variable name 来做。

上面修改如下:

Result Variable name 填写ids

计数器从0开始。

关键的代码如下:

vars.get("ids").get(index).get("id_").toString();

我们可以使用调试采样器,来显示上下文的变量数据,使用非常方便。

效果如下:

有了调试器,我们可以很方便的查看上下文的变量。

原文地址:https://www.cnblogs.com/yg_zhang/p/10979799.html