JMeter如果进行JDBC请求,请求后的响应结果如何给下一个请求用(也就是传说中的关联),于是研究了一下,下面将学习的成果做个记录:

1.添加 "JDBC Connection Configuration"里面用来配置一些数据库连接的信息

2.添加一个“CSV Data Set Config”,用来在后续的JDBC请求中select语句中where条件参数化使用

3.添加JDBC请求

4.请求测试可以发现jdbc请求已经成果,并能在响应数据中看到返回的结果

5.那么接下来的问题就来了,如果我的下一个请求,需要JDBC中的请求,那我该怎么得到JDBC中的响应数据呢?

在JMETER中可以使用“正则表达式提取 器”来实现,那么怎么来实现呢,需要在jdbc请求后面添加一个后置的“正则表达式提取器”(表达式中的关键部分是   ([^"]+)    ),添加的表达式如下

6.为了验证是否能正确取得jdbc中的响应结果数据,模拟添加了一个简单的http请求

7.http请求的“查看结果树”中可以看到成功的取得的user_id的信息

多说几句,如果SQL语句写成  select 'user_id='|| '"' ||  user_id ||'"'  from sys_user b where b.USER_ID='13707'的形式,则可以通过下面的正则表达式来取到user_id=后面的内容,正则表达式为:user_id=" (.+?)"

总结:

1.正则表达式看来是需要好好学习一下了;

2.目前认为如果是取得jdbc的响应结果,是否通过beanshell来实现会更方便呢,可以自己写个java程序做个封装,来取得每次返回的结果。

在JMeter中使用Mysql的CONCAT提取测试数据

测试过程中,有时候需要通过查询数据库来获得想要的数据信息,但是使用Jmeter的Jdbc请求查询出来的数据,

使用正则表达式提取时,非常不方便,这个时候,可以使用一些函数,将查询结果转换为方便提取的格式,然后使用正则表达式提取。

以下例子是使用Mysql的CONCAT函数

1.select CONCAT('"name":',name,'') from `test`.`user`

正则表达是:"name":(.*)

2.select CONCAT('num=',count(1),'') from `test`.`user`

正则表达是:num=(.*)

JMeter处理jdbc请求后的响应结果的更多相关文章

  1. Jmeter发送JDBC请求

    下午花了两个小时研究了一下Jmeter发送JDBC请求,现在把基本操作流程分享一下. 做JDBC请求,首先需要两个jar包:mysql驱动-mysql-connector-java-5.1.13-bi ...

  2. Jmeter之JDBC请求(四)

    我们常用的Jmeter中的功能又HTTP请求.JDBC Request.SOAP/XML -RPC Request,这3个请求, 现在就为大家介绍下 什么是JDBC请求 首先,大家右键点击“测试计划” ...

  3. Jmeter使用JDBC请求简介

    1.现在oracle或mysql的jdbc然后放到jmeter的lib路径下 2.添加jdbc默认请求控件. 3.添加jdbc请求 4.发送 5.出现ORA-00911错误是由于sql语句错误,注意别 ...

  4. Jmeter之JDBC请求参数化(一)

    一.环境准备 a.jmeter5.1.1版本最新版本,可以去网页下载:https://jmeter.apache.org/download_jmeter.cgi b.jdbc驱动:链接:https:/ ...

  5. jmeter之JDBC请求

    jmeter不仅可以测试http请求,也可以执行JDBC请求的测试.本次以mysql为例,介绍JDBC请求如何完成发送 目录 1.环境配置 2.数据库连接配置 3.添加一个JDBC请求 1.环境配置 ...

  6. jmeter之JDBC请求遇到的问题

    1. 时区设置问题 Cannot create PoolableConnectionFactory (The server time zone value '???��������??��??' is ...

  7. 【jmeter】JDBC请求循环调用的问题

    今天使用jdbc请求从数据库取数据,多次请求使用了循环控制器,但是结果第一个jdbc请求返回值正确,第二次请求返回值为空. 1.从其他博客中得知,需要在jdbc connection configur ...

  8. Jmeter之JDBC请求参数化(二)

    二.上面已经讲了一些基本的配置,和简单的jdbc请求,下面来看下具体的如何将查询语句参数化. 参数化这里有几种方法,foreach,计数器,csv等,这里介绍几种方法.

  9. Jmeter的JDBC请求执行多条SQL语句

    注:有mysqlconnector/j 3.1.1以上版本才支持执行多条sql语句 1.     下载jdbc驱动为了连接Mysql数据库,还需要有个jdbc驱动:mysql-connector-ja ...

随机推荐

  1. java 入门 第二季2

    (1). 封装 封装类的时候属性用private,方法getter和setter用public 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 ...

  2. JqueryUI学习笔记-自动完成autocomplete

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...

  3. C# 对象操作

    //********************************************************************************* //************** ...

  4. Div内部的内容超出部分显示省略号(仅仅只有一行内容)

    效果如下:

  5. JS图表插件(柱形图、饼状图、折线图)

    http://www.open-open.com/lib/view/open1406378625726.html

  6. IIS配置默认文档

    我们在配置IIS的默认文档时是在这里配置的,如下图: 但是,有可能我们的根目录下没有这个文件,而且我们网站运行的时候也不想访问根目录下的这个文件,而是要访问其他文件夹下的某一个文件,比如网站运行的时候 ...

  7. 你缺什么(codevs 2928)

    2928 你缺什么  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 继“你幸福吗”之后,央视又推出了“ ...

  8. Innodb之拷贝InnoDB表从一服务器到另一台服务器

    将Innodb类型的表从一台服务器拷贝到另一台服务器,或从一个库拷贝到另一个库. 前提是:innodb_file_per_table =ON. 1 先在目标服务器(库)上创建一个相同的表结构. 如: ...

  9. 1.3 迭代器 - iterator

    A 1)概述 要访问顺序容器,关联容器中的元素就要通过迭代器进行.迭代器是个变量,类似于指针 2)分类 按照定义方式不同可分为四种(iterator, const_iterator, reverse_ ...

  10. C#关键字params

    using System; using System.Threading; namespace Test { /// <summary> /// params用法: 1.用来修饰方法的参数 ...