jMeter正則表達式

使用正則表達式搜索和操縱文本,基於模式。 JMeter 解釋正則表達式的形式或模式被用於整個JMeter 測試計劃,包括模式匹配軟件 Apache Jakarta ORO.

使用正則表達式,我們當然可以節省大量的時間,並實現更大的靈活性,因爲我們建立或加強一個測試計劃。正則表達式提供了一種簡單的方法來獲取信息頁面時,它是不可能或很難預測結果。

使用表達式的標準用法的例子是從服務器響應得到一個會話ID。如果服務器返回一個唯一的會話密鑰,我們可以很容易地得到我們的負載腳本中使用表達式。

要使用正則表達式在測試計劃,需要使用正則表達式提取在JMeter。可以將正則表達式在測試計劃中的任何組件使用。

這是值得強調的包含和比賽之間的差異,如用於響應斷言測試元件:

  • 包含表示正則表達式匹配至少有一些目標的一部分,所以'字母'「包含」'ph.b.因爲正則表達式匹配'phabe「。

  • 匹配正則表達式匹配整個目標。因此,「alphabet」是「匹配」'*t'。

假設想匹配一個Web頁的以下部分:

name="file" value="readme.txt"

要提取readme.txt。一個合適的正則表達式如:

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

上述的特殊字符是:

  • ( and ) - 這些匹配字符串括起來的部分要返回

  • . - 匹配任何字符

  • + - 一次或更多次

  • ? - 停止在第一個匹配成功時

CREATE JMeter測試計劃

讓我們瞭解在正則表達式中使用正則表達式提取後處理器的元素,編寫一個測試計劃。此元素會從當前頁面使用正則表達式識別文字圖案所需的元素,符合提取文本。

首先,我們將寫人名單和他們的電子郵件ID是一個HTML頁面。它部署到 tomcat 服務器。 HTML(index.htmll)上的內容如下:

IDnameEmail
3Manisha[email protected]
4joe[email protected]

部署在 Tomcat 服務器上,這個頁面會看起來像在下面的快照:

在我們的測試計劃中,我們將選擇人以上列表頁中看到的人表的第一行的人。爲了捕捉這個人的ID,讓我們首先確定的模式,我們會發現在第二排的人。在下面的快照中可以看出,第二個人的ID被包圍的和,它是具有這種模式的數據的第二行。我們可以用它來完全匹配的模式,我們希望從中提取信息。正如我們要提取兩條信息從當前頁的,該人ID和該人的姓名,字段定義如下:

啓動JMeter,添加一個線程組 Test Plan > Add> Threads(Users)> Thread Group.

接下來,添加一個採樣器的HTTP請求,右鍵單擊選擇的測試計劃 Add > Sampler > HTTP Request 並進入詳情如下:

  • Name: Manage

  • Server Name or IP: localhost

  • Port Number: 8080

  • Protocol: We will keep this blank, which means we want HTTP as the protocol.

  • Path: jmeter/index.htmll

接下來,添加一個正則表達式提取。選擇HTTP請求採樣器(管理),右鍵點擊 Add > Post Processor > Regular Expression Extractor.

上述快照詳情如下:

Field

描述

Reference Name

所提取的測試將被存儲在其中的變量的名稱(refname)。

Regular Expression

對文本提取模式將匹配。文字組,將提取的字符'('和')'所包圍。我們使用'+?'由<td..>..</ TD>標籤包圍的文本來表示一個單一實例。在我們的例子中的表達式爲:(+)</ TD> S*(+)</ TD> S*

Template

提取的文本的每個組將被放置作爲成員變量person,「(」和「)」括起來的模式各組的順序之後。每個組存儲爲refname_g#,其中refname是你輸入的字符串作爲參考名稱,#是組號。 $1$指組1,$2$是指第2組,$0$是指無論整個表達式匹配。在這個例子中,我們所提取的ID將被保持於Person_g1,而「名稱」的值將被存儲在Person_g2。

Match No.

既然我們打算只提取第二次出現的這種模式,相匹配的第二項,我們使用值2。值0將隨機匹配,而在foreach控制器需要使用負值。

Default

如果該項目沒有找到,這將是默認值。這是一個可選字段。可能會讓它空白。

添加一個監聽器來捕捉這個測試計劃的結果。右鍵單擊線程組選擇 Add > Listener > View Results Tree 選項​​添加監聽器。

保存測試計劃爲reg_express_test.jmx和運行測試。輸出將是一個成功,因爲在下面的快照: