通过案例带你轻松玩转JMeter连载(21)

2021-11-02 17:36:21 浏览数 (1)

4.2通过MySQL参数化步骤 JMeter提供对数据库的访问,我们可以用数据库来进行参数化。 1)在MySQL中的某个数据库中建立表,在表中插入参数化的数据,如图25所示。

图25 MySQL存储的参数化数据

同样,确保使用这些用户名和密码均可以登录成功的。 2)把访问MySQL的JDBC的jar包mysql-connector-java-5.1.7-bin.jar放入%JMETER_HOME% libext目录下,重新启动JMeter。 3)右键点击循环控制器,在弹出菜单中选择“添加->配置元件->JDBC Connection Configuration”。如图26进行设置。

图26 JDBC Connection Configuration

  • Variable Name for create pool输入:data_ebusiness。

在这个元件的上部分设置中,仅需要设置这里,其他使用默认值即可,关键在于下面的设置。

  • Database URL:jdbc:mysql://localhost:3306/php_ebusiness。其中localhost为MySQL所在的服务器所在的机器名或IP地址;3306为MySQL所占用的端口,默认就是3306;php_business为数据库名。
  • JDBC Driver Class:由于我们用的是MySQL,这里选择com.mysql.jdbc.Driver。在这里通过下拉条,我们可以看到JMeter支持MySQL、Oracle、SQL Server、SQLite等多个主流的数据库。
  • Username为数据库的用户名:root。
  • Password为数据库的密码:123456。

2)右键点击循环控制器,在弹出菜单中选择“添加->取样器->JDBC Request”。如图27进行设置。

图27 JDBC Request

  • Variable Name of Pool declared in JDBC Connection Configuration中的设置的字符串必须同JDBC Connection Configuration中的Variable Name for create pool保持一致,即:data_ebusiness。
  • Query Type选择:Select Statement。下面输入查询语句:select username,password

from user;。

  • Result variable name随便起一个名字:list。
  • 其他使用默认值即可。

3)运行后,在查看结果树中获得。

代码语言:javascript复制
list=[{password=654321, username=jerry}, {password=123456, username=cindy}, 
{password=zxcvb, username=peter}, {password=knyzh158, username=linda}, 
{password=qwert, username=susan}]

下面我们都过对变量list进行提取获得用户名和密码。 4)右键点击循环控制器,选择“添加->后置处理器->正则表达式提取器”。把它拖到JDBC Request下面。按照图28进行设置。

图28 通过MySQL获取用户名和密码

  • 修改名称为:通过MySQL获取用户名和密码。
  • Apply to:选择JMeter Variable Name to use:list
  • 引用名称为:pram。
  • 正则表达式为:{password=(.?), username=(.?)}。
  • 模板为:12,表示正则表达式中有2个参数。
  • 匹配数字为:0。不是随机获得匹配项。
  • 缺省值为:NULL。

5)进入商品列表HTTP请求元件,用户名输入:{pram_g2},密码输入:{__digest(SHA-256,${pram_g1},,,)}。 6)运行,结果正常。检查每一个变量pram,从参数list中随机获取值。 检查一下调试取样器中的变量pram参数。

代码语言:javascript复制
pram=qwertsusan
pram_g=2
pram_g0={password=qwert, username=susan}
pram_g1=qwert
pram_g2=susan

关于JDBC 连接设置和JDBC Request我们将在第5.4-2节和第5.5-1节中详细介绍。 到此,建立登录功能的接口测试代码完毕,保存脚本为ebussines_interface.jmx。如图29所示。

图29 ebussines_interface.jmx

图30 ebussines_login.jmx

然后在“CSV Data Set Config参数化”或“JDBC参数化”保留一个(我这里保留“CSV Data Set Config参数化”);“登录响应断言”或“登录BeanShell断言”保留一个(我这里保留“登录响应断言”);“商品列表信息响应断言”或“商品列表BeanShell断言”保留一个(我这里保留“商品列表BeanShell断言”);去掉商品列表(new)HTTP请求及其下面的子节点。保存为ebussines_login.jmx后保证运行正常。如图30所示。

0 人点赞