本主题解释了如何使用性能配置文件,以实现对虚拟资产性能的非常具体的控制。

本章包含: 

概要

性能配置文件可用于实现对虚拟资产性能的非常具体的控制。每个虚拟资产的性能都可以设置来反映依赖应用程序的实际性能或模拟想要测试的特定性能模型。例如,您可能希望模拟固定响应延迟以及响应延迟范围,或者依赖于应用程序每秒点击率的延迟。对于负载依赖延迟,您可以利用线性或指数响应模板模型;还可以使用脚本创建自定义性能概要模型。此外,当外部应用程序由 APM 工具监控时,可以向配置文件汇总导入 APM 性能数据。

使用性能配置文件允许查看当依赖项显示一系列不同的性能条件时,AUT 会如何响应。例如,您可以:

  • 确保 AUT 能够在这些条件下按预期处理负载。
  • 评估系统的整体性能(AUT + 依赖于某些性能配置文件)。

可以为每个响应程序套件定义性能配置(包括性能配置文件和性能组)。一旦虚拟资产被部署在 Virtualize 服务器上,则可以从 Virtualize 服务器视图或 CTP 中“动态地”将性能配置文件映射到性能组。

例如。假定如下:

  • 想要模拟应用程序在两种不同部署环境下的性能:内部部署和云部署。
  • 根据正在模拟的应用程序的预期性能,将虚拟化响应程序套件中的响应程序分配给两个性能组(搜索目录组和下订单组)。

  • 创建了要分配给性能组的性能配置文件(固定延迟、最快固定延迟、负载相关指数和负载相关线性)

在本案例中,您可以通过将性能概要映射到性能组来设置相关的虚拟资产,以便模拟两种部署场景:


模拟场景搜索目录性能组下订单性能组
内部部署负载相关指数性能配置文件固定延迟性能配置文件
云部署负载相关线性性能配置文件最快固定延迟性能配置文件


定义可用性能配置

对于每个响应程序套件,您可以定义:

  • 可用于相关虚拟资产的性能配置文件。
  • 表示哪些响应程序集可使用同一个性能配置文件的性能组。

配置性能配置文件

每个性能配置文件定义一个特定的负载模式,该模式可以应用于关联响应程序套件。可以定义任何数量的性能配置文件。

若要添加性能配置文件:

  1. 请打开响应程序的配置面板(比如,通过双击紧挨着 .pva 节点下方的 Virtual Asset Explorer 节点)。



  2. 打开 Performance> Profiles 选项卡。
  3. 单击 Add,然后指定配置文件名称。
  4. 配置所需的响应延迟。您可以配置 Fixed Response DelaysRange DelaysLoad Dependent Response DelaysScripted Delays。有关更多详情,请查阅以下内容。



定义完性能配置文件后,保存更新的响应程序套件。

固定响应延迟

对于固定响应延迟:

  1. 将延迟类型设置为 Fixed
  2. 指定所需延迟值(以毫秒为单位)。注意,在响应程序级别上指定的任何思考时间或延迟都将天机到在此处指定的延迟。
  3. 选择所需延迟随机化:none、uniform 或 Poisson。

延迟范围

延迟范围允许指定最小和最大延迟范围界限。实际延迟将均匀分布在规定范围内

对于范围延迟:

  1. 将延迟类型设置为 Range
  2. 指定所需范围。

负载依赖响应延迟

对于负载依赖响应延迟:

  1. 将延迟类型设置为 Load Dependent
  2. 如果希望使用图表来建模性能,而不是使用默认的图表:
    1. 请单击图表下方的 New Graph 按钮。
    2. 在打开的对话框中,指定所需图表详情(图表类型。每秒最大点击率、最小延迟时间[以毫秒为单位]、最大延迟时间[以毫秒为单位]以及可以重新定位的点的个数)。每秒点击率计算为每秒向虚拟资产的所有响应者发出的请求数。
  3. 根据需要通过拖动点来修改图形曲线。



  4. 从图表下的 Delay Randomization 框中选择所需延迟随机化:none、uniform 或 Poisson。



注意,对于大于图中指定值的所有每秒点击率(HPS)值,将使用最右边图点的响应延迟值。例如,如果图上最右键在 10 个 HPS 时为 1500 毫秒(如上面的步骤 3 所示),那么所有大于 10 个 HPS 的 HPS 速率都将使用 1500 毫秒的响应延迟。

脚本化延迟

