Jmeter实战二- JDBC Request与正则表达式提取器

时隔上一篇博文到现在四个月之久,虽说没写,但是心里一直在挂牵,觉得有些东西不写出来,自己想要的东西不仔细推敲几番,始终得不到成长 。于是,今天来交作业了。内容还是跟Jmeter相关,只是不再讨论基础的应用,希望自己写的能给其它需要的小伙伴哪怕是一丁点的帮助,那也足够了。

本篇主要介绍的是JDBC Request与正则表达式提取器。

1.JDBC Request

之前的博文中介绍的主要是http请求,因为这是最基础的接口请求方式。而JDBC Request是向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据的请求操作。它经常需要和JDBC Connection Configuration一起使用。本文中主要是通过此请求获取数据后,作为断言对下一请求的结果进行校验。

在使用JDBC Request之前,我们需要做的是数据库连接配置,即JDBC Connection Configuration,不同的数据库得引入不同的jar包,本文中用的是SQL SERVER 2014, 那么就只需要下载sqljdbc4.jar 放到 jmeter根目录的lib目录下就OK了。具体配置如下:

(1)在线程组下,添加一个配置元件JDBC Connection Configuration

JDBC Connection Configuration

重要参数说明:

Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。文中,我用到的数据库名称是TELDATMS。

Database URL:数据库url,jdbc:sqlserver://IP:1433;databaseName=DBname

JDBC Driver class:JDBC驱动

username:数据库登陆的用户名

passwrod:数据库登陆的密码

不同数据库具体填写的方式,可以参考如下表格:

不同数据库具体填写的方式

(2)在线程组下,添加一个JDBC Request

JDBC Request

添加察看结果树,所得到的结果如下

JDBC Request 查询结果

到这里,这一个JDBC Request就算完成了。可是,查询到这个结果有什么意义呢?上文中说明了,通过JDBC请求获取数据后,作为断言对下一请求的结果进行校验,那这里就是需要把这个22814提取出来,作为一个变量值。如何提取?

2.正则表达式提取器

添加一个正则表达式提取器

      正则表达式提取器参数说明:

      (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。

      (2)正则表达式:

         ():括起来的部分就是要提取的。

         .:匹配任何字符串。

         +:一次或多次。

         ?:不要太贪婪,在找到第一个匹配项后停止。

       (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

      (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

      (5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

上文中提到的是,需要提取XP值,那根据正则表达式提取规则,数据库查询到结果后,使用 ULI_XP\n([^'']+)\n进行提取。

正则表达式提取器

题外话:在这里,要跟大家分享一个万年大坑,我从昨天晚上一直搞到现在。之前在考虑换行时只考虑到了字段名后带着换行,于是,每次在查看提取结果后,数据后总是带着换行。直到刚才,我才想起来,会不会数据后本身也带着换行?于是,果断在)后又加了一个\n,谢天谢地,原来如此,原来是你折腾了我这么久。

那提取后,如何验证这个值提取的是否正确呢?

验证取值是否正确

执行HTTP请求,如下图所示,这个变量的取值是22814,即取值正确。

添加HTTP请求

此时,回到我们最初的想法,取到这个值后,需要以此来作为断言,判断返回值是否正常。于是新建一个HTTP请求,将此变量作为一个响应断言

添加响应断言
请求通过

如上,是将JDBC Request与正则表达式提取器结合在一起使用的案例,当然,正则表达式提取器的应用远不止这一项,比如在上文中提到UserID这个变量,它就是通过HTTP请求后,通过正则表达式提取器提取到值

正则表达式提取器

这里展示的正则表达式写法与JDBC Request则完全不同,因为这是一个HTTP请求,返回的都是JSON数据。

这里的变量,不仅可以用在JDBC Request中,HTTP请求的参数中,还可以用在HTTP请求的信息头中一并请求,如下图所示。

信息头中的变量

小结:

1. 总的说来,这篇文章里更多说明的是正则表达式提取器的使用,以及提取到的变量的使用方法。当然,对于正则表达式的规范,还需要自己去仔细的体会琢磨,才能了解其中的用处。

2. 好好学习,才能天天向上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容