在 Web 性能测试中使用验证规则和提取规则

验证规则通过验证 Web 请求返回的页面中是否存在文本、标记或特性,来帮助验证 Web 应用程序是否正常工作。 验证规则还可以验证完成请求所需的时间、是否存在窗体字段以及它们的值。

提取规则通过从 Web 请求的响应中提取数据来帮助确认 Web 应用程序的工作是否正常。 提取规则将结果以名称/值对的形式存储在测试上下文中。 提取规则可以提取窗体字段、文本、特性、标头、正则表达式和隐藏字段。

本主题介绍如何在 Web 性能测试中创建和使用验证规则和提取规则。

预定义验证规则

Visual Studio 旗舰版包括下列预定义的验证规则:

验证规则类型

说明

选定的选项

验证是否选中了 HTML“select”标记中指定的选项。

标记内部文本

验证指定的 HTML 标记中是否存在指定的预期内部文本。

例如,可以验证特定的内部文本是否存在于列表框中,在该列表框中选项文本存储在内部文本中而不是特性中:

<select name="myListBox">
        <option>Car</option>
        <option>Train</option>
        <option selected="selected">Ship</option>
        <option>Airplane</option>
    </select>
    </form>

在此情况下,如果要验证“Airplane”是否存在于 myListBox 中,可为验证规则设置以下属性:

  • “预期的内部文本”设置为 Airplane。

  • “标记名”设置为 option。

响应时间目标

验证请求的响应时间是否小于或等于请求中指定的响应时间目标。 将忽略等于 0 的响应时间目标。

窗体字段

验证具有指定名称和值的窗体字段是否存在。

查找文本

验证响应中是否存在指定文本。 有关以下内容的更多信息使用查找文本验证规则的更多信息,请参见演练:向 Web 性能测试添加验证规则和提取规则

最大请求时间

验证请求是否在指定时间内完成。

必需的特性值

验证是否存在包含具有指定值的特性的指定 HTML 标记。

所需的标记

验证响应中是否存在指定的 HTML 标记。

响应 URL

验证在跟踪重定向之后的响应 URL 是否与记录的响应 URL 相同。 将忽略 QueryString 参数

自定义验证规则

Visual Studio 旗舰版以类的形式在 Microsoft.VisualStudio.TestTools.WebTesting.Rules 命名空间提供预定义的验证规则。 不过,您可以通过从 ValidationRule 类派生,创建自己的自定义验证规则。 有关更多信息,请参见如何:为 Web 性能测试创建自定义验证规则

验证规则对负载测试的影响

验证规则的执行对负载测试的性能有一定影响。 若要降低这种性能影响,可以使用请求的“验证级别”来控制在特定负载测试中使用哪些验证规则。 可以将每个规则的验证级别设置为“低”、“中”或“高”。 通常,所设置的验证级别越高,测试的运行速度就越慢。

请求中规则的“验证级别”设置决定了何时在负载测试中使用验证规则。 例如,设置为“高”意味着仅在负载测试的验证级别设置为高时执行该规则。

负载测试验证级别

所用请求设置的说明

仅调用设置为“低”的规则

调用设置为“低”和“中”的规则

调用所有规则 —“低”、“中”和“高”级别

在 Web 性能测试请求中和负载测试设置中都可以设置规则级别,这为测试提供了灵活性。 将负载测试设置设为“低”可执行最少的规则,适合重载测试和压力运行。 将负载测试设置设为“高”可执行最多的规则,应当用在验证比最大吞吐量更为重要的情况下。

关于提取规则

提取规则通过从 Web 请求的响应中提取数据来帮助确认 Web 应用程序的工作是否正常。 提取规则将结果以名称/值对的形式存储在测试上下文中。 提取规则可以提取窗体字段、文本、特性、标头、正则表达式和隐藏字段。

验证规则与提取规则相似,但是验证规则不提取数据,而是验证数据是否存在。

预定义的提取规则

Visual Studio 旗舰版包括下列预定义的提取规则:

提取规则的类型

说明

选定的选项

提取列表或组合框中的选定文本。

标记内部文本

提取指定 HTML 标记的内部文本。

提取特性值

从指定的 HTML 标记中提取特性的值。 有关以下内容的更多信息使用提取特性值规则的更多信息,请参见演练:向 Web 性能测试添加验证规则和提取规则

提取窗体字段

提取响应中指定窗体字段的值。

提取 HTTP 标头

提取 HTTP 标头的值。

提取正则表达式

从与正则表达式相匹配的响应中提取文本。

提取文本

从响应中提取文本。

提取隐藏的字段

从响应中提取所有的隐藏字段。

自定义提取规则

Visual Studio 旗舰版以 Microsoft.VisualStudio.TestTools.WebTesting.Rules 命名空间中的类的形式提供预定义的提取规则。 但是,您可以通过派生 ExtractionRule 类来创建自己的自定义提取规则。 有关更多信息,请参见如何:为 Web 性能测试创建自定义提取规则

任务

任务

相关主题

在 Web 性能测试中添加验证规则:在 Web 性能测试中添加和配置验证规则,以帮助验证由 Web 请求返回的页面中是否存在文本、标记或特性,从而验证 Web 应用程序是否正常工作。 验证规则还可以验证完成请求所需的时间、是否存在窗体字段以及它们的值。 验证规则也可专门用于内部文本和选定目标。

您还可以在测试级别向 Web 性能测试添加将对测试中的每个请求激发的验证规则。

在 Web 性能测试中添加提取规则:添加和配置提取规则,以便通过从 Web 请求的响应中提取数据来帮助验证 Web 应用程序是否正常工作。 提取规则将结果以名称/值对的形式存储在测试上下文中。 提取规则可以提取窗体字段、文本、特性、标头、正则表达式和隐藏字段。

创建自定义验证规则和提取规则:除了使用 Microsoft Visual Studio 旗舰版中预定义的验证规则和提取规则之外,还可通过从 ValidationRuleExtractionRule 基类派生规则来创建自己的规则。 在创建自定义验证规则或提取规则之后,可将其添加到 Web 性能测试请求中。

参考

ValidationRule

Microsoft.VisualStudio.TestTools.WebTesting.Rules

ExtractionRule

请参见

任务

演练:向 Web 性能测试添加验证规则和提取规则

其他资源

使用 Web 性能测试编辑器自定义 Web 性能测试记录

创建和编辑 Web 性能测试