可以编写性能配置文件的行为脚本。脚本编制方法应具备以下特点:

  • 返回一个数字(比如,int 或 long 类型)。这将是以毫秒为单位的延迟时间。
  • 需要 0、1 或 2 个参数
    • 参数 1(如果指定)将是响应器每秒的当前点击率。hps 是浮点型。
    • 参数 2(如果指定)将是其他脚本方法使用的上下文对象。上下文参数是 com.parasoft.api.ScriptingContext。

有关脚本编制的更多详情,请查阅 扩展和脚本基础

实际响应时间

注意,性能配置文件延迟被添加到响应程序处理时间。大多数情况下,实际响应时间将超过性能配置文件响应延迟时的“零延迟”响应。 

此外,在响应程序级别上指定的任何“思考时间”或“响应时间”延迟都将添加到性能配置文件延迟。

从应用程序性能管理(APM)系统导入数据

查阅 从应用程序性能管理(APM)系统导入性能配置文件

将响应程序映射到性能配置文件(使用性能组)

能够共享单个性能配置文件的响应程序应该聚合到特定的性能组中。部署相关虚拟资产后,您(或您的团队成员)便可以将性能组需要的性能配置文件映射过去。

可以创建任何数量的性能组。每个响应程序都可以包含在多个性能组中 (比如,不可以在多个性能组中使用单个响应程序)。

若要定义性能组:

  1. 请打开响应程序套件的配置面板。
  2. 打开 Performance> Groups 选项卡。
  3. Performance Groups下,单击 Add,然后输入新组的名称。
  4. 选中新组之后,单击 Responders下的 Add



  5. 在打开的对话框中,指定哪些响应程序属于该性能组,然后单击 OK



    • 记住,一个响应程序可以只属于一个性能组。启用 Only show responders not associated with a performance group 选项将帮助您识别哪些响应程序仍然可以分配。

定义完性能组后,保存更新的响应程序套件。

将性能配置应用到已部署的虚拟资产

设置完性能配置文件和性能组后,您便可以从 Virtualize 服务器视图或从 CTP 中“动态地”将其应用到虚拟资产。这允许您快速设置和更改虚拟资产的性能条件。 

Virtualize 服务器视图

从 Virtualize 服务器视图中,您可以将性能配置应用到虚拟资产,如下所示:

  1. 打开虚拟资产的配置面板(如,通过双击其节点)。
  2. 打开 Performance 选项卡。
  3. 指定要应用于每个性能组的可用性能配置文件。



  4. 将变更保存到虚拟资产。

CTP

请查阅 使用性能配置文件

配置判断时间

在其他地方配置的判断时间或延迟将被添加到性能配置文件中指定的延迟中。判断时间可以在以下情况下配置:

  • 响应程序级别:在 Performance 类别下的 Options 选项卡中设置。注意,如果需要,判断时间值可以根据数据源列参数化。



  • 消息级别(仅适用于多响应模式):为每个消息配置。

从 APM(应用程序性能管理)系统导入性能配置文件

APM 系统提供了监视并管理应用程序性能和可用性的工具。APM 系统为其监视的应用程序收集性能数据;Virtualize 性能配置文件导入器可以查询 APM 系统以获得性能数据,并且根据所监视应用程序的性能度量创建性能配置文件。

若要查询 APM 系统以获得可用的性能度量,并且导入所选度量作为性能配置文件,请完成以下内容:

  1. 单击 .pva 的根响应程序套件的性能(Performance)选项卡中的 Import 按钮。将打开 Import Performance Profiles 对话框。





  2. APM System中选择希望从中导入数据的 APM 系统。目前支持的“开箱即用”系统包括:
    • AppDynamics
    • dynaTrace
  3. 在 Query Properties 表中,为 APM 系统设置合适的查询属性。有关更多详情信息,请查阅:


    默认属性值由性能概要导入器部署描述符填充(如 Modifying Performance Profile Importer Deployment Descriptors中所述)。若要修改 Query Properties 表中的值,请单击 Value 列中合适的行并编辑值。在使用 OK 按钮关闭性能概要导入器对话框之后,值将保存在响应程序套件配置中。
  4. 单击 Reload (在对话框底部)以从 APM 系统中导入性能数据。将显示可用的性能配置文件。
  5. Create Profiles of Type 复选框汇总,选择要创建的配置文件类型。



    有以下可用徐选项:
    • 固定:对于导入对话框中所选的每个条目,导入器都将创建一个固定的响应延迟性能配置文件。配置文件的延迟值将设置为平均延迟(ms)值,因为它出现在导入器对话框的性能概要表中。导入器将为导入的性能配置文件附加一个 _Fixed 后缀。
    • 范围:对于导入对话框中所选的每个条目,导入器将使用最小延迟(ms)和最大延迟(ms)的延迟范围来创建范围响应延迟性能配置文件因为它们出现在导入器对话框的性能配置文件表中。导入器将为导入的性能配置文件附加一个 _Range 后缀。
    • 固定和范围:对于导入对话框中所选的每个条目,导入器都将创建一对固定和范围的性能配置文件,如上所述。
  6. 选择要导入的配置文件。可以使用 Select All / Deselect All ,右键单击性能配置文件表中的命令以进行多个选择。
    如果选择了没有最大或最小延迟值的性能配置文件(因为 APM 系统没有提供这些值),那么创建配置文件的类型选项将被设置为 Fixed。只有具有最大和最小延迟值的配置文件可以用于范围延迟类型。



  7. 单击 OK 按钮,将所选配置文件导入 .pva 的响应程序套件性能配置中。
    如果具有所选名称和类型的任何配置文件早就存在于响应程序套件性能配置中,则将显示警告和确认对话框:



    如果响应程序套件性能配置的任何配置文件具有与被导入的配置文件相同的名称(但是为不同类型),那么将取消导入操作,并且将显示以下对话框。例如,如果有一个名为 “Calculator-Doc-Literal.subtract_Fixed” 的现有性能配置文件和一个 Range 类型的响应延迟,那么将不允许使用 Fixed 类型的响应延迟导入 “Calculator-Doc-Literal.subtract_Fixed”:

从 AppDynamics 导入性能配置文件

AppDynamics 特定查询参数:


参数说明
usernameAppDynamics 账号用户名。
passwordAppDynamics 账号密码。
host安装 AppDynamics 控制器的主机名。
port监听 REST 请求的 AppDynamics 控制器的端口。这与用于访问 AppDynamics Web 接口的端口相同。
tier在 AppDynamics 中配置的层名称。
transaction

设置为 * 以查看所选定应用程序和层下的所有事务。 

设置为事务名称(当它在 AppDynamics Metric Browser 树中出现 Business Transactions Performance> Business Transactions 节点时),以按单个事务进行筛选。

timeIntervalMinutes用于计算性能指标的时间间隔(以分钟为单位)。


AppDynamics 性能概要导入器查询 AppDynamics 以获得可在应用程序的配置和数据树的 Analyze> Metric Browser 节点中使用的性能数据。在 AppDynamics Metric 树视图中,该数据显示在 Business Transaction Performance> Business Transactions> YourTier 节点下,然后显示 Average Response Time metric 节点下。

从 dynaTrace 导入性能配置文件

dynaTrace 特定查询参数:


参数说明
usernamedynaTrace 账号用户名。
passworddynaTrace 账号密码。
host安装 dynaTrace 客户端的主机。
port安装 dynaTrace 客户端的端口。默认 – 8020。
dashboard仪表板如在 dynaTrace 客户端中配置的一样命名。
method

设置为“*”以查看仪表板中的所有 web 服务方法和 web 请求 URIs。 

设置为 web 服务方法名或 Web 请求 URI,以按单个事务进行筛选。


这个 dynaTrace 性能概要导入器查询 dynaTrace 客户机中所选仪表板的 Web 服务和 Web 请求仪表板,以获取 Web 服务方法和 Web 请求性能数据。

必须在查询参数中指定的仪表板中包含 Web 服务或 Web 请求仪表板,或者两者都包含。

确保显示了 Web 服务或 Web 请求仪表板总的 Avg/Min/Max 列。如果是这样,那么列数据将可用于 REST 查询中的性能概要导入器。


修改性能概要导入器部署描述符

在 Import 对话框的 Query Properties 表中出现的默认值可以通过修改合适的性能概要导入器部署描述符文件自定义。这些文件定位于 apm-integration/performance-profile-importers 文件夹或根目录 (<virtualize_install_dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root)。

修改 AppDynamics.xml 和 dynaTrace.xml 性能概要导入器部署说明符的值属性,使之适合您的环境。 


<performance-profile-importer name='AppDynamics' class="com.parasoft.profiles.apm.common.appdynamics.AppDynamicsPerformanceProfileImporter">
  <!-- AppDynamics 3.8.2 -->
  <property name='username' value='admin@customer1'/>
  <property name='password' type='masked' value='admin'/>
  <property name='host' value='myhost.mycompany.com'/>
  <property name='port' type='int' value='8090'/>
  <property name='application' value='MyApplication'/>
  <property name='tier' value='MyTier'/>
  <property name='transaction' value='*'/>
  <property name='timeIntervalMinutes' type='int' value='4320'/>
</performance-profile-importer>
  • No labels