正则表达式简介

  摘自网上的说法,正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种

逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串

的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

比较常用的基本正则字符

  "^" :^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。

  "$" :$会匹配行或字符串的结尾。

  "\w":匹配字母,数字,下划线。

  例如我要匹配"a2345BCD__TTz" 正则:"\w+" 这里的"+"字符为一个量词指重复的次数。

  "\s":匹配空格。

  例如字符 "a b c" 正则:"\w\s\w\s\w" 一个字符后跟一个空格,如有字符间有多个空格直接把"\s" 写成 "\s+" 让空格重复。

  ".":匹配除了换行符以外的任何字符。

  "[abc]": 字符组,匹配包含括号内元素的字符。

  "*": 重复零次或更多(贪婪模式)。

  例如"aaaaaaaa" 匹配字符串中所有的a 正则:"a*" 会出到所有的字符"a"。

  "+": 重复一次或更多次(懒惰模式)。

  例如"aaaaaaaa" 匹配字符串中所有的a; 正则:"a+"会取到字符中所有的a字符,"a+"与"a*"不同在于"+"至少是一次而"*" 可以是0次。

  "?": 重复零次或一次。

  例如"aaaaaaaa" 匹配字符串中的a 正则 : "a?" 只会匹配一次,也就是结果只是单个字符a。

  "{n}": 重复n次。

  例如从"aaaaaaaa" 匹配字符串的a 并重复3次 正则:"a{3}" 结果就是取到3个a字符 "aaa"。

  "{n,m}": 重复n到m次。

  例如正则 "a{3,4}" 将a重复匹配3次或者4次;所以供匹配的字符可以是三个"aaa"也可以是四个"aaaa"正则都可以匹配到。

  "{n,}": 重复n次或更多次。

  与{n,m}不同之处就在于匹配的次数将没有上限,但至少要重复n次 如 正则"a{3,}" a至少要重复3次。

  "*?": 重复任意次,但尽可能少重复。

  如 "acbacb" 正则"a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ,而"acbacb"最少字符的结果就是"acb"。

  "+?": 重复1次或更多次,但尽可能少重复。

  与上面一样,只是至少要重复1次。

  "??": 重复0次或1次,但尽可能少重复。

  如 "aaacb" 正则 "a.??b"只会取到最后的三个字符"acb"。

  "{n,m}?": 重复n到m次,但尽可能少重复。

  如 "aaaaaaaa" 正则 "a{0,m}" 因为最少是0次所以取到结果为空

  以上就是正则表达式中最基础的部分知识,也是比较常用的知识点,对于更加复杂部分的内容本文未涉及。其实看多了,慢慢就

知道是什么意思了,就和你一开始对Linux命令不熟悉一样,用多了自然而然就记住了。

利用正则实现关联

  

Name of created variable:引用名称,下一个请求要引用的参数名称,如填写num,则可用${num}引用它

Regular Expression:正则表达式,填写编写的正则

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

Match No.:匹配数字,可以理解为匹配到结果所出现的次数,比如需要设置匹配数字为1,在JMeter中使用1来表示,通常情况下填0即可

Default Value:缺省值,如果参数没有取到值,那默认给一个值让它取

  测试场景,现在有接口A、接口B两个接口,接口B需要从接口A中拿到参数“ID”作为自己的入参。此时,我们可以利用Jmeter中的

正则表达式提取器实现这一目标。

  配置Jmeter脚本如下,用Dummy Sampler模拟接口A,得到返回结果。

 

  添加正则表达式提取器(Regular Expression Extractor)并做如下配置:

  配置接口B,引用从接口A中提取的参数${id}

  最后,执行并查看结果,可以看到接口A返回结果中的id已经成功获取,这里接口B的执行结果截图省略了。

  其中会有个问题,就是我们怎么知道写的正则表达式是否正确匹配了我们要的数据呢?最好的办法当然是先验证一下,省得跑到最后

才发现写的正则有问题,这里给大家推荐一个在线验证正则的工具:http://tool.oschina.net/regex。文笔不好,有错误的地方望大家多多指正。

