簡體   English   中英

如何在Jmeter中使用正則表達式提取多個值

[英]How to extract multiple values with a regular expression in Jmeter

我用jmeter運行測試,我需要用正則表達式提取:

insertar?sIws2kyXGJJA_01== 
insertar?sIws2kyXGJJA_02==

在以下字符串中:

[\"EMBPAGE1_00010001\",\"**insertar?sIws2kyXGJJA_01==**\",1,100,\"%\",300,\"px\",0,\"center\",\"\",\"[\"EMBPAGE1_00010002\",\"**insertar?sIws2kyXGJJA_02==**\",1,100,\"%\",300,\"px\",0,\"center\",\"\",\"

在DMC給出的答案中,您需要添加正則表達式提取器TWICE以匹配/檢索具有不同匹配號(1,2)的兩個值。 雖然它也是正確的,但建議采用更好的方法來實現同樣的目標。

另一種方法:

1.捕獲兩個值:

您可以使用模板在同一時間捕捉到兩個值,后來,使用索引參考它。

請檢查以下屏幕截圖:

在此輸入圖像描述

在這里,我們使用兩個組將兩個值捕獲到兩個不同的模板中,分別為$ 1 $和$ 2 $。 這里,模板默認按照正則表達式中指定的組的順序存儲數據。 (僅供參考,您也可以通過調整模板的順序來更改訂單,例如$ 2 $和$ 1 $。)

現在,如圖所示,我們捕獲兩個值並使用模板存儲它們:$ 1 $(指第一組匹配)和$ 2 $(指第二組匹配)

2.檢索值:

現在,使用以下語法在腳本中引用這些值:

$ {insert_values_gn}(n表示匹配編號)

例如:

$ {insert_values_g1} - 指第一場比賽

$ {insert_values_g2} - 指第二場比賽

為簡單起見,您可以將“insert_values”視為使用多個組捕獲的字符串列表, 使用“n”(1,2,3等)作為索引來檢索值。

注意:使用模板,您可以使用多個組檢索任意數量的值,並使用單個正則表達式提取器通過索引來引用它們。

我確信有一種更有效的方法,但這有效:

\*\*(.*?)\*\*.*\"\*\*(.*?)\*\*

在此輸入圖像描述

您也可以只使用\\*\\*(.*?)\\*\\*無論如何都會匹配它們,所以請確保設置正確的“匹配編號” 在Jmeter中,如果您傳遞其中一個值:

在此輸入圖像描述

匹配No應該是1為第一個,2為第二個匹配我相信。

使用超級密碼運算符(負匹配N) 在此輸入圖像描述

UPD:G2 - 在我的例子中,因為我從每次遭遇中提取兩組。 每次遭遇都是g1中的“uuid”,g2是第二部分,我需要第二部分。 這就是$ 2 $模板和g2的原因。 如果你遇到一個組,你很可能會使用$ 1 $模板將所有遭遇放入g1。 如果你有一個匹配組,你根本不需要_gN結束。 要在組提取后了解更多變量,請添加“Debug PostProcessor”並在TreeView中檢查輸出。

很好的兩個知道像“For each”這樣的控制元素可以理解組,並且可以使用regexUUID_這樣的前綴並遍歷。 在大多數情況下,接下來你會在提取后做。

UPD2。 有問題的regexp的原始版本(insertar \\?sIws2kyXGJJA_ \\ d *)==([^ [] *)與模板$ 1 $$ 2 $你將擁有g1組中的第一部分和g2中的第二部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM