首页 > 编程知识 正文

jmeter接口测试正则表达式,jmeter正则匹配

时间:2023-05-05 03:01:51 阅读:209763 作者:490

Jmeter正则表达式的使用
1.什么情况下使用
断言
传参
2.怎么添加正则表达式
右键》后置处理器》正则表达式

3.正则表达式提取器说明
Apply to:应用范围

要检查的响应字段:样本数据源。

引用名称:其他地方引用时的变量名称,我这里写的signature,可自定义设置,引用方法:${引用名称}

正则表达式:数据提取器,()括号里为你要获取的的值。“signature”:" 相当于左边界,"相当于右边界。而括号里的值为正则表达式,用来匹配所需要获取的数据

模板:$$对应正则表达式提取器类型。-1全部,0 随机,1第一个2第二个,以此类推,若只有一个正则一般就填写 1 1 1

匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1

缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 0。

4.案例1-仅一个可匹配的结果,也是最常用的一种
待匹配文本如下

{"resp":true,"respObj":[{"publicKeyWithType":"0103482c75dbdf532ddc75eb79c16cf2d607a725078c105d5468e9f69ffd114898b5","signature":"01b2e50d23b41f6d1570da53a377ea021120cddfb27fd8fa99de647e8643dcfc8aedb1ae95ac65692072aacc14b5d3f9fe1d6784dadaea1e4071dfd38388057d23"}],"infoMsg":null,"infoCode":null,"resqTime":"201907121537139841"}

模板: 1 1 1
匹配数字:1或者0都可以,因为只有一个值,不管取第一个还是随机取都一样
这里我需要取出signature的值,那么正则如下:

传参,调用方法——${signature}

{ "publicKeyWithType": "1", "signature": "${signature}" }

5.案例2-多个待匹配结果
待匹配文本如下

{"resp":true,"respObj":[{"publicKeyWithType":"0103482c75dbdf532ddc75eb79c16cf2d607a725078c105d5468e9f69ffd114898b5","signature":"01c3dea25ca14316da0df771e911bfb4ef3c6e6eecf51b06d02105677d6a60924cabb8fae0d1fb700381f35b6856e947a1847550699571967d88dc0f863085229c"},{"publicKeyWithType":"01038983fcd04773404d388cfbd90bc3d4a384dcc08a084b14741b259f8cb2d382d2","signature":"017a32d67109f954faafc9099e92438b7f4643ac52026b9ea4642fc3b4bad8b0fa39670a0b92a4ee2e8d13b6dc88ede25aa0dfccfcce588aec463573293162b0e2"},{"publicKeyWithType":"0102341bbacc92291dc52af7307ecd54686aa09eb6a18d7dab16d4c3206dd45fac8b","signature":"01de065d44b1e0bcf0cc5f38e149b3f81711e9cd4efca85a0c1dd170de1d567f070286eb255dd40811f76d14557fd323002c0bdf05d78ee43ae9015c8572dca111"}],"infoMsg":null,"infoCode":null,"resqTime":"201907121537143789"}

这里我同样需要取出signature的值,而且是多个signature的值分别取出,此时signature可以当做一个数组的方式来取值,那么正则如下:

看出有什么区别了吗?
只有一个区别那就是【匹配数字】这里变成了“-1”
-1代表取所有的值

重点来了,我们看看怎么获取这里的多个signature在其他地方赋值?
其实很简单——————————————${signature_n}

{ "signatureMsg": [ { "publicKeyWithType": "1", "signature": "${signature_1}" }, { "publicKeyWithType": "1", "signature": "${signature_2}" }, { "publicKeyWithType": "3", "signature": "${signature_3}" } ]

6.多正则表达式
如图
此时模板才会变更为 1 1 1 2 2 2
记住:只有一个正则表达式时填: 1 1 1
两个正则表达式时填 1 1 1 2 2 2
n个正则表达式时填 1 1 1 2 2 2… n n n

调用方法

"user": { "id": "${users_g1}", "name": "${users_g2}" }

这里就有一丢丢区别了
${signature_gn}

7.附正则表达式调试方法
在需要调用的请求下面添加Debug-Sample



以上,本人亲测,如有问题欢迎占沙发

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。