Jmeter脚本调试之关联----(正则表达式)
脚本调试
关联,在脚本中,是必应用到的一个设置方法,将脚本中,每次都会动态变化的特殊值进行关联。一个能正确执行的脚本,都需要进行关联(LR、jmeter)。
Jmeter关联:
在脚本回放过程中,客户端发出请求,通过Jmeter中的正则表达式提取器所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法称作关联。通俗点说,就是把脚本中某些写死的(hard-coded)数据,转变成撷取自服务器所送的、动态的、每次都不一样的数据。
关联分两种,提取单个字符串和多个字符串。
先添加正则表达式提取器,如下所示:
正则表达式提取器:
允许用户从服务器的响应中通过使用perl的正则表达式提取值。该元素会作用在指定范围取样器,用正则表达式提取所需值,生成模板字符串,并将结果存储到给定的变量名中。
提取单个字符串
假如想匹配Web页面的如下部分:
name="csrf_token" value="a8443cafdd8ea7f9"/>
提取该值,正则表达式写为:name="csrf_token" value="(.+?)"/>。
修改脚本如下:
可以添加一个取样器 来查看所得的所有值
运行脚本,可以查看到如下结果:
token=6a353e4b0c9fd4e6
token_g=1
token_g0=name="csrf_token" value="6a353e4b0c9fd4e6"/>
token_g1=6a353e4b0c9fd4e6
提取多个字符串
假如想匹配Web页面的如下部分:
name="csrf_token" value="a8443cafdd8ea7f9"/>并提取csrf_token和a8443cafdd8ea7f9。
添加正则提取器,写入正则表达式,如下所示,正则表达式为:name="(.+?)" value="(.+?)"/>。
我们先运行一遍
我们得到了几个值:
token=csrf_token41bbd186910d7c23
token_g=2
token_g0=name="csrf_token" value="41bbd186910d7c23"/>
token_g1=csrf_token
token_g2=41bbd186910d7c23
这就是我们要找的值
上面报错没关系 因为我们还没有修改那个变量名
token_g1 _g2 是系统自己帮你创建的名字 你可以直接使用
token_g1=csrf_token
token_g2=41bbd186910d7c23
再运行一次 就可以了
正则表达式提取器详解:
先看一张图,就是正则提取器的面板,如下所示:
名称: 随意设置, 最好具有业务上的意义, 方便区分
注释: 随意设置, 一般不填写
Apply to: 应用范围, 包含4个选项。
Main sample and sub-samples: 匹配范围包括当前父取样器并覆盖子取样器。
Main sample only: 匹配范围是当前父取样器(一般默认选择这个) 。
Sub-samples only: 仅匹配子取样器。
Jmeter Variable: 支持对Jmeter变量值进行匹配。
要检查的响应字段: 针对响应数据的不同部分进行匹配, 共七个选项。
主体: 响应数据的主体部分, 排除Header部分; Http协议返回请求的主体部分就是
Body:(一般默认选择这个)
Body(unescaped) : 针对替换了转义码的Body部分。
Body as a Document: 返回内容作为一个文档进行匹配。
信息头: 只匹配信息头部分的内容。
URL: 只匹配URL链接。
响应代码: 匹配响应代码, 比如状态码200代表成功等。
响应信息: 匹配响应信息, 比如”成功” “OK”等。
引用名称: 即下一个请求要引用的参数名称, 如填写token, 则可用${token}引用它。
正则表达式: 正则表达式提取器根据该处的设置进行信息匹配
模板: 用$$引用起来, 如果在正则表达式中有多个正则表达式, 则可以是$1$, $2$等等, 表示解析到的第几个值给token, $1$表示第一个模板, $0$表示全文匹配。
匹配数字: 用正则表达式匹配的时候, 可能出现多个值的情况, 为正数用来确定取一组值中的第几个, 为0表示随机取匹配值, 负数取所有值。
默认值: 如果没有匹配到可以指定一个默认值。
正则表达式匹配注意事项:
如果不能匹配,那么显示变量名称,如 ${token}
正则的操作符与含义如下所示:
本文仅代表作者观点,系作者@请多指教 发表。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文章出处: http://www.cnblogs.com/yushengaqingzhijiao/p/7652639.html
Jmeter脚本调试之关联----(正则表达式)的更多相关文章
- Jmeter脚本调试——关联(正则表达式)
关联,在脚本中,是必应用到的一个设置方法,将脚本中,每次都会动态变化的特殊值进行关联.一个能正确执行的脚本,都需要进行关联(LR.jmeter). Jmeter关联: 在脚本回放过程中,客户端发出请求 ...
- jmeter脚本调试过程
1.添加监听器:查看结果树,再回放脚本 2.权限验证,例如:cookies a.谷歌浏览器F12获取session
- 调试JMETER脚本的5种方法
如果你曾经设计过JMeter脚本,我敢打赌你至少有一次弄清楚Json Extractor无法正常工作的原因.你猜怎么着?我去过那儿! 你知道为什么最好的JMeter Performance Engin ...
- Jmeter关联,正则表达式提取器使用1
Jmeter关联,正则表达式提取器使用 一.Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,如下图有很多种方法可以提取动态 ...
- Jmeter 压力测试笔记(3)--脚本调试/签名/cookie/提升吞吐量/降低异常率/提升单机并发性能
import XXXsign.Openapi2sign;---导入jar包中的签名方法 String str1 = "12121"; ---需要被签名的字段:向开发了解需要哪些哪些 ...
- Jmeter脚本录制方法(一)——分别使用Badboy录制和Jmeter自带的代理服务器录制
Jmeter录制方式分三种,分别是:使用Badboy录制.Jmeter自带的代理服务器录制和手工录制,今天先介绍前两种录制方法. Badboy录制 Badboy是用C++开发的动态应用测试工具, 其拥 ...
- Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- Jmeter脚本录制方法(一)分别使用Badboy录制和Jmeter自带的代理服务器录制
Jmeter录制方式分三种,分别是:使用Badboy录制.Jmeter自带的代理服务器录制和手工录制,今天先介绍前两种录制方法. Badboy录制 Badboy是用C++开发的动态应用测试工具, 其拥 ...
随机推荐
- 利用jquery.chained.remote实现多级级联
多级级联一直是前端比较烦人的一个功能,本次用jquery的插件,chained.remote实现多级级联. 应用场景:至少有二个下拉框,下拉框的个数不定. 应用步骤: 1.引入js文件,当然这个插件需 ...
- Ubuntu安装微信开发者工具
参考教程:https://ruby-china.org/topics/30339 1.下载nw sdk $ wget -c http://dl.nwjs.io/v0.15.3/nwjs-sdk-v0. ...
- www.netcraft.com查看站点服务器使用的是什么操作系统
查看站点服务器使用的是什么操作系统
- [LeetCode] 动态规划入门题目
最近接触了动态规划这个厉害的方法,还在慢慢地试着去了解这种思想,因此就在LeetCode上面找了几道比较简单的题目练了练手. 首先,动态规划是什么呢?很多人认为把它称作一种"算法" ...
- iOS转场动画封装
写在前面 iOS在modal 或push等操作时有默认的转场动画,但有时候我们又需要特定的转场动画效果,从iOS7开始,苹果就提供了自定义转场的API,模态推送present和dismiss.导航控制 ...
- Linux权限分析
我看过网上的一些有关Linux的权限分析,有些说的不够清楚,另外一些说的又太复杂.这里我尽量简单.清楚的把Linux权限问题阐述明白,Linux权限没有那么复杂. Linux权限问题要区分文件权限和目 ...
- Linux第三节整理 、增删改查、用户管理
帮助+基本文件管理+用户管理 1.怎么查看命令帮助 ls --help man ls :查看命令/man 5 file:查看配置文件 2.基本文件管理,通过{查,建,删,改} 四个维度介绍了不同的命令 ...
- Apache Avro# 1.8.2 Specification (Avro 1.8.2规范)二
h5 { text-indent: 0.71cm; margin-top: 0.49cm; margin-bottom: 0.51cm; direction: ltr; color: #000000; ...
- jquery图片延迟加载 及 serializeArray、serialize用法记录
1.使用jquery实现 图片延迟加载 由于用户访问页面需要加载很多的图片,延迟加载技术在电子商务网站领域越来越普及,淘宝商城,京东商城,凡客等访问量巨大的电子商务站点为了增加用户用户体验,访问速度以 ...
- VS 2017 Web项目需要安装Sql Server 2012 Express LocalDB问题
最近在做mvc5的练习 ,结果到了数据库连接这一阶段就出现了问题,开始我以为<add name="MovieDBContext" connectionString=" ...