[转帖]Jmeter学习笔记(十九)——后置处理器之正则表达式的使用

jmeter,学习,笔记,十九,后置,处理器,正则表达式,使用 · 浏览次数 : 0

小编点评

**正则表达式提取器的作用** 正则表达式提取器允许用户从服务器响应中通过使用perl的正则表达式提取值。它是在请求结束或返回响应结果时发挥作用的后置处理器。 **使用方法** 1. **定义正则表达式:**在模板字符串中使用`$`符号定义正则表达式。 2. **引用提取出来的值:**使用`${引用名称}`引用提取出来的值。 3. **查看结果:**使用`${引用名称}`引用提取出来的值。 **示例** 假设需要提取响应文本中的“<title>百度一下,你就知道</title>”里的“百度一下,你就知道”。可以使用以下正则表达式: ``` \$\$(.*)\$ ``` **步骤** 1. 创建模板字符串:`$1$` 2. 设置正则表达式提取器:`正则表达式提取器页面说明说明` 3. 引用提取出来的值:`${ Social_NO }` 4. 查看结果:`${ Social_NO }` **注意** * 正则表达式匹配的结果通常是多个值,可以使用`${ Social_NO_matchNr}`等方式指定匹配数量。 * 使用`${ Social_NO_1},${ SOCIAL_NO_2}...`等方式随机选取匹配结果。 * 使用缺省值可以解决正则表达式没有匹配数据的情况。 </div> <div class="bs-editor-display"> <h3>正文</h3> <div class="cnblogs_code"> <pre>https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">www.cnblogs.com/pachongshangdexuebi/p/11733005.html</span></pre> </div> <p> </p> <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body blogpost-body-html"> <p><strong>一、正则表达式提取器的作用</strong></p> <p>允许用户从服务器的响应中通过使用perl的正则表达式提取值。作为一个后置处理器,该元素会作用在指定范围的取样器,应用正则表达式,提取所需要的值,生成模板字符串,并将结果存储到给定的变量名中。 </p> <p>如果有这样的情况:一个完整的操作流程,需要先完成某个操作,获得某个值或数据信息,然后才能进行下一步的操作(也就是常说的关联/将上一个请求的响应结果作为下一个请求的参数)。这个时候就可以使用上正则表达式提取器了</p> <p><strong>二、正则表达式提取器页面说明</strong></p> <p><img src="https://img2018.cnblogs.com/blog/796799/201910/796799-20191024155610980-406705886.png" alt="" class="medium-zoom-image"></p> <p>说明:</p> <p><strong>后置处理器:</strong>在请求结束或者返回响应结果时发挥作用</p> <p><strong>APPly to:</strong>作用范围(返回内容的断言范围)</p> <p>         Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器</p> <p>         Main sample only:仅作用于父节点的取样器</p> <p>         Sub-samples only:仅作用于子节点的取样器</p> <p>         JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)</p> <p><strong>要检查的响应字段:</strong>需要检查的响应报文的范围</p> <p>         主体:响应报文的主体,一个网页页面的内容,除了信息头以外的内容 </p> <p>         Body(unescaped):主体,响应的主体内容且替换了所有的html转义符,注意html转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用 </p> <p>         Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影响性能 </p> <p>         Response Headers:响应信息头</p> <p>         Request Headers:请求信息头</p> <p>         URL:统一资源定位符,即Internet上用来描述信息资源的字符串</p> <p>         Response Code:响应状态码,比如200、404等</p> <p>         Response Message:响应信息</p> <p><strong>引用名称(Reference Name):</strong>Jmeter变量的名称,存储提取的结果;即下个请求需要引用的值、字段、变量名(例子中我提取的是SOCIAL_NO)</p> <p><strong>引用方法:</strong>引用方法:${引用名称}</p> <p><strong>正则表达式(Regular Expression)</strong>:使用正则表达式解析响应结果,<strong>“()”表示提取字符串中的部分值</strong>,请不要使用“||”,除非你本身需要匹配这个字符。</p> <p>下面是常用的正则表达式操作符:</p> <p>():括起来的部分就是要提取的。</p> <div>.:匹配任何字符串。</div> <div>+:一次或多次。</div> <div>?:不要太贪婪,在找到第一个匹配项后停止。</div> <p><img src="https://images2015.cnblogs.com/blog/983980/201706/983980-20170621003433851-1200830969.png" alt="" width="526" height="325" class="medium-zoom-image"></p> <p><strong>模板(Template):</strong>模板,用来从匹配的结果中创建一个字符串,这是通过正则表达式匹配出来的一组值,语法为:$1$指代第一组,$2$指代第二组,$0$指代整个匹配结果</p> <p><strong>匹配数字(Match No):</strong>匹配数字,指明哪一个匹配结果值将被使用,正则表达式一般会有多个匹配结果。使用:0,表示Jmeter任选一个匹配值,使用:正整数N,表示Jmeter选择第N个值进行匹配,使用负数表示选取所有的值,一般与ForEach控制器配合使用</p> <p><strong>缺省值:</strong>如果正则表达式没有匹配到数据,引用变量将会返回一个默认值,在调试中此功能很有用,如果没有设置默认值,那么很难分辨出正则表达式是否有匹配到数据或使用是否正确,当然你也可以根据你的测试需求,在调试完成后去掉默认值的设置</p> <p>提取到的参数,调用时用${SOCIAL_NO_1},${SOCIAL_NO_2}...,如果想要得到匹配出的参数的个数,用${SOCIAL_NO_matchNr},如果想随机选取一个,只需要将</p> <p>匹配数字设为0,使用${SOCIAL_NO}调用即可。</p> <p><strong>三、使用实例</strong></p> <p>1、比如需要提取如下响应文本中的 “<title>百度一下,你就知道</title>” 里面的 “百度一下,你就知道”</p> <p><img src="https://img2018.cnblogs.com/blog/796799/201910/796799-20191024162830749-1389169554.png" alt="" class="medium-zoom-image"></p> <p> </p> <p> 2、设置正则表达式提取器</p> <p><img src="https://img2018.cnblogs.com/blog/796799/201910/796799-20191024162914044-45966054.png" alt="" class="medium-zoom-image"></p> <p> </p> <p> </p> <p>3、引用提取出来的值</p> <p><img src="https://img2018.cnblogs.com/blog/796799/201910/796799-20191024163004523-32043624.png" alt="" class="medium-zoom-image"></p> <p> </p> <p> </p> <p>4、查看结果</p> <p><img src="https://img2018.cnblogs.com/blog/796799/201910/796799-20191024163108833-1818951621.png" alt="" class="medium-zoom-image"></p> <p> </p> <p>参考博文:</p> <p>https://www.cnblogs.com/imyalost/p/6485754.html</p> <p>https://www.cnblogs.com/wuyepiaoxue/p/5661194.html</p> <p> </p> </div> </div> </div> <div class="tags"> <div class="footer-item d-flex flex-row flex-nowrap align-items-center mt-2"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/十九/">十九</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/后置/">后置</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/处理器/">处理器</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/正则表达式/">正则表达式</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/使用/">使用</a> </div> </div> <h2 class="mt-4 mb-4">与[转帖]Jmeter学习笔记(十九)——后置处理器之正则表达式的使用相似的内容:</h2> <div id="likes-dom"> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41352.html">[转帖]Jmeter学习笔记(十九)——后置处理器之正则表达式的使用</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41352.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11733005.html 一、正则表达式提取器的作用 允许用户从服务器的响应中通过使用perl的正则表达式提取值。作为一个后置处理器,该元素会作用在指定范围的取样器,应用正则表达式,提取所需要的值,生成模板</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/十九/">十九</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41396.html">[转帖]Jmeter学习笔记(十)——元件的作用域和执行顺序</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41396.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11582891.html jmeter是一个开源的性能测试工具,它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系,那么随着它们的顺序和所在的域不同,它们在执行的时候,也会有很多不同。 jmete</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/元件/">元件</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41395.html">[转帖]Jmeter学习笔记(十一)——定时器</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41395.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11571524.html 默认情况下,Jmeter线程在发送请求之间没有间歇。不设置定时器,短时间内会产生大量访问请求,导致服务器被请求淹没,利用Jmeter进行压测时,一般会和定时器一起,控制请求的吞吐量</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/十一/">十一</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41390.html">[转帖]Jmeter学习笔记(十七)——jmeter目录结构</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41390.html" class="lead">原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一、bin目录examples: 目录中有CSV样例 jmeter.bat windows的启动文件 jmeter.log jmeter运行日志文件 jmeter.sh linux的启动文件 jme</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/十七/">十七</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41412.html">[转帖]jmeter学习笔记(二十二)——监听器插件之jp@gc系列 </a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41412.html" class="lead">一、jp@gc - Actiive Threads Over Time 不同时间活动用户数量展示 下面是一个阶梯加压测试的图标 二、jp@gc - Transactions per Second ,即TPS:每秒事务数 性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/二十二/">二十二</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41411.html">[转帖]Jmeter学习笔记(二十三)——生成HTML性能报告</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41411.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11759316.html 有时候我们写性能报告的时候需要一些性能分布图,JMeter是可以生成HTML性能报告的。这篇博客,简单介绍下在利用jmeter进行性能测试时,是如何生成HTML的可视化测试报告的 </a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/二十三/">二十三</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41402.html">[转帖]Jmeter学习笔记(六)——使用badboy录制脚本</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41402.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11506274.html 1、下载安装 可以去badboy官网下载地址:http://www.badboy.com.au,如果官网打不开也可以去网上搜索下载。 下载之后点击BadboyInstaller-2</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/使用/">使用</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41401.html">[转帖] Jmeter学习笔记(七)——监听器元件之察看结果树</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41401.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11507289.html 在jmeter中,如果我们需要查看请求结果就需要添加查看结果树,这个监听器元件有那些功能呢? 一、察看结果树界面如下 二、察看结果树界面功能说明 1、所有数据写入文件 (1)文件名</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/监听器/">监听器</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41400.html">[转帖]Jmeter学习笔记(八)——监听器元件之聚合报告</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41400.html" class="lead">https://www.cnblogs.com/pachongshangdexuebi/p/11507298.html 1、聚合报告添加 聚合报告是常用的监听器之一,添加路径: 点击线程组->添加->监听器->聚合报告 2、聚合报告界面及说明 Label:请求的名称,就是我们在进行测试的httpre</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/监听器/">监听器</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> <div class="article-list"> <h6> <a target="_blank" href="https://www.pmdaddy.cn/tech/41399.html">[转帖]Jmeter学习笔记(九)——响应断言</a> </h6> <p> <a target="_blank" href="https://www.pmdaddy.cn/tech/41399.html" class="lead">Jmeter学习笔记(九)——响应断言 https://www.cnblogs.com/pachongshangdexuebi/p/11571348.html Jmeter中又一个元件叫断言,用于检查测试中得到的响应数据等是否符合预期。断言又13种,目前在使用过程中使用到的是响应断言。 有时候请求成</a> </p> <div class="d-flex flex-row flex-nowrap justify-content-between align-items-center mt-2"> <div class="footer-item"> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/jmeter/">jmeter</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/学习/">学习</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/笔记/">笔记</a> <a class="btn btn-tags btn-xs rounded-pill me-2" href="/topic/响应/">响应</a> </div> <div class="d-flex flex-row flex-nowrap"> <div class="footer-item"> <i class="bi bi-eye"></i> <span>0</span> </div> </div> </div> </div> </div> </div> <div class="col col-md-3 d-none d-md-block"> <div style="height:15px;"></div> <h5 class="mt-2 mb-3"># 热门排行</h5> <a class="ring-title" href="https://www.pmdaddy.cn/tech/52222.html">微软 New Bing AI 申请与使用保姆级教程(免魔法)</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/52009.html">ChatGPT API使用介绍</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/52010.html">ChatGPT开发实战</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/12869.html">一篇带你了解如何使用纯前端类Excel表格构建现金流量表</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/12837.html">手把手教你玩转 Excel 数据透视表</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/53984.html">为什么 C# 可能是最好的第一编程语言</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/35953.html">.NET 入门到高级路线</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/12868.html">提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/12867.html">React + Springboot + Quartz,从0实现Excel报表自动化</a> <a class="ring-title" href="https://www.pmdaddy.cn/tech/12841.html">用Echarts实现前端表格引用从属关系可视化</a> </div> </div> </div> <style> @media (min-width:992px) { .col-md-9 { padding-right: 20px; } } </style> <script src="https://www.pmdaddy.cn/resource/js/highlight.js"></script> <script src="https://www.pmdaddy.cn/resource/js/clipboard.min.js"></script> <script> $(function() { $('#nav-news').addClass('active'); btp.initHighLightCode(); }); </script> </div> <div class="footer"> <div class="mt-2">© PmDaddy. 2023 PmDaddy教程网 All rights reserved.</div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?a56ed108661f332cb1c6eb0a7004390c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> </body> </html>