大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 JMeter正則表達(dá)式詳解

JMeter正則表達(dá)式詳解

更新時(shí)間:2021-06-28 12:31:03 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1031次

1.概覽

JMeter中包含范本匹配軟件Apache Jakarta ORO 。在Jakarta網(wǎng)站上有一些關(guān)于它的文檔,例如a summary of the pattern matching characters :

http://jakarta.apache.org/oro/api/org/apache/oro/text/regex/package-summary.html。

另外,還有關(guān)于該軟件老版本的文檔OROMatcher User's guide ,也許會(huì)有一些幫助。URL地址:http://www.savarese.org/oro/docs/OROMatcher/index.html。

JMeter的范本匹配與Perl語(yǔ)言的范本匹配類似。一個(gè)安裝完整的Perl會(huì)包含很多關(guān)于正則表達(dá)式的文檔(搜尋perlrequick、perlretut、perlre、perlreref)。

我們有必要分清楚包含(Contains)和匹配(Matches)的差異,它們用于響應(yīng)斷言測(cè)試元件:

包含(Contains)意味著正則表達(dá)式至少部分匹配目標(biāo),例如,'alphabet' 包含 'ph.b.',因?yàn)檎齽t表達(dá)式匹配其子字符串'phabe'。

匹配(Matches)意味著正則表達(dá)式完全匹配目標(biāo)。例如,'alphabet'匹配'al.*t'。

在這一情況下,它等同于使用^ 和$封裝正則表達(dá)式,即'^al.*t$'。但是事情并不總是這樣。例如,正則表達(dá)式'alp|.lp.*'包含于'alphabet',但并不匹配'alphabet'。

原因在于當(dāng)范本匹配器在'alphabet'中找到序列'alp'后,就會(huì)停止嘗試其他組合,而且'alp'不同于'alphabet',它不包含'habet'。

不同于Perl,沒(méi)必要將正則表達(dá)式用//封裝。

2.實(shí)例

(1)提取單個(gè)字符串

假設(shè)測(cè)試人員期望匹配Web頁(yè)面的如下部分:name="file" value="readme.txt">并提取readme.txt。

一個(gè)符合要求的正則表達(dá)式:

name="file" value="(.+?)"> 。

上面用到的特殊字符包括如下幾個(gè)。

( 和 ):封裝了待返回的匹配字符串。

.:匹配任何字符。

+:一次或多次。

?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止。

如果沒(méi)有?,在找到第一個(gè)">后,會(huì)繼續(xù)尋找,直到最后一個(gè)">,這么做很可能不是測(cè)試人員期望的。

盡管上面的表達(dá)式可以達(dá)到目的,但是使用如下表達(dá)式更有效率:name="file" value="([^"]+)">,其中[^"]-意味著匹配任何東西(除了")。在這種情況下,匹配引擎在找到第一個(gè)右側(cè)"后,就會(huì)停止搜索。而 上面例子中的匹配引擎會(huì)去尋找">。

(2)提取多個(gè)字符串

假設(shè)測(cè)試人員期望匹配Web頁(yè)面的如下部分:name="file" value="readme.txt">,并提取file.name和readme.txt。

一個(gè)符合要求的正則表達(dá)式:

name="([^"]+)" value="([^"]+)"

這會(huì)創(chuàng)建兩個(gè)組合,并可用于JMeter正則表達(dá)式模板,形如$1$ 和$2$。

JMeter正則表達(dá)式提取器會(huì)將組合的值放在指定變量中。

例如,

引用名稱:MYREF。

正則表達(dá)式:name="(.+?)" value="(.+?)"。

模板:$1$$2$。

不要用/ /封裝正則表達(dá)式。

如下變量的值將會(huì)被設(shè)定。

MYREF: file.namereadme.txt。

MYREF_g0: name="file.name" value="readme.txt"。

MYREF_g1: file.name。

MYREF_g2: readme.txt。

這些變量后續(xù)可以在JMeter測(cè)試計(jì)劃中引用,形如${MYREF}、${MYREF_g1}等。

3.關(guān)鍵字

正則表達(dá)式使用特定字符作為關(guān)鍵字,這些字符對(duì)正則表達(dá)式引擎有特殊意義。在字符串中使用這些字符必須進(jìn)行轉(zhuǎn)義(使用反斜杠"\"),目的是將它們當(dāng)成原始字符,而非正則表達(dá)式的關(guān)鍵字。下面是關(guān)鍵字和它們的含義。

( ):組合。

[ ]:字符集合。

{ }:重復(fù)。

+ ?:重復(fù)。

.:任意匹配字符。

\:轉(zhuǎn)義字符。

| -:選擇符。

^ $:字符串或行的起始和結(jié)尾。

注意,ORO不支持\Q和\E關(guān)鍵字。

4.修改器(Modifier)

理論上修改器可以被放置在正則表達(dá)式的任何地方,并被放置的位置開(kāi)始向后生效。(ORO存在一個(gè)BUG,修改器不能放在正則表達(dá)式的末尾。盡管修改器在這里不生效)。

單行(?s)和多行(?m)修改器通常都被放在正則表達(dá)式的開(kāi)頭。

忽略(?i)修改器可以被用來(lái)僅僅影響正則表達(dá)式的某一部分,例如:

Match ExAct case or (?i)ArBiTrARY(?-i) case

由于單行和多行修改器的設(shè)置不同,范本匹配的表現(xiàn)也略有不同。請(qǐng)注意,單行和多行操作符之間沒(méi)有任何關(guān)聯(lián);它們可以被單獨(dú)指定。

(1)單行模式

單行模式只影響關(guān)鍵字符"."。默認(rèn)情況下,"."可以匹配任何字符(除了換行)。在單行模式下,"."還匹配換行。

(2)多行模式

多行模式只影響關(guān)鍵字符"^"和"$"。默認(rèn)情況下,"^"和"$"僅僅匹配字符串的開(kāi)始和結(jié)尾。而在多行模式下,"^"和"$"匹配每一行的開(kāi)始和結(jié)尾。

在動(dòng)力節(jié)點(diǎn)官網(wǎng)上有更多Java相關(guān)視頻教程可以免費(fèi)下載,在技術(shù)文檔頁(yè)面也有JMeter教程文檔可以學(xué)習(xí)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 四虎视频在线精品免费观看 | 久久久久久久影院 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | 久久视精品 | 国产精品美女一区二区 | 香蕉国产在线观看免费 | 91sao国产在线观看 | 国产福利在线视频 | 91视频最新地址 | 久久不卡一区二区三区 | 亚洲成网站www久久九 | 成人午夜影视全部免费看 | 视频精品一区二区三区 | 国产日韩欧美精品 | 日日干天天干 | 91大学生视频 | 久久乐国产精品亚洲综合m3u8 | 福利精品 | 久久99综合国产精品亚洲首页 | 波多野结衣中文字幕一区二区 | 五月激情综合婷婷 | 久久国产资源 | 欧美视频一二三区 | 四虎欧美 | 视频一区二区国产 | 国产一区二区三区 | 亚洲婷婷综合色高清在线 | 午夜时刻免费实验区观看 | 久久爱成人网 | 国产夫妻久久 | 成人免费观看网欧美片 | 成人免费一级毛片在线播放视频 | 国产se| 欧美一级艳片爽快片 | 中国一级毛片视频 | 亚洲视频中文字幕在线 | 五月天在线免费视频 | 男女精品视频 | 一级毛片免费不卡在线 | 国产精品久久久久a影院 | 香蕉人人超 |