码迷,mamicode.com
首页 > 数据库 > 详细

JMeter处理jdbc请求后的响应结果

时间:2016-09-27 14:47:34      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

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提取测试数据

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

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

 

以下例子是使用MysqlCONCAT函数

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

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

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

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

JMeter处理jdbc请求后的响应结果

标签:

原文地址:http://www.cnblogs.com/qmfsun/p/5912532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!