Jmeter关联之正则表达式提取器的更多相关文章

  1. Jmeter关联之正则表达式提取器(完整版)

    Jmeter关联之正则表达式提取器(完整版)   在性能测试中,若想提取上一个请求的结果,作为下一次请求的参数,则需要使用关联~ 这篇博客主要讲jmeter正则表达式提取器的各种用法. 首先正则表达式 ...

  2. jmeter - 关联之正则表达式提取器

    如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,可以利用正 ...

  3. JMeter关联(正则表达式提取器)

    关联:与系统交互过程中,系统返回的内容,需要在接下来的交互中用到,如防止csrf攻击而生成的token. 从前一个请求中取,用Regular Expression Extractor 正则表达式提取器 ...

  4. jmeter(十二)关联之正则表达式提取器

    如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数): 在jmeter中,可以利用正 ...

  5. <转>jmeter(十二)关联之正则表达式提取器

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  6. Jmeter(五)关联之正则表达式提取器

    我们在用Jmeter做接口或者性能测试时,经常会碰到第二个请求提交的的参数要从第一个请求返回的参数中获取,而这些参数值并不是固定的,是动态变化的,这种场景就要用到关联 Jmeter提供了一种叫做正则提 ...

  7. 『动善时』JMeter基础 — 36、JMeter接口关联【正则表达式提取器】

    目录 1.正则表达式提取器介绍 2.正则表达式提取器界面详解 3.正则表达式提取器的使用 (1)测试计划内包含的元件 (2)请求一界面内容 (3)正则表达式提取器界面内容 (4)请求二界面内容 (5) ...

  8. Jmeter—5 关联 响应数据传递-正则表达式提取器

    在测试过程中,遇到一个问题:用户登录成功后服务器会返回一个登录凭证,之后所有的操作都需要带上此凭证.我们怎么获取登录凭证并传递给后续的操作? Jmeter提供了正则表达式提取器,用变量提取参数,后续通 ...

  9. Jmeter入门5 关联 响应数据传递-正则表达式提取器

    在测试过程中,遇到一个问题:用户登录成功后服务器会返回一个登录凭证,之后所有的操作都需要带上此凭证.我们怎么获取登录凭证并传递给后续的操作? Jmeter提供了正则表达式提取器,用变量提取参数,后续通 ...

  10. jmeter正则表达式提取器提取特定字符串后的全部内容

    jmeter进行JDBC请求时,请求后的响应结果在传递给下一个请求使用时,需要用到关联,也在jmeter中,关联通过正则表达式提取器实现. 但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有 ...

随机推荐

  1. 2019年蓝桥杯C/C++大学B组省赛真题(等差数列)

    题目描述: 数学老师给小明出了一道等差数列求和的题目.但是粗心的小明忘记了一部分的数列,只记得其中N 个整数. 现在给出这N 个整数,小明想知道包含这N 个整数的最短的等差数列有几项? 输入格式 输入 ...

  2. es笔记六之聚合操作之指标聚合

    本文首发于公众号:Hunter后端 原文链接:es笔记六之聚合操作之指标聚合 聚合操作,在 es 中的聚合可以分为大概四种聚合: bucketing(桶聚合) mertic(指标聚合) matrix( ...

  3. Kafka实时数据即席查询应用与实践

    作者:vivo 互联网搜索团队- Deng Jie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时.36小时.48小时等.而在定位一些实时 ...

  4. VSCode 中利用 Remote SSH 连接远程服务器

    北京时间 2019 年 5 月 3 日,在 PyCon 2019 大会上,微软发布了 VS Code Remote.这是一个用来实现远程开发的功能插件,对于许多使用 Windows 进行开发,但是需要 ...

  5. Pytorch-PyG图神经网络依赖环境安装(Anaconda)

    1.默认用户在Anaconda的虚拟环境中已安装Pytorch 2.打开anaconda prompt命令窗, activate "你的虚拟环境名称" 3.在激活后的虚拟环境下输入 ...

  6. 使用Git进行版本控制和协作:代码共享、协作和版本管理

    目录 引言 Git 是一款开源的分布式版本控制系统,它已经成为了现代软件开发中必不可少的工具之一.在这篇文章中,我们将介绍如何使用 Git 进行版本控制和协作,以实现代码共享.协作和版本管理.Git ...

  7. PostgreSQL 12 文档: 系统表

    第 51 章 系统目录 目录 51.1. 概述 51.2. pg_aggregate 51.3. pg_am 51.4. pg_amop 51.5. pg_amproc 51.6. pg_attrde ...

  8. NoSuchMethodError: Closure call with mismatched arguments:

    原因:某个方法的参数中,回调函数写的有问题,

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十四):顺应 AIGC 应用,自动“续航”回复超长文本消息

    开源地址 GitHub:https://github.com/JeffreySu/WeiXinMPSDK Gitee:https://gitee.com/JeffreySu/WeiXinMPSDK 概 ...

  10. [CF 1780B] GCD Partition

    B. GCD Partition 题意 : 给一个长度为n的序列, 并将其分成连续的k块(k > 1), 得到序列b, 使得 \(gcd(b_{1}, b_{2}, b_{3}, ..., b_ ...