1.概览

JMeter中包含范本匹配软件Apache Jakarta ORO 。在Jakarta网站上有一些关于它的文档,例如a summary of the pattern matching characters :

http://jakarta.apache.org/oro/api/org/apache/oro/text/regex/package-summary.html

另外,还有关于该软件老版本的文档OROMatcher User's guide ,也许会有一些帮助。URL地址:http://www.savarese.org/oro/docs/OROMatcher/index.html

JMeter的范本匹配与Perl语言的范本匹配类似。一个安装完整的Perl会包含很多关于正则表达式的文档(搜寻perlrequick、perlretut、perlre、perlreref)。

我们有必要分清楚包含(Contains)和匹配(Matches)的差异,它们用于响应断言测试元件:

包含(Contains)意味着正则表达式至少部分匹配目标,例如,'alphabet' 包含 'ph.b.',因为正则表达式匹配其子字符串'phabe'。

匹配(Matches)意味着正则表达式完全匹配目标。例如,'alphabet'匹配'al.*t'。

在这一情况下,它等同于使用^ 和$封装正则表达式,即'^al.*t$'。但是事情并不总是这样。例如,正则表达式'alp|.lp.*'包含于'alphabet',但并不匹配'alphabet'。

原因在于当范本匹配器在'alphabet'中找到序列'alp'后,就会停止尝试其他组合,而且'alp'不同于'alphabet',它不包含'habet'。

不同于Perl,没必要将正则表达式用//封装。

2.实例

1)提取单个字符串

假设测试人员期望匹配Web页面的如下部分:name="file" value="readme.txt">并提取readme.txt。

一个符合要求的正则表达式:

  1. name="file" value="(.+?)"> 。

上面用到的特殊字符包括如下几个。

( 和 ):封装了待返回的匹配字符串。

.:匹配任何字符。

+:一次或多次。

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

如果没有?,在找到第一个">后,会继续寻找,直到最后一个">,这么做很可能不是测试人员期望的。

尽管上面的表达式可以达到目的,但是使用如下表达式更有效率:name="file" value="([^"]+)">,其中[^"]-意味着匹配任何东西(除了")。在这种情况下,匹配引擎在找到第一个右侧"后,就会停止搜索。而上面例子中的匹配引擎会去寻找">。

2)提取多个字符串

假设测试人员期望匹配Web页面的如下部分:name="file" value="readme.txt">,并提取file.name和readme.txt。

一个符合要求的正则表达式:

  1. name="([^"]+)" value="([^"]+)"

这会创建两个组合,并可用于JMeter正则表达式模板,形如$1$ 和$2$。

JMeter正则表达式提取器会将组合的值放在指定变量中,如图11-2所示。

 
(点击查看大图)图11-2  JMeter正则表达式提取器

转:详解JMeter正则表达式(1)的更多相关文章

  1. 详解JMeter正则表达式

    详解JMeter正则表达式(1) 1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pat ...

  2. 转:详解JMeter正则表达式(2)

    例如, 引用名称:MYREF. 正则表达式:name="(.+?)" value="(.+?)". 模板:$1$$2$. 不要用/ /封装正则表达式. 如下变量 ...

  3. 详解JMeter函数和变量(转载)

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  4. Java 正则表达式详解_正则表达式

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. 详解 Python3 正则表达式(五)

    上一篇:详解 Python3 正则表达式(四) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些注明和修改 ^_^ 非捕获组和命名 ...

  6. 详解 Python3 正则表达式(四)

    上一篇:详解 Python3 正则表达式(三) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些注明和修改 ^_^ 更多强大的功能 ...

  7. 详解 Python3 正则表达式(三)

    上一篇:详解 Python3 正则表达式(二) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 模块级别的函数 ...

  8. 详解 Python3 正则表达式(二)

    上一篇:详解 Python3 正则表达式(一) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 使用正则表达式 ...

  9. 详解 Python3 正则表达式(一)

    本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 正则表达式介绍 正则表达式(Regular expressio ...

随机推荐

  1. Hexo+NextT第三方服务调用【4】

    该系列博客列表请访问:http://www.cnblogs.com/penglei-it/category/934299.html 摘要        静态站点与动态站点有很大的不一样,它拥有一定的局 ...

  2. Java 实现下载

    效果就是点击就可以下载到本机. 前台代码示例 后台代码示例 前台代码示例 <a target='_self' href='../downTask/downloadFileToLocal?file ...

  3. NG2入门 - 根模块

    根模块 app.module 建议大家先去学习angularjs官网的英雄教程后再进行后面的阅读,app.module.ts 就是ng2应用中的引导启动模块也称根模块 import { NgModul ...

  4. C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息二

    前言 这一篇实现snsapi_userinfo,写这篇时其实我是有疑惑的,因为我并没有调试成功,但是我反复检查程序和思路是没有问题的,因为我使用的测试公众号,群里一个伙计说他之前调试时用的也是测试公众 ...

  5. labview 调用 matlab script的神坑! Error 1050 occurred at LabVIEW

    显示变量没有被定义,原因是clear 关键字的问题,去掉即可!!! 未找到 文件路径,定位: 文件路径中不能有中文路径

  6. Andy的生活

    Andy是一个善良的男孩,希望优雅地生活. 现实是残酷的. 现实是,Andy像狗一样活着. Andy犯的错是,错误地认为狗一样的生活将在高考结束的那一刻结束. 大学四年时间根本没有静下心来学习,却在生 ...

  7. 获取usb设备父系或子代

    /// <summary> /// 获取设备父系 /// </summary> /// <param name="driver"></pa ...

  8. 【 VS 插件开发 】二、了解Vs插件结构

    [ VS 插件开发 ]二.了解Vs插件结构

  9. USACO 3.3 Shopping Offers

    Shopping OffersIOI'95 In a certain shop, each kind of product has an integer price. For example, the ...

  10. spring+springmvc+maven+mybatis整合

    jar包依赖:网址search.maven.org 1.spring :spring-core            2. myhabits:myhabits 3.整合spring和myhabits: ...