大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
转载:https://www.cnblogs.com/du-hong/p/13217399.html
允许用户使用正则表达式从服务器响应中提取值。作为后处理器,此元素将在其范围内的每个Sample请求之后执行,应用正则表达式,提取请求的值,生成模板字符串,并将结果存储到给定的变量名称中。
1、我们先来看看这个正则表达式提取器长得是啥样子,路径:线程组 > 添加 > 后置处理器 > 正则表达式提取器,如下图所示:
2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Apply to(应用范围):
Main sample and sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample
Sub-samples only:应用于子sample
JMeter Variable Name to use:应用于变量命名的内容
Field to check:可检查的字段
(Body、Body(unescaped)、Body as a Document、Response Headers、Request Headers、URL、Response Code、Response Message)
Name of created Variable:保存的变量名,后面使用${Variable names}引用
Regular Expression:正则表达式
Template:模板
Match No.(0 or Random):匹配的值是哪一个,默认不填写是获取符合条件的第一个,这个与正则表达式的类似(0为随机、N为获取第N个、-1获取所有)
Default Values:当没有获取到参数值时的默认值
实例
1、新建测试计划,线程组下添加度娘取样器,如下图所示:
2、使用正则表达式提取器提取度娘取样器响应中(百度一下,你就知道),如下图所示:
<!DOCTYPE html>
<!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta content="always" name="referrer" />
<link rel="stylesheet" type="text/css" href="http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css" />
<title>百度一下,你就知道</title>
</head>
<body link="#0000cc">
<div id="wrapper">
<div id="head">
<div class="head_wrapper">
<div class="s_form">
<div class="s_form_wrapper">
<div id="lg">
<img hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" width="270" height="129" />
</div>
<form id="form" name="f" action="//www.baidu.com/s" class="fm">
<input type="hidden" name="bdorz_come" value="1" />
<input type="hidden" name="ie" value="utf-8" />
<input type="hidden" name="f" value="8" />
<input type="hidden" name="rsv_bp" value="1" />
<input type="hidden" name="rsv_idx" value="1" />
<input type="hidden" name="tn" value="baidu" />
<span class="bg s_ipt_wr"> <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off" autofocus="" /> </span>
<span class="bg s_btn_wr"> <input type="submit" id="su" value="百度一下" class="bg s_btn" /> </span>
</form>
</div>
</div>
<div id="u1">
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
<a href="http://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
<a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
<a href="http://tieba.baidu.com" name="tj_trtieba" class="mnav">贴吧</a>
<noscript>
<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1" name="tj_login" class="lb">登录</a>
</noscript>
<script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script>
<a href="//www.baidu.com/more/" name="tj_briicon" class="bri" style="display: block;">更多产品</a>
</div>
</div>
</div>
<div id="ftCon">
<div id="ftConw">
<p id="lh"> <a href="http://home.baidu.com">关于百度</a> <a href="http://ir.baidu.com">About Baidu</a> </p>
<p id="cp">©2017 Baidu <a href="http://www.baidu.com/duty/">使用百度前必读</a> <a href="http://jianyi.baidu.com/" class="cp-feedback">意见反馈</a> 京ICP证030173号 <img src="//www.baidu.com/img/gs.gif" /> </p>
</div>
</div>
</div>
</body>
</html>
3、然后再在取样器下添加正则表达式提取器,如下图所示:
说明:
(1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。
(2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
(3)模板:用KaTeX parse error: Can’t use function ‘$’ in math mode at position 28: …式中有多个正则表达式,则可以是$̲23$等等,表示解析到的第几个值给title。如: 1 1 1表示解析到的第1个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。
4、紧接着再添加一个取样器 提取出来的值用来传参,用来获取提取的param,提取出来的值用来传参,如下图所示:
5、配置好以后,点击“保存”,运行JMeter,查看表格结果,如下图所示:
度娘请求结果:
提取出来的值用来传参请求结果:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195329.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...