在脚本录制时,服务器返回给客户端的数据,当再次执行脚本时,服务器返回最新的数据给客户端,导致录制时服务器返回的数据不再生效,需要在脚本中关联到服务器返回的最新数据,以便后续使用
1.关联的添加方式
在需要获取服务器返回最新数据的请求下–>右键–>后置处理器–>正则表达式

2.正则表达式的介绍

Apply to :应用范围
1)Main sample and sub-samples:主请求及所属的子请求
2)Main sample only:仅主请求
3)Sub-samples only:仅子请求
4)JMeter Variable Name to use:使用jmeter变量(直接使用变量名称,不用加${})
引用名称:匹配出来的信息通过此名称进行访问
正则表达式:正则表达式提取器使用此串进行信息匹配
模板:用$$引用起来,如果正则表达式中只有一个正则表达式,则使用$1$,如果在正则表达式中有多个正则表达式,则可以使用$1$$2$$3$等等
匹配数字:0代表随机取值,正数代表取第几个值,负数代表全部取值
缺省值:如果参数没有取到值,那默认给一个值(建议给一个默认值,否则在压测过程中,当前迭代未取值,且未设置缺省值时,就会取上一次迭代的关联值)
注:
1.可添加debug sampler查看关联的情况
2.匹配数字(0代表随机)的解释:
1)当匹配数字为0或者正数时,引用时直接使用${引用名称},如${g_id}
2)当匹配数字为负数时,引用时使用${引用名称_序号},序号代表关联值得第几个值
如:下图中${g_id_matchNr}代表匹配的总数量,${g_id_序号}代表匹配到的第几个值,${g_id_序号_g0}代表正则表达式中第几次匹配的整个字符串



3)当正则表达式中含有两个待关联字符串且匹配数字为负数时,引用时使用${引用名称_序号_gn},gn代表第几个字符串,比如第一个字符串为g1,第二个字符串为gn,序号代表关联得第几个值
比如下图中正则表达式中的待关联的字符串为2,
下面详细介绍关联到的值:
g_id_1=27
g_id_1_g=2
g_id_1_g0=<a href=’/course/27.html’ target="_blank" title =‘HTML 开发手册’ class=
g_id_1_g1=27
g_id_1_g2=HTML 开发手册
g_id_matchNr=5
其中
${g_id_1}代表正则表达式中第一个字符串关联到的第一个值,1代表第一次
${g_id_1_g}代表正则表达式中第一次关联到几个值,1代表第一次
${g_id_1_g0}代表正则表达式中第一次关联到的整体的字符串,1代表第一次
${g_id_1_g1}代表正则表达式中第一个字符串关联到的第一个值,1代表第一次,g1第一个字符串
${g_id_1_g2}代表正则表达式中第二个字符串关联到的第一个值,1代表第一次,g2第二个字符串
${g_id_matchNr}代表匹配到的总数量



3.当关联的字符串中包含特殊字符(如:* . ? + $ ^ [ ] ( ) { } | / )时,需要在特殊字符前加\
4.$1$、$2$、$3$代表匹配模板,如果正则表达式中有多个正则表达式,则第二个正则表达式使用$2$
经验证发现,如果正则表达式中只有一个正则表达式时,模板必须使用$1$,否则会报错,如果正则表达式中有多个表达式(n),则模板一般使用$1$$2$$3$…$n$,但是仅使用$1$,也可以关联到所需值
5.基本的正则表达式解释:
. 匹配除”\r\n”之外的任意单字符
+ 匹配至少一次*匹配零次或者多次
+ ? 严格匹配字符串,在第一次遇到字符串右边界的是否就停止,如果不添加?匹配的字符串就会比预期的要多
( 匹配字符串的开始位置
) 匹配字符串的结束位置
本文介绍了在JMeter中如何使用正则表达式提取器进行关联,包括关联的添加方式、正则表达式的配置选项以及匹配数字的含义。通过详细解释不同匹配数字的引用方式和正则表达式的基础知识,帮助读者掌握如何从服务器响应中提取并关联最新数据。

584

被折叠的 条评论
为什么被折叠?



