您的位置:

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的正则表达式提取器,我们可以轻松地提取服务器响应中的任何数据。