Jmeter--HTTP取样器使用数据库中数据进行测试

0x00  前提

    假设有URL为http://www.xxx.com/test/?p1=${p1}&p2={p2}

    MySQL数据库:host:192.168.0.199 , 账号:root ,密码:1234 ,数据库名:ver214

    表中值为:

    

    CREATE TABLE `test` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `par1` varchar(200) DEFAULT NULL,
    `par2` varchar(200) DEFAULT NULL,
    PRIMARY KEY (`id`)) 

0x01  创建Jmeter测试

    结构如图

    

   视图中组件的解释:

     线程组   

           JDBC Connection Configuration(数据库设置)

           JDBC Request

                      BeanShell PostProcessor

           循环控制器

                      计数器

                      HTTP请求

           察看结果树

0x02 配置数据库变量

0x03 设置BeanShell的后处理

    在这里的Script中获取并设置变量,在vars中的变量名为"cnt"

    vars.put("cnt", vars.getObject("obj_db").size();

0x04 配置循环

    设置循环次数为:${cnt}

0x05 配置计数器

    递增设置为:1

    设置引用变量名称:cnter

    这种逻辑控制器可以看做为for循环。可以类比成这个样子“for(int cnter = 0; cnter < ${cnt}; ++cnter}”

    使用方法为${cnter}

0x06 配置BeanShell前处理

    在测试的URL中需要获取2个表中字段par1,par2分别放到URL的p1,p2中做参数。

    vars.put("p1", vars.getObject("obj_db").get(${cnter}).get("par1")); 

    解释,获取obj_db这个数据表中第${cnter}行,“par1”列,并将它放在vars中的键值为p1。

0x07 配置HTTP取样器

   按照常规用法,只是在参数设置中如下:

    p1      ${p1}

    p2      ${p2}

   这里会自动从vars中获取键值为p1/p2的变量

0x08 结论

    这样做可以省事,直接读取数据库中,可以处理一些从数据看中获取数据的问题,另外在这里我知道了关于前后处置的异同。这种情况主要锻炼了Jmeter的变量设置和操作控制域的问题,满有意思的,记录下。当然这里还有关于线程的一些干扰需要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值