• jmeter从数据库获取数据并作为变量传输


    最近一个项目是要先发一个邀请,生成一个邀请id,然后填写对应邀请再提交,这里就是后一个接口需要用到前一个接口生成的邀请id,但是第一个接口并没有返回一个邀请id,此时就无法用正则表达式提取返回结果中的邀请id了,所以只能从数据库中查询出邀请id传输到下一个接口中,因此,今天我们来看看jmeter从数据库获取数据并作为变量传输

    首先是用jmeter连接数据库,我这篇博客中(https://www.cnblogs.com/jasmine0627/p/9493314.html)已经做了详细讲解,因此这里不再重述

    1、添加JDBC Request,并设置相关信息

    ariable Name: 数据库连接池的名字,需要与上面配置的JDBC Connection Configuration中Variable Name Bound Pool的Variable Name相同 

    Query:填写的sql语句未尾不要加“;” 

    Parameter valus:参数值 

    Parameter types:参数类型,可参考:Javadoc for java.sql.Types 

    Variable names:保存sql语句返回结果的变量名 

    Result variable name:创建一个对象变量,保存所有返回的结果 

    Query timeout:查询超时时间 

    Handle result set:定义如何处理由callable statements语句返回的结果

    variables names设置为A,B,C,那么如下变量会被设置为:

      A_#=2 (总行数)
      A_1=第1列, 第1行
      A_2=第1列, 第2行 
      C_#=2 (总行数) 
      C_1=第3列, 第1行
      C_2=第3列, 第2行

        • 如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
        • 如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
        • 可以使用${A_#}、${A_1}...来获取相应的值

    2、在http请求中加入变量

    invite_id_N:N为数字,指取第几个数

    ------------------------------------------------------------------------------------------------

    实际中,我们是取出多个值,循环传入数据库

    1、添加循环控制器:线程组--逻辑控制器--循环控制器

    2、目标接口放入到循环控制器下,另外添加一个计数器,因为我们取的值是根据${invite_id_N}来取的,那么这个N可以通过计数器递增的方式获得

     

    3、计数器

    4、通过函数助手获取嵌套函数

    函数__V可以用于执行变量名表达式,并返回执行结果。它可以被用于执行嵌套函数引用(目前JMeter不支持)。

    例如,如果存在变量A1、A2和N=1,则:

    ${A1}:能正常工作。

    ${A${N}}:无法正常工作(嵌套变量引用)。

    ${__V(A${N})}:可以正常工作。A${N}变为A1,函数 __V返回变量值A1。

    5、运用在目标接口中

     

  • 相关阅读:
    Cocos2d-x之CCMenu理解
    【问题记录】mysql设置任意ip访问
    kafka eagle 使用教程
    查看Android源码和源码布局
    JAVA问题之泛型数组
    Linux面试题汇总答案(转)
    从源码看Azkaban作业流下发过程
    Azkaban源码学习笔记
    Java多线程基础学习(二)
    Java多线程基础学习(一)
  • 原文地址:https://www.cnblogs.com/jasmine0627/p/9646785.html
Copyright © 2020-2023  润新知