转载:https://www.cnblogs.com/du-hong/p/13217399.html
边界提取器,使用JMeter5.0的边界提取器,不需要写复杂的正则表达式,只要填写左右边界即可,我们想从接口中提取一些想用的东西,不习惯用正则提取器和json提取器,今天我们来介绍下边界提取器,相对前者较简单些。它通过左右边界来提取需要的内容,它可以匹配任何格式的内容,如文本、json、xpath、html等等,使用也很简单,分别填写要提取内容的左右边界即可,很灵活。
1、我们先来看看这个边界提取器长得是啥样子,路径:线程组 > 添加 > 后置处理器 > 边界提取器,如下图所示:
2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Update Once Per Iteration:标识是否每轮迭代更新一次元素;
Apply to(应用范围):
Main sample and sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample
Sub-samples only:应用于子sample
JMeter Variable Name to use:应用于变量命名的内容
Name of created Variable:保存的变量名,后面使用${Variable names}引用
JSON Path Expression:json表达式
Match No.(0 or Random):匹配的值是哪一个,默认不填写是获取符合条件的第一个,这个与正则表达式的类似(0为随机、N为获取第N个、-1获取所有)
Compute comcatemation var(suffix_ALL):如果发现许多结果,插件将使用“,”分隔符将它们连接起来,并将其存储在名为_ALL的var中
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)Apply to:选Main sample only。
(2)要检查的响应字段:选主体。
(3)引用名称:提取出来参数引用的名称。
(4)提取值左边界 :
(5)提取值右边界 。
(6)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
(7)缺省值:如果参数没有取得到值,那默认给一个值让它取。
3、紧接着再添加一个取样器 提取出来的值用来传参,用来获取提取的param,提取出来的值用来传参,如下图所示:
4、配置好以后,点击“保存”,运行JMeter,查看表格结果,如下图所示:
度娘请求结果:
提取出来的值用来传参请求结果: