zoukankan      html  css  js  c++  java
  • Jmeter系列(25)- 获取并使用 JDBC Request 返回的数据

    转自:https://www.cnblogs.com/poloyy/

    一、前言

    • Jmeter 使用 JDBC Request 获取数据库中数据,很多人都会用,因为测试中,有时候需要大量的用户进行登录,然后 获取数据库中真实的数据用于测试
    • 前面也详细讲到 JDBC Request 的具体使用,一般是通过 Variable names 和 Result variable name 来获取返回的数据
    • 这篇文章主要讲的就是把 Variable names 和 Result variable name 获取到的数据 提取 出来,给到 HTTP 请求使用

    二、Variable names + Foreach控制器

    2.1 线程组结构树

    img

    2.2 JDBC Request

    img

    2.3 调试取样器运行结果

    img

    有 100 条记录

    2.4 ForEach控制器

    img

    2.5 循环运行的结果( mobile:${mobile} )

    img

    三、Variable names + 循环控制器

    ​ 和上面的栗子只是换了个控制器而已,没太大变化

    3.1 线程组结构树

    img

    3.2 循环控制器

    img

    ​ 填写 100,是代表循环100次

    3.3 计数器

    img

    从 1 开始,递增加到 100为止,每次递增 1

    • 初始值=1
    • 每次增加 1
    • 最大的值=100(包含)
    • 新变量 num

    3.4 循环控制器内的 Debug Sampler

    img

    ${__V()} 是关联函数,后面讲到

    3.5 循环运行的结果( mobile:${mobile} )

    img

    四、Result variable name + Foreach控制器

    4.1 线程组结构树

    img

    4.2 JDBC Request

    img

    4.3 正则提取器

    img

    重点

    ​ Apply to 选中 Jmeter Variable Name to use,因为要从 Jmeter Variables 中拿到 result_mobile 变量进行提取

    4.4 调试取样器运行结果

    img

    ​ 正则提取后的值是不是跟上面 Variable names 获取的值列表很像,是的!然后再结合 ForEach控制器就好啦

    4.5 ForEach控制器

    img

    ​ 变量前缀是正则提取器里的引用名称

    4.6 循环运行的结果( mobile:${mobile} )

    img

    五、Result variable name + 循环控制器

    ​ 和上面的例子只是换了个控制器而已,没太大变化

    5.1 线程组结构树

    img

    5.2 循环控制器

    img

    ​ 填写 100,是代表循环100次

    5.3 计数器

    img

    5.4 用户参数

    img

    重点一

    • ${__BeanShell(vars.getObject("result_mobile").get(${num}).get("mobile"))}
    • ${__BeanShell()} :执行BeanShell脚本,一般比较短的脚本可以用此方法来写,后面会再详细讲解这个函数

    重点二

    • vars.getObject("result_mobile").get(${num}).get("mobile")
    • result_mobile:是一个 数组,即 JDBC Request 里的 Result variable name,每个元素的格式都是 {mobile=158000480001}
    • ${num}:上面计数器的值,每次递增 1,这里是 数组下标 的意思
    • 总结:获取 result_mobile 数组,每次取数组中第 num 个元素,从元素中取 mobile 键的值【这是固定写法,只改Object 名、键名就行了】

    5.5 循环运行的结果( mobile:${user_mobile} )

    img

  • 相关阅读:
    [C++11新特性] weak_ptr和unique_ptr
    [C++11新特性] shared_ptr共享的智能指针
    VS2019 Qt5.15.2 开发环境搭建
    【C++11 新特性】Lambda表达式(三)
    【C++11 新特性】bind(二)
    【C++11 新特性】function(一)
    【IPC 进程间通信】有名管道的简单实现
    【IPC 进程间通信】常用进程间通信方式总结
    Qt 文件常见操作管理类
    【GitHub 开源分享】QML 在线预览工具
  • 原文地址:https://www.cnblogs.com/dongye95/p/14180656.html
Copyright © 2011-2022 走看看