JMeter正則表達式提取器詳解

一、JMeter正則表達式提取器模板

JMeter正則表達式提取器是JMeter中非常重要的一個組件,用於從服務器的響應數據中提取數據並存儲在JMeter的變量中,以便在後續測試步驟中使用。 在使用JMeter正則表達式提取器之前,我們需要了解它的模板。 模板的基本格式如下:

    referenceName - regularExpression - template - match number - default value

其中:

  • referenceName:提取的數據將存儲在JMeter變量中的名稱,這個名稱會在後續步驟中使用,所以請確保它不會與其他變量重名。
  • regularExpression:正則表達式,用於從響應數據中提取我們需要的數據。
  • template:模板是一個Java字符串,它描述了提取的數據如何轉換為新的文本格式。
  • match number:指定我們需要匹配的數據,例如,如果有多個匹配項,那麼我們可以指定我們需要的是第一個匹配項還是第二個匹配項以及其他匹配項。
  • default value:當沒有找到匹配項時,可以指定一個默認值。

二、JMeter正則表達式用戶參數

JMeter正則表達式提取器還需要與JMeter的用戶參數一起使用。 在使用JMeter正則表達式提取器之前,我們需要在用戶參數下提前定義需要使用的變量。 例如,在請求中我們需要使用一個參數,那麼我們需要在用戶參數下先定義這個參數。 在使用JMeter正則表達式提取器之後,我們可以在提取器中使用這個參數名稱。這些用戶參數必須位於HTTP請求本身的子級中。

    HTTP Request
        User Parameters
            paramName1
            paramName2
            ...
        Regular Expression Extractor

三、JMeter正則表達式提取器用法

在請求之後使用JMeter正則表達式提取器,從服務器的響應數據中提取相應的值。 來看一個實例,我們需要從響應數據中提取用戶ID。

第1步:在HTTP請求之後,添加正則表達式提取器。在正則表達式提取器的「名稱」字段中輸入要在JMeter變量存儲的名稱。

第2步:在「響應字段」下選擇我們要匹配的響應數據。 如果我們要從JSON響應中獲取數據,我們可以選擇JSON提取器。 如果只需要從響應的正文中獲取任何數據,則需要使用正則表達式提取器。

第3步:在「正則表達式」字段中使用區分大小寫的正則表達式。 在本例中,我們使用以下正則表達式來匹配ID。如果響應數據中有多個ID,則會按順序匹配它們,直到找到第一個匹配項。

    "id":(\d+)

第4步:在「模板」字段中輸入$1$。這意味着我們只需提取匹配到的第一個分組。如果你不理解這個話,請在下面的例子中查看更多內容。

第5步:定義其他可選的參數,如「默認值」,「匹配號」,「模板」。 當我們添加「默認值」時,如果沒有找到匹配值,則將使用該值。 「Match Number」字段允許我們從多個匹配項中選擇一個特定的值。如果我們選擇了第2個匹配項,則Match Number應該設置為2。

完整代碼示例:

    HTTP Request
        User Parameters
            userId
        Regular Expression Extractor
            Name of created variable: userId
            Regular Expression: "id":(\d+)
            Template: $1$
            Match No.(0 for Random): 1
            Default Value: NOT_FOUND

四、JMeter正則表達式提取器的作用

JMeter正則表達式提取器可以從服務器的響應數據中提取想要的數據。 它可以與大多數類型的響應數據一起使用,而無需任何特殊準備。 有了正則表達式提取器,我們可以輕鬆地從服務器的響應中提取所需的數據,然後使用它們進行測試。

五、JMeter正則表達式提取器有什麼用

正則表達式提取器是非常有用的,因為它使我們能夠輕鬆地從服務器的響應中提取所需的數據,並將其存儲在JMeter變量中。 這樣,我們就可以在後續的測試步驟中使用這些數據。 假設我們正在測試一個Web應用程序,我們需要使用先前創建的用戶ID來執行其他測試操作,那麼我們可以從響應數據中提取ID並將其存儲在JMeter變量中。 在後續的測試步驟中,我們只需使用該變量即可輕鬆地訪問用戶ID。

六、正則表達式提取器怎麼用

現在我們來看一個使用正則表達式提取器的完整示例。 在我們的例子中,我們需要從響應數據中提取用戶ID。 假設我們的響應數據如下:

    {
        "name": "John Smith",
        "id": 12345,
        "age": 28
    }

第1步:添加HTTP請求,將響應數據的示例放入HTTP請求作為響應。在這個例子中,我們需要從響應數據中提取用戶ID。

第2步:添加用戶參數,將userID作為參數名稱添加到用戶參數下。

    HTTP Request
        User Parameters
            userID

第3步:添加正則表達式提取器

    HTTP Request
        User Parameters
            userID
        Regular Expression Extractor

第4步:輸入正則表達式、模板和其他參數:

    HTTP Request
        User Parameters
            userID
        Regular Expression Extractor
            Name of created variable: userID
            Regular Expression: "id":(\d+)
            Template: $1$
            Match No.(0 for Random): 1
            Default Value: NOT_FOUND

第5步:運行測試計劃並查看結果

現在,我們可以在測試計劃中使用userID變量。 在我們的例子中,可以在HTTP請求中使用以下變量值:

    /users/${userID}

當我們運行測試計劃時,JMeter將從服務器的響應中提取所需的數據,並將其存儲在userID變量中。 該變量將用於後續測試步驟。 有了JMeter的正則表達式提取器,我們可以輕鬆地提取服務器響應中的任何數據。

原創文章,作者:VZNXM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/313727.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VZNXM的頭像VZNXM
上一篇 2025-01-07 09:44
下一篇 2025-01-07 09:44

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分佈式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論