05-性能测试之JMeter关联

导读

  1. JMeter关联简介
  2. 正则表达式介绍
  3. 登录脚本调试

1、JMeter关联简介

JMeter中关联可以在需要获取数据的请求上,“右键”|后置处理器,然后根据需要选择即可。这里,我们介绍正则表达式提取器。
(1)正则表达式提取器
这里写图片描述
这里写图片描述

  • 名称: 可以随意设置,名称最好有业务意义。
  • 注释:可以为空,可以随意设置;
  • Apply to:应用范围,4个选项;
    • Main sample and sub-samples:匹配范围包括当前的父取样器及其子取样器
    • Main sample only:匹配范围是当前父取样器;
    • Sub-samples only:仅匹配子取样器;
    • JMeter Variable:支持对JMeter变量值进行匹配;
  • 要检测的响应字段:针对响应数据的不同部分进行匹配,共7个选项。
    • 主体:响应数据的主体部分,排除Header部分;Http协议返回请求的主体部分就是Body;
    • Body(unescaped):针对替换了转移码的Body部分;
    • Body as a Document:返回内容作为一个文档进行匹配;
    • 信息头:只匹配信息头部分的内容;
    • Request Headers:只匹配请求头部分的内容;
    • URL:只匹配URL链接;
    • 响应代码:只匹配响应代码,比如200、304、404等;
    • 响应信息:匹配响应信息,比如处理成功,返回“成功”字样或“OK”字样;
  • 引用名称:匹配出来的信息通过此名称进行访问,比如,引用名称=name,则使用${name}来应用匹配出来的值;
  • 正则表达式:正则表达式使用此串进行信息匹配;
  • 模板:正则表达式可以设置多个模板进行匹配,在此可以指定运用哪个模板,模板自动编号, 1 1 指第一个模板,2指第二个模板,依次类推。 0 0 <script type="math/tex" id="MathJax-Element-449">0</script>指全文匹配;
  • 匹配数字:因为匹配的值有可能会有多个,如果这里填0,则代表从匹配的结果中随机取一个;可以与For Each Controller一起使用来遍历;
  • 缺省值:如果没有匹配到可以指定一个默认值
  • use empty deafult value:勾选的话,就把空作为默认值

2、正则表达式介绍

(1)学习地址:

(2)正则测试器

(3)JMeter匹配字符串,常用正则
一般(.+?)和(.*?)能够满足我们80%的使用场景。

  • left(.+?)right
  • left(.*?)right

left对应匹配目标的起始字符
right对应匹配目标的结束字符

比如下面这段文字

<div id="login-form">
  <form onsubmit="return keepAnchorOnSignIn(this);" action="/redmine/login" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="RMUPSOjNbzIfs4/qNIY4/I5FIELi6OE4i2W1i3frKB8X0m69h/OB2Z6ut8rihveBz2uXD6IFwInAoRwhlRcGbg==" />

想匹配这段文字中的authenticity_token的value值,我们就可以这样写
token\” value=\”(.+?)\”
左边界用token” value=”来固定,右边界用”来固定,中间()里边的是要匹配的内容

注意:引号需要转义

(4)适用性表达式
前面的两个正则可以搞定我们80%的场景,剩余20%该怎么整呢?
首先思考一下,上面的正则什么情况不使用。比如left和right不唯一,或者left、right唯一,但是为变量。
请参考文章:https://mp.weixin.qq.com/s/zWkm4MmE3E84RWvRCdg_jg

3、登录脚本调试

(1)添加正则表达提取器
http请求→添加→后置处理器→正则表达式提取器

(2)添加Debug PostProcessor用于验证

(3)书写正则表达式
这里写图片描述
这里写图片描述

大家可以仔细看看,登录和登出两个请求的token值是不一样的,登录的token是从前一个请求的响应中获取的;登出的token是从登录后的请求响应获取的,因此,我们需要分别添加。

(4)运行,查看结果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值