Jmeter从零开始(三) -- 正则表达式的简单运用

本篇介绍Jmter在发送请求时,经常会遇到的一种情况:

假如我们需要发送一个请求,这个请求里需要一个参数,但是这个参数并不是固定的,他是上一个请求返回的,而且每次返回都不一样,这时候我们要怎么处理呢?

首先,我们创建一个HTTP的请求,也就是前置请求,方法同上一篇介绍的一样,添加线程组,创建HTTP请求,添加查看结果树,然后启动

如图,这是我们前置请求的结果,例如我们下个请求需要用到红框中标注的这个ID:13010051

首先我们在这个请求中创建一个正则表达式提取器

 然后返回刚才的结果树,左侧选择为RegExp Tester,这样右侧看的更有条理,然后,像Loadrunner左右边界值那样,把我们需要的参数左侧和右侧连带一起粘贴到下面的文本框中,然后我们需要的部分用(.*?)代替

 注意:并不是所有的都要用(.*?)代替,这里讲一下规则:

如何检测我们这样写是否能取到对的值呢?  在文本框的右边有一个test按钮,点击可以查看取样结果:

 这和我们的预期一样,取到了13010051,然后我们把文本框的内容粘贴到正则表达式取样器中。

 这里有一个坑,就是模板,一定不要瞎写,也不要不写,这里将以下规则:

例如我们要在以下响应中取值:

"HeatPowerPlantID":"A","HeatPowerPlantName":"jmeter测试"."HeatPowerPlantID":"B","HeatPowerPlantName":"jmeter测试".

正则表达式提取器模板,样式为:$n$。

若模板为:$0$,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容,取到的值为整个内容,即:

"HeatPowerPlantID":"A","HeatPowerPlantName":"jmeter测试"."HeatPowerPlantID":"B","HeatPowerPlantName":"jmeter测试".

若模板为:$1$,则对应正则表达式中的第一个(.*?)所匹配的内容,即  A

若模板为:$2$,则对应正则表达式中的第二个(.*?)所匹配的内容,即  B

若模板为$1$$2$,则把2个(.*?)所匹配的内容拼接起来,即 AB

模板是可以自由组合的,后续案例中再介绍。

现在我们的正则表达式已经做完了,如何用到下一个请求呢,我们创建下一个HTTP请求,并添加参数:

 我们取到的参数a ,作为下一个请求发送的参数,这个参数的名称为heatPowerPlantIDs,他的值为我们正则表达式中的a,在这里写法为:${a}

至此参数化完成,PS:相比loadrunner的参数化关联,Jmeter的感觉稍微麻烦一点,但是原理都是一样的,都是通过左右边界值来确定参数位置,然后取值。

然后我们点击运行,可以在结果树看到,请求成功,我们成功删除了ID为13010051的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值