jmeter(12)-JDBC请求及请求后的响应结果如何提取

参考博文:
https://www.cnblogs.com/wuzm/p/10862904.html

https://www.cnblogs.com/qmfsun/p/5912532.html

一.环境准备

a、jmeter5.1.1版本最新版本,可以去网页下载:https://jmeter.apache.org/download_jmeter.cgi

b、jdbc驱动:链接:https://pan.baidu.com/s/1n1hY6RQcoYDHUuKMFMbg3g  提取码:8tr1 

c、在测试计划下,把JDBC驱动包添加上,也可以将驱动包放入jmeter的lib目录下,即可自动加载。

二.操作步骤

新建一个线程组→添加配置元件---JDBC Connection Configuration(连接数据库组件)→
添加取样器→JDBC Request(JDBC请求)

先看下配置元件的参数:

Variable Name:连接名称,自定义填写。

Validation Query验证查询,不同版本的填写格式可能不同(比如3.1是Select 1,2.6是Select1),格式错误会报错。最新的Jmeter5.1.1下拉框可选择。

Database URL:数据库url,格式固定。

jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

jdbc:mysql:// 表明连接的数据库是mysql

ip 数据库服务器地址

port mysql端口号

dbname 数据库名称

useUnicode=true 使用Unicode编码格式(字符集编码格式)

characterEncoding=utf8 使用UTF-8解码(字符集编码格式)

allowMultiQueries=true 允许多个query一起使用(1个请求中添加多个sql语句)

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=" (.+?)"

配置完毕,接下来填写JDBC请求

Variable Name:与JDBC Connection Configuration中的Variable Name保持一致

Query Type:语句类型,查询用select,增删改用update,一起用可以选择callable

Query:填写对应的语句(这里用了一个简单的查询语句作为示例)

猜你喜欢

转载自www.cnblogs.com/yiyaxuan/p/12358614.html