0. 正则表达式简介

正则表达式,又称规则表达式(Regular Expression,在代码中通常简写为regex、regexp或RE)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

Jmeter使用正则表达式主要用来从请求结果中提取需要的内容,作为结果校验或下一个接口的入参从而实现参数关联。下面主要介绍Jmeter使用正则表达式提取器的方法。

1. Jmeter正则表达式使用

下面以提取下面测试响应文本中的 “<title>百度一下,你就知道</title>” 里面的 title“百度一下,你就知道”为例:

1.1 新建正则表达式提取器

在Jmeter需要提取数据的HTTP请求上,点击右键-->后置处理器,选择需要的关联方式,如下图有很多种方法可以提取动态变化数据,这里选择正则表达式提取器:

1.2 设置正则表达式提取器

 参数说明:

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

  (2)正则表达式:

    ():括起来的部分就是要提取的字符串,即只返回()内的匹配的字符串

    .:匹配任何字符(换行符除外)

    +:一次或多次

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

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

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

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

1.3 使用2中获取到的值:

2. 更多示例

2.2 正则表达式常用字符及释义

1. .匹配任意一个单个的字符:比如f.o匹配在'f'和'o'中间的任意字符
2. *用于匹配它左边正则表达式出现0次或0次以上的情况
3. +用于匹配左边的正则表达式至少出现一次的情况
4. ?用于匹配左边的正字表达式出现0次或1次的情况
5. {}括号里可以是单个的值如{N},表示匹配N次出现;也可以是一对值{M,N},表示匹配M次到N次出现
6. 特殊字符: 用\d表示十进制数字,用\w表示整个字符数字的字符集,\s表示空白符
7. 圆括号():对正则表达式进行分组
8. 管道符号(|),它的意思选择被管道符号分隔的多个不同的正则表达式中的一个
9. 从字符串的开头或结尾或单词边界开始匹配(^/$),其中^或\A从字符串开头开始匹配;$或\Z是用来匹配字符串的结尾
10. \b和\B用来匹配单词边界,其中\b匹配的是一个单词边界,\B只匹配出现在一个单词中间的模式
11. 创建字符类([]):使用方括号的正则表达式会匹配方括号里的任何一个字符,比如b[aeiu]t匹配bat,bet,bit,but
12. 指定范围(-)和否定(^):例如A-Z、a-z、0-9分别代表大写字母、小写字母及十进制数字;[^\t\n]表示除TAB制表符及换行符以外的任意字符

2.2 正则表达式中含有转义字符

例如WEB页面中字符为"lable":(1234),需要提取1234字符,由于含有特殊字符(),此时需要使用转移字符\,编写的正则表达式为
"lable":\((\d+?)\),其中\d表示匹配任意0-9数字

2.3 提取多个字符串

假如想匹配WEB页面内容如下:<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>,我们想提取"http://news.baidu.com"和"新闻"。这时,正则表达式应该写成:<a href="(http://.+?)" name=".+?" class=".+?">(.+?)</a>。这样就会创建2个组,分别用于$1$和$2$,如下:

引用名称:param
模板:$1$$2$

变量值如下:
param: http://news.baidu.com新闻
param_g0: <a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
param_g1: http://news.baidu.com
param_g2: 新闻

其中param是返回所有的匹配部分;param_g0是返回匹配的字符串;param_g1是返回匹配的子组1;param_g2是返回匹配的子组2

JMeter基础教程2:正则表达式使用的更多相关文章

  1. Jmeter基础教程图文版(二)- 核心组件

    ⚪Jmeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具.用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域. 它可以用于 ...

  2. JMeter基础教程3:脚本录制篇

    对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一.虽然我不建议录制性能脚本(因为录制的脚本比较混乱,必须要通过二次处理才可正常使用),但有时做总比不做要好,是吧?下面我们详细介绍使用 ...

  3. JMeter基础教程1:若隐若现的参数化

    1. 什么是参数化? 在开始学习JMeter参数化之前,我们先了解下什么是参数化: 参数化是自动化测试脚本的一种常用技巧.简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指 ...

  4. JMeter基础之一 一个简单的性能测试

    JMeter基础之一 一个简单的性能测试 上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测 ...

  5. 《JavaScript基础教程(第8版)》PDF

    简介:JavaScript基础教程(第8版)循序渐进地讲述了JavaScript及相关的CSS.DOM.Ajax.jQuery等技术.书中从JavaScript语言基础开始,分别讨论了图像.框架.浏览 ...

  6. C#基础回顾:正则表达式

    C#基础回顾:正则表达式 写在前面:本文根据笔者的学习体会结合相关书籍资料对正则表达式的语法和使用(C#)进行基本的介绍.适用于初学者. 摘要:正则表达式(Regular Expressions),相 ...

  7. 【转】Gulp入门基础教程

    Gulp入门基础教程 原文在此 前言最近流行前端构建工具,苦于之前使用Grunt,代码很难阅读,现在出了Gulp, 真是摆脱了痛苦.发现了一篇很好的Gulp英文教程,整理翻译给大家看看. 为什么使用G ...

  8. 1月10日 ruby基础教程,查漏补缺; 2月22日 Exception补充

    https://ruby-doc.org/core-2.5.0/Exception.html 1月20日练习完1,2章. 第一章 初探 ‘’单引号不执行转义符. \t 制表符.\n 换行符. p me ...

  9. 《SQL基础教程》+ 《SQL进阶教程》 学习笔记

    写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...

随机推荐

  1. js和jquery通过this获取html标签中的属性值

    <html> <head> <script type="text/javascript" src="jquery-1.10.2.min.js ...

  2. python查询完结篇

    0x00 网上找一个查询网站,然后自己写的一个脚本 0x01 代码送上: import requests import time from bs4 import BeautifulSoup strat ...

  3. bzoj:1299: [LLH邀请赛]巧克力棒

    原题:http://www.lydsy.com/JudgeOnline/problem.php?id=1299 众多dalao的题解已经很详细了:http://blog.csdn.net/wzq_qw ...

  4. 51 Nod 1027 大数乘法【Java大数乱搞】

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度  ...

  5. [51nod1673]树有几多愁

    lyk有一棵树,它想给这棵树重标号. 重标号后,这棵树的所有叶子节点的值为它到根的路径上的编号最小的点的编号. 这棵树的烦恼值为所有叶子节点的值的乘积. lyk想让这棵树的烦恼值最大,你只需输出最大烦 ...

  6. noip2015 提高组 解题报告

    完美退役...说好的不卡常呢QAQ day1: T1:模拟题?..考察选手将题目描述翻译成代码的能力233 //其实真相是考验rp..论代码雷同的危害233 T2:简单图论,每个点出度为1所以是基环内 ...

  7. [bzoj1826] [JSOI2010]缓存交换

    虽然不知道为什么..但显然,每次扔掉离下次查询最远的内存单元就行了233 用堆来维护贪心...(优先队列大法好 #include<cstdio> #include<iostream& ...

  8. 用NPOI导出Excel,生成下拉列表、以及下拉联动列表(第1篇/共3篇)

    最近帅帅的小毛驴遇到一个很奇葩的需求: 导出Excel报表,而且还要带下拉框,更奇葩的是,下拉框还是联动的. 小毛驴一天比较忙,所以这等小事自然由我来为她分忧了.经历了两天,做了几种解决方案,最后完美 ...

  9. 关于Struts传递json给easyui的随笔

    今天在公司写测试代码,由于公司用的是ssh框架做的商城项目,我想先实现下简单的增删改查,奈何没有很好的后台页面(毕竟不能测试代码直接在他的项目里改啊) 所以想到了淘淘商城中有这个后台的管理页面,打算一 ...

  10. 关于将dede织梦data目录迁移出web目录

    关于将dede织梦data目录迁移出web目录织梦官方提供了一个教程,但是如果你是按照他们提供的教程做的话会出现很多问题.比如验证码问题,图片显示问题等等一大堆.织梦官方这种是很不负责任的,因为那个教 ...