jmeter正则表达式提取html,Jmeter 中正则表达式提取器Regular Expression Extractor

jmeter正则表达式提取html,Jmeter 中正则表达式提取器Regular Expression Extractor_第1张图片

正则表达式提取器

点击后置处理器中Post Processors 中的正则表达式提取器 Regular Expression Extractorhtml

Appy to: 表示做用于哪个请求

Main sample and sub-samples: 主要的请求和子请求

Main sample only: 这个是默认选项,表示只做用在主要的请求

Sub-samples only:

JMeter Variable Name to usejava

Field to check:表示从哪里去匹配

Body: 这个是默认选项

Body(unescaped):

Body as a Document:

Response Headers:

Request Headers:

URL

Response Code

Response Message正则表达式

Name of created variable: card提取出来的数据存储为一个变量,好比这样定义为变量 card

Regular Expression: {"resCode":"000","resMsg":"ok","resCardNum":"(.+)"} 匹配响应时采用的一个规则;该规则为正则表达式

Template ( $i$ where i is capturing group number,start at 1) 模板: $1$

Match No.(0 for Random)

Default Value:json

上述是一个简单的注册接口,注册成功后分配卡号,并将卡号信息在ResponseBody中进行返回

若以后使用card变量,用${card}使用,注意大小下啥的,都要与当初定义的相一致

正则表达式进行提取的时候:

. 表示匹配任意字符串

+ 表示匹配一次或屡次

? 表示匹配到第一个匹配项后即中止匹配

若返回体中只能匹配到一个card,那直接如我写的$1$便可,无需考虑过多

若返回体中有多个字符,好比是一个抽奖接口,一次能够返回多个奖的那种,那你用prize会获得多个值,在Template中,用$1$表示解析到的第一个值提取出来,同理

{

"resCode": "000",

"resMsg": "ok",

"prize": "prize1"

}

{

"resCode": "000",

"resMsg": "ok",

"prize": "prize2"

}

{

"resCode": "000",

"resMsg": "ok",

"prize": "prize3"

}

$2$表示解析到的第2个值提取出来

$3$表示解析到的第3个值提取出来

【不要考虑个人返回体格式是什么,能够看出是能匹配到3个prize,那我填写了$1$表示将规则中第一个括号的模式匹配到的内容赋给变量prize】

模板选项和下面的Match No有点重复,Match选项中填写0表示随机,那只有一个值,随机也只能是这一个值

有多个值,想要具体哪个,在match中用对应的数字进行表示,好比第一个,第二个等等

Default Value: 有时候,返回体中没有返回card这个值,怎么办?给他设定一个默认值。 这个要看具体状况。

经常使用的就如我上面的截图,Match and Default Value 都空置着呗

Jmeter中还有其余的提取器,好比如今大多数接口是json格式的入参和出参,用json提取器JSON Extractor 也很是好用,能根据层级进行提取

https://www.cnblogs.com/qianjinyan/p/9205142.html

有的Jmeter版本比较老,Json提取器须要下载插件才能得到

原文出处:https://www.cnblogs.com/qianjinyan/p/6632093.htmldom

你可能感兴趣的:(jmeter正则表达式提取html,Jmeter 中正则表达式提取器Regular Expression Extractor)