jmeter的参数化,检查点,关联,正则表达式

本节是基础篇第二节,主要介绍jmeter的参数化,检查点,关联,正则表达式,其中参数化、检查点在实际压测中使用最多。

 

一、检查点 & 参数化

 

1、检查点
      即是添加断言,这个在上篇文章中已提到,具体如下图

2、参数化
 
a、添加CSV Data Set Config配置组件,实现参数化。这里以注册为接口为例对注册用户名进行参数化。

 

b、准备参数化文件,这里命名userName_data.txt,与脚本存在同级目录(下面用的),内容如下

 

c、配置CSV Data Set Config,读取对应的数据文件

 

d、将请求接口中的参数替换成变量

 

 

强调下:至此参数化算是完成了,经常有人问我有必要参数化?其实参数化在性能压测过程中是必须的,抛开程序过程中可能存在缓存,数据库本身也会有缓存,如果使用一条数据反复跑的话,实际的压测结果就不符合业务场景。

二、关联 & 正则表达式
      
这里以接口https://api.midukanshu.com/logstash/userbehavior/report为例,请求方式POST,返回结果{"code":0,"message":"成功","currentTime":1568203926,"data":{}},通过正则表达式提取"currentTime"的值。


1、调试post接口https://api.midukanshu.com/logstash/userbehavior/report(如下如图)

2、请求一次,保证接口能正常返回,如下:

 

3、关联 & 正则表达式

     后置处理器是JMeter的关联组件,可以从服务器响应数据中查找到需要的数据。常用的是正则表达式提取器(Regular Expression Extractor)

 

a、创建正则表达式提取器,Regular Expression Extractor(如下图)

 

b、提取接口返回参数"currentTime"

 

c、添加后置处理组件中的BeanShell PostProcessor,并输出正则表达式提取的值到jmeter的log中

 

d、执行脚本,查看jmeter的log是否有提取的字符

到此本节基本算是完成,集合点在这里没有着重介绍,这里不做重点,工作中这块也用到较少,下面主要介绍正则表达的一些解释:

 

(1)引用名称:下一个请求要引用的参数名称,如填写你nowtime,则可用${nowtime}引用它。

(2)正则表达式

    ()括起来的部分就是要提取的。

    .匹配任何字符串。

    +:一次或多次。

    ?:不要太贪婪,在找到第一个匹配项后停止。

注:(.+?)[.\n]+可以匹配换行符在内的所有字符。

(3)模板:用$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2,$3等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组。

(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

 

 

作为一个对性能测试有情怀的人,希望过往的经验能够对新来人有一定的帮助,公众号"性能测试践行"中原创作者日常工作中典型案例和自己每时每刻对性能新的认知,希望喜欢!

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值