你可以创建监视器,并负载测试期间,使用它们来收集网络信息和系统性能。可以将监视度量覆盖到负载测试结果上,以帮助你确定传递给 Web 服务器的负载是否按照设计的方式处理。
在本章节中:
支持的监视器
- SNMP
- Windows 监视器(仅适用于在 Windows 上安装的负载测试)
- WebSphere
- WebLogic
- JBoss
- Tomcat
- rstat
- remote
- deployed (例如:AppDynamics、Dynatrace)
- custom
Oracle Service Bus (OSB/ALSB)的性能监视器
可以使用 Oracle Service Bus (OSB/ALSB)的性能监视器有关更多详情,请联系技术支持。
添加内建的监视器
你可以添加以下内建监视器。
添加 SNMP 代理监视器
负载测试会根据提供的 OID(s) 从版本 1 和 2c 的 SNMP 代理中检索数据。
添加 SNMP 代理监视器:
- 右键单击负载测试选项卡中的 监视器 节点,然后从快捷菜单选择 新建监视器 。将显示一个新的监视器对话框。
- 从新的监视器对话框选择 SNMP ,然后单击 完成。将在右侧面板中打开新的监视器配置面板。
- 在 主机 字段键入 SNMP 代理的主机名称。
- 在 社区 字段键入 SNMP 代理的社区。
- 单击 新建输入参数。将打开一个新的参数对话框。
- 按照以下操作完成新的参数对话框:
- 参数类型:选择 OID 或 Composite。
- 参数:根据所选的参数类型,参数选项将根据以下情况而有所不同:
- OID:输入对象 Id,在 SNMP 代理社区验证特定的参数。(仅在参数类型下拉菜单中选中 OID 时可用)。
- 组合模式:选择处理器、内存、网络或 TCP 来收集相应的数据。
- 计数器:根据组合模式参数下拉菜单的选项,显示 CPU 使用率(%)、内存使用率(%)和网络使用率(%);这是计数器都是通过查询一组 OIDs 来计算的,你必须从计数器框中选择计数器。
- 参数说明:将显示所选组合模式参数的说明。
- 图表标题:将为图表输入标题,以对应要添加的监视器。此标题将显示在负载测试进度图和详细报告图中。
- 应用操作:选择将简单操作应用于 SNMP 代理返回的值。使用 "*" 代表 "乘", "/" 代表 "除以", "%” 代表 "百分率"。例如,如果代理返回以字节为单位的所分配内存值,而你希望以 KB 为单位查看它,则可以通过从下拉菜单选择“/”并在邻近的文本字段中输入“1024”,以应用“/1024”操作。然后你可以将 "Memory in kilobytes” 添加到 Graph Title 字段中。
- 重复以上步骤,直到参数表显示你希望该 SNMP 代理监视的所有参数。
- 右键单击负载测试树的 监视器> SNMP 分支验证新的监视器。
添加 Windows 性能监视器
若要添加一个 Windows 性能监视器(该功能只在有一个 Windows 安装的负载测试时可用):
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新的监视器对话框选择 Windows ,然后单击 完成。
- 在 主机 字段键入性能监视器的主机名称。
- 单击 新建输入参数。将打开添加性能计数对话框。
- 按照以下操作完成新的参数对话框:
- 选择要监视的参数的性能计数和实例。你选择的参数的说明将在 参数说明 框中显示。
- 在 图表标题 字段中,为图表输入标题,以对应要添加的监视器。此标题将显示在负载测试进度图和详细报告图中。
- 在 应用操作 子面板中,如果需要,选择要应用到监视器数据的操作和值。例如,通过选择 /(除以)操作并在操作值字段输入
1024
,则你便可将原始监视值从 Byte 转换为 KBytes。
- 重复以上步骤,直到参数表显示你希望该性能监视器监视的所有参数。
- 右键单击负载测试树的 监视器> Windows 分支验证新的监视器。
添加 WebSphere 监视器
添加 WebSphere 监视器之前,跳转至 WebSphere Administrative 的 Security> Global security 部分,并确保未选中 Enable administrative security 多选框。
若要添加 WebSphere 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新的监视器对话框选择 WebSphere ,然后单击 完成。
- 在项目配置面板中,单击 配置。将显示一个配置 WebSphere 代理对话框。
- 请输入 主机 名称,并更改 端口 号(如果需要),然后单击 下一步。
- 在配置 WebSphere 代理面板中,请输入或浏览到 WebSphere 安装的正确路径。例如:C:\IBM\WebSphere.
- 单击 下一步。配置 WebSphere 代理(Configure WebSphere Agent)对话框将显示服务器所需 Jar 文件的一个表,并指示是否找到了合适的 Jar 文件。
- 在配置 WebSphere 代理对话框中,单击 完成。将打开一个添加参数( Add Parameter)对话框。
- 从添加参数对话框左侧 GUI 面板选择一个参数。要监视的参数的每个实例的“名称”、“说明”和“值”将显示在添加参数对话框的右侧 GUI 面板。
- 右侧 GUI 面板中 Select 列,选择要监视的参数实例,然后单击 OK。你选择的参数将显示在负载测试进度图和详细报告图中。
添加 WebLogic 监视器
若要添加 WebLogic 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新的监视器对话框选择 WebLogic ,然后单击 完成。
在项目配置面板中,单击 配置。将显示一个配置 WebLogic 代理对话框。
注意
针对 WebLogic 8.1 SP6 和 WebLogic 9.x 监视器,负载测试需要使用
-Dsun.lang.ClassLoader.allowArraySyntax=true
选项来启动。若要在命令提示符中执行,导航到负载测试安装目录并运行以下操作:lt -Dsun.lang.ClassLoader.allowArraySyntax=true
- 输入 主机 名,更改 端口 号(如果需要),然后单击 下一步。
- 在配置 WebLogic 代理面板中,请输入或浏览到你希望在你的机器上实现 WebLogic 的正确路径。例如:C:\Oracle\Middleware\wlserver_10.3.
- 单击 下一步。配置 WebLogic 代理(Configure WebLogic Agent)对话框将显示服务器所需 Jar 文件的一个表,并指示是否找到了合适的 Jar 文件。
- 在配置 WebLogic 代理对话框中,单击 完成。将打开一个添加参数( Add Parameter)对话框。
- 从添加参数对话框左侧 GUI 面板选择一个参数。要监视的参数的每个实例的“名称”、“说明”和“值”将显示在添加参数对话框的右侧 GUI 面板。
- 右侧 GUI 面板中 Select 列,选择要监视的参数实例,然后单击 OK。你选择的参数将显示在负载测试进度图和详细报告图中。
添加 JBoss 监视器
若要添加 JBoss 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器(New Monitors)对话框选择 JBoss ,然后单击 完成。
- 在项目配置面板中,单击 配置。将显示一个配置 JBoss 代理对话框。
- 在配置 JBoss 代理对话框中,输入主机名,更改端口号(如果需要),然后单击 完成。将打开一个添加参数( Add Parameter)对话框。
- 从添加参数对话框左侧 GUI 面板选择一个参数。要监视的参数的每个实例的“名称”、“说明”和“值”将显示在添加参数对话框的右侧 GUI 面板。
- 右侧 GUI 面板中 Select 列,选择要监视的参数实例,然后单击 OK。你选择的参数将显示在负载测试进度图和详细报告图中。
添加 Tomcat 监视器
前提条件
若要使用该监视器,Tomcat 应该使用以下 Java 系统属性来启动:
- -Dcom.sun.management.jmxremote
- -Dcom.sun.management.jmxremote.port=7744
- -Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.authenticate=false
使用 com.sun.management.jmxremote.port 系统属性选择的端口。
例如,在 Windows 上,你可以在 Tomcat 安装目录“bin”文件夹中创建一个 tomcat.bat 文件,然后运行该文件来启动 Tocmat,或者可以从命令提示符运行该命令:
java -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7744
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -jar bootstrap.jar
若要添加 Tomcat 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框选择 Tomcat ,然后单击 完成。
- 在项目配置面板中,单击 配置。将显示一个配置 Tomcat 代理对话框。
- 在配置 Tomcat 代理对话框中,输入主机名,更改端口号(如果需要),然后单击 完成,将打开添加参数对话框。
- 从添加参数对话框左侧 GUI 面板选择一个参数。要监视的参数的每个实例的“名称”、“说明”和“值”将显示在添加参数对话框的右侧 GUI 面板。
- 右侧 GUI 面板中 Select 列,选择要监视的参数实例,然后单击 OK。你选择的参数将显示在负载测试进度图和详细报告图中。
添加 rstat 监视器
若要添加 rstat 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框选择 rstat ,然后单击 完成。
注意
对于要启动的 rstat 监视器, djrpc.jar
和 rstatcl.jar
需要在 <SOAtest installation>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>/root 中并将其添加到类路径。
将 rstatcl.jar 添加到在安装的 <SOAtest_Installation>\<SOAtest_Version>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>\root。
必须购买 djrpc.jar 并将其复制到 <SOAtest installation>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>/root。
添加远程 JVM 监视器
注意
若要使用该监视器,JVM 应该使用以下 Java 系统属性来启动:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7744
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
使用 com.sun.management.jmxremote.port 系统
属性选择的端口。
若要添加远程 JVM 监视器:
- 右键单击 负载测试 选项卡并选择 监视器 节点,然后从快捷菜单选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框选择 Remote JVM ,然后单击 完成。
- 在项目配置面板中,单击 配置。将显示一个配置远程 JVM 代理对话框。
- 在配置远程 JVM 代理对话框中,输入主机名,更改端口号(如果需要),然后单击完成按钮。将打开一个添加参数( Add Parameter)对话框。
- 从添加参数对话框左侧 GUI 面板选择一个参数。要监视的参数的每个实例的“名称”、“说明”和“值”将显示在添加参数对话框的右侧 GUI 面板。
- 右侧 GUI 面板中 Select 列,选择要监视的参数实例,然后单击 OK。你选择的参数将显示在负载测试进度图和详细报告图中。
添加自定义监视器
自定义监视器可通过 JavaScript、Jython 脚本或 Java 类方法来实现。如果希望从上述未列出的源中收集数据,这一点尤其有用。
注意
渠道方法必须返回 java.lang.Number 类型,以便在负载测试过程和详细报告中绘制图表。
若要添加自定义监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框选择 自定义 ,然后单击 完成。
- 在 名称 字段中输入自定义监视器的名称。
- 单击 新建 按钮。将打开一个 添加通道 对话框。
- 在 渠道 ID 字段中输入通道名称。为自定义监视器输入的名称与通道 ID 一起组成了监视器的标题。此标题将显示在负载测试进度图和详细报告图中。
- (可选)在 说明 字段中输入对渠道的简单说明。
- 从 语言 菜单选择一种语言。
- 进行以下步骤之一指定脚本:
- 选择 文件 单选框并单击 浏览 按钮,以选择合适的文件。
- 选择 文本 单选框并在文本字段中输入脚本。
- 指定你希望从 方法 菜单调用的方法。
- 然后单击 OK。新的自定义通道被添加到右侧 GUI 面板的“通道”表中。
更改内建的监视器
监视器创建后,你可以为以下内置的监视器类型设置或修改应用操作参数。
- Windows
- JBoss
- Tomcat
- 远程 JVM
- SNMP
若要更改操作,双击“参数”面板的监视器配置视图中的监视器渠道,并设置合适的操作类型和值。
添加已部署的监视器
负载测试工具允许动态添加监视器类型到负载测试安装。已部署的监视器显示在“性能监视器”向导的已部署的监视器类型表中。
AppDynamics
添加 AppDynamics 监视器
若要添加 AppDynamics 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框已部署的监视器类型表选择 AppDynamicsMonitor ,然后单击 完成。
- 在项目配置面板的右上角中,单击 属性 按钮并配置 AppDynamics 属性。
- Host – 安装 AppDynamics 服务器的主机。
- Port – AppDynamics 监听 REST 调用的端口。
- User Name – REST 调用身份验证的用户名。
- Password – REST 调用身份验证的密码。
- Query Interval (Minutes) – 以分钟为单位的时间,其中监视器值取平均值。最小值为 1 分钟。
- 单击 OK 保存项目中的属性值。
- 若要向 AppDynamics 监视器添加渠道:
- 单击 新建 按钮,该按钮在项目配置选项卡的 已部署的监视器 面板中。将显示一个监视器渠道选择框。监视渠道树中的顶级节点是 AppDynamics 监视的应用程序。
- 扩展顶级应用程序节点,直到使用复选框到达通道叶节点为止。
- 确保希望监视的项目被选中。
- 单击 OK 将所选节点添加到已部署的监视器配置面板的参数表。你选择的参数将显示在负载测试进度图和详细报告图中。
小提示
单开属性对话框,并单击 OK 按钮以重置监视器通道选择树。监视器通道树将根据 AppDynamics 提供的数据显示顶级应用程序节点。 在单击树的扩展图标 “[+]” 时,子节点将根据发送给 AppDynamics 的请求动态构建。
监视可从 AppDynamics 监视扩展获得的数据
AppDynamics Exchange 站点提供了许多监视扩展。适用于 AppDynamics 度量浏览器的监视扩展数据将在负载测试 AppDynamics 监视器中可用。
下面的截图显示了在 AppDynamics 度量浏览器视图和负载测试 AppDynamics 监视通道选择视图中,可从 Exchange 站点获得的 ‘Static’监视扩展所公开的数据。
AppDynamics 中的自定义 FileContentMetric :
负载测试 AppDynamics 监视器中的自定义 FileContentMetric:
Dynatrace
添加 Dynatrace 监视器
若要添加 Dynatrace 监视器:
- 右键单击负载测试选项卡的 监视器 节点,然后从快捷菜单中选择 新建监视器 。将显示一个新的监视器对话框。
- 从新建监视器对话框已部署的监视器类型表选择 DynatraceMonitor ,然后单击 完成。
- 在项目配置面板的右上角中,单击 属性 按钮并配置 Dynatrace 属性。
- Host – 安装 Dynatrace 服务器的主机。
- Port - Dynatrace 监听 REST 调用的端口。默认端口为 8020。有关更多详情,请参考 Dynatrace 文档。
- User Name - REST 调用身份验证的用户名。
- Password - REST 调用身份验证的密码。
- 单击 OK 保存项目中的属性值。
- 若要向 Dynatrace 监视器添加渠道:
- 单击 新建 按钮,该按钮在项目配置选项卡的 已部署的监视器 面板中。将显示一个监视器渠道选择框。
- 扩展顶级应用程序节点,直到使用复选框到达通道叶节点为止。
- 确保希望监视的项目被选中。
- 单击 OK 将所选节点添加到已部署的监视器配置面板的参数表。你选择的参数将显示在负载测试进度图和详细报告图中。
监视器通道选择视图树用以下方法进行构建:
- 级别 1:Dynatrace 仪表板
- 级别 2:仪表板中的图表模板
- 级别 3:图表模板中的尺寸
- 级别 4:尺寸的最小值、最大值、平均值
- 级别 3:图表模板中的尺寸
- 级别 2:仪表板中的图表模板
你可以监视线形图类型的现有图表模板,也可以创建新的仪表板。你可以向图表模板添加多个尺寸(数据序列)。有关更多详情,请查阅 Dynatrace 供应商文档。
小提示
单开属性对话框,并单击 OK 按钮以重置监视器通道选择树。监视器通道树将根据 Dynatrace 提供的数据显示顶级应用程序节点。在单击树的扩展图标 “[+]” 时,子节点将根据发送给 Dynatrace 的请求动态构建。
Dynatrace REST 请求响应大小注意事项
Dynatrace REST 相应的大小可以相当大(100KB 以及更多),这取决于表和仪表板的配置。
若要最小化 Dynatrace REST 请求响应的大小:
- 在负载测试监视的仪表板图表中,在“图表”视图右上角选择图表控制面板中的以下设置:
- 选择时间表:设置为‘持续 5 分钟’。
- 选择图表分辨率: 设置为‘10s’。
- 选择时间表:设置为‘持续 5 分钟’。
- 若要将这些设置应用到仪表板中的所有图表,选择上述截图中右键单击菜单所显示的 应用到仪表板 命令。
- 若要评估负载测试 Dynatrace 监视器使用的仪表板上 REST 请求的响应大小,使用以下 URL 模板(将主机、端口和仪表板名称替换为与你的环境关联的参数值后)在浏览器中打开请求结果: http://dynatrace.parasoft.com:8020/rest/management/dashboard/your_dashboard_name
监视 Dynatrace 插件可获得的数据
Dynatrace‘插件中心’站点和‘社区插件和扩展’站点包含插件数量,大多数用于开箱即用的 Dynatrace 监视功能。Dynatrace 插件数据作为尺寸添加到图表模板将在负载测试 Dynatrace 监视器中可用。
下面的截图显示了 StockQuote 示例监视器插件,它可从‘社区插件和扩展’站点获得,该插件是在 Dynatrace 图表模板和负载测试 Dynatrace 监视器渠道选择视图中作为度量添加的。
自定义 Dynatrace 中的 StockQuote 度量:
自定义负载测试 Dynatrace 监视器中的 StockQuote 渠道:
JVM 线程
添加远程 JVM 线程监视器
JVM 线程监视器允许你观察线程数据,并使用 Java JMX 技术记录远程 Java 应用程序的单个线程详情。
启动 JMX 监视
若要使用该监视器,JVM 应该使用以下 Java 系统属性来启动 JMX 监视器:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7744 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
使用 com.sun.management.jmxremote.port
系统属性选择的端口。
若要添加远程 JVM 线程监视器
- 右键单击负载测试选项卡中的 监视器 节点,然后从快捷菜单选择 新建监视器 。
- 从新建监视器对话框已部署的监视器类型表选择 JVMThreadsMonitor ,然后单击 完成。
- 在项目配置面板的右上角中,单击 属性 按钮并配置 JVMThreadsMonitor 属性。
- Host: 运行 JVM 的主机名。
- Port: JVM 的 JMX 端口(请查阅 启动 JVX 监视)。
- 线程过滤:逗号分隔的字符串列表。如果线程名称包含列表中的任何字符串,线程都将被监视器处理。线程名称匹配不区分大小写。(监视器接收来自远程 JVM 进程的所有可用线程数据后,应用该过滤器)。
- 线程转储方式:逗号分隔的要转储的线程状态的列表,以供进一步分析。有关详细说明,请查阅 Taking Selective Thread Dumps 。
线程转储目录:线程应转储的目录路径。查阅 Taking Selective Thread Dumps 已获得详细说明。
JVM 线程监视器可能会影响被测应用程序的性能(AUT)。
与添加 JVM 线程监视器联系的性能影响可与使用
jvisualvm
Java 性能诊断和监视工具相媲美。大多数情况下应忽略该影响,而我们建议在将 JVM 线程监视器应用于负载测试项目之前以及之后,通过比较 AUT 关键的性能指示器(如,CPU 利用率、平均响应时间和最大响应时间等)对其进行评估。
- 单击 OK 保存项目中的属性值。
- 若要向 JVM 线程监视器添加通道:
- 单击项目配置选项卡已部署的监视器面板中的 新建 按钮。将显示一个监视器通道选择框。
- 启动要监视的通道:通道详情适用于通道选择对话框“说明”列。
关于通道说明
TotalThreads | 过滤线程的数量 |
---|---|
RunningThreads | 处于 RUNNABLE 状态的过滤线程数 |
BlockedThreads | 处于 BLOCKED 状态的过滤线程数,等待输入同步语句或方法。 |
ParkedThreads | 由于调用 LockSupport.park() 处于 parked 状态的过滤线程数。 |
SleepingThreads | Thread.sleep() 方法中的过滤线程数。 |
WaitingThreads | Object.wait() 方法中等待通知的过滤线程数。 |
NewThreads | 尚未启动的线程数。 |
UnknownThreads | 未知状态的线程数。 |
DeadlockedThreads | 拥有一个锁的线程,尝试获取另一把锁,而该锁已被另一个线程锁住。该渠道查找同时涉及对象监视器和可拥有同步器的锁,如 java.util.concurrent.locks.ReentrantLock 和 java.util.concurrent.locks.ReentrantReadWriteLock |
MonitorDeadlockedThreads | 拥有一个同步监视器的线程,尝试获取另一个监视器,而该监视器已被另一个线程持有。该方法查找只涉及对象监视器的死锁。 |
BlockedTime | 在负载测试数据收集间隔期间,处于 BLOCKED 状态的过滤线程的大约时间(以毫秒为单位)。 |
BlockedRatio | 处于 BLOCKED 状态的过滤线程的大约比率(以百分比衡量)。 |
BlockedCount | 处于 BLOCKED 状态的过滤线程的出现次数。 |
WaitedTime | 处于 WAITING 或 TIMED_WAITING 状态的过滤线程的大约时间(以毫秒为单位)。 |
WaitedRatio | 处于 WAITING 或 TIMED_WAITING 状态的过滤线程的大约比率(以百分比衡量)。 |
WaitedCount | 处于 WAITING 或 TIMED_WAITING 状态的过滤线程的出现次数。 |
监视器渠道返回的所有数据都与最近负载测试数据收集间隔相关。
NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED 都是状态表示,来自 State
枚举,其源于于 java.lang.Thread
类中。
有关 JVM 线程状态的更多详情,请查阅相关 Java 类的 Java 文档:
- java.lang.management.ThreadInfo:
https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadInfo.html
- java.lang.managementThreadJMXBean:
https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadMXBean.html
初始化之后,JMX 线程监视器将检查远程 JVM 上是否启用了线程争用监视。如果禁用争用监视,JMX 线程监视器将尝试启用它。如果尝试失败,BlockedTime、BlockedRatio、WaitedTime 和 WaitedRatio 通道将返回零值。
选择线程转储
JMX 线程监视器允许你选择远程应用程序线程的转储方式并将其保存在磁盘中,以供进一步分析。该功能有助于捕获自动负载测试运行期间偶尔出现的不需要的线程状态,或者记录线程状态。
JMX 线程监视器只转储负载测试运行时的线程。单击监视器配置视图中的 发送请求 将不会选择线程转储。
设置以下监视属性,以配置可选的线程转储。
线程过滤 | 将只转储匹配线程过滤的线程。 |
---|---|
线程转储方式 | 可使用以下值:
如果该属性未配置(为空),将不会执行线程转储。 输入以逗号分隔的值列表,以配置多线程状态的转储:DEADLOCKED, BLOCKED, PARKED |
线程转储目录 | 你可以在 SOAtest或 LoadTest 测试安装中输入绝对路径,或者输入以下目录的相对路径: ${SOATEST_INSTALL_DIR}\eclipse\plugins\com.parasoft.xtest.libs.web_version\root 如果该属性未配置(为空),将不会执行线程转储。 该设置中提供的路径将用作线程转储根源(请查阅 Examining Thread Dumps)。 |
检查线程转储
线程转储目录设置中提供的路径将用作线程转储根目录。JVM 线程监视器将为每次负载测试运行,在线程转储根目录下创建一个单独的项目线程转储目录。这些项目线程转储目录将有以下命名模式:PROJECTNAME_YYYY-MM-DD_hh-mm-ss.
- PROJECTNAME:LoadTest 的项目名。
- YYYY:当前年份
- MM:当前月份
- DD:当前日期
- hh:小时,以 24 小时计
- mm:分钟
- ss:秒
该格式使你能够清楚地看到线程转储与哪个负载测试项目相关,以及它是何时创建的。如果监视器在负载测试期间没有找到与线程转储配置相匹配的要转储的线程,则将不会创建 PROJECTNAME_YYYY-MM-DD_hh-mm-ss 目录。
监视器将在项目线程转储目录中创建具有以下命名模式的线程转储文件:S..S_hh-mm-ss.txt
- S..S: 负载测试运行开始线程转储所用的运行时间,以秒为单位。
- hh-mm-ss: 线程转储所用的系统时间。
- hh:小时,以 24 小时计
- mm:分钟
- ss:秒
每个线程转储文件将包含一个或多个由监视器获得的线程堆栈跟踪。线程堆栈跟踪将具有以下格式:
THREAD_STATE thread: THREAD_NAME thread_stack_entries
每个 BLOCKED 线程后面都跟着一个正在阻塞它的线程的堆栈跟踪。BLOCKED 线程输出将具有以下格式:
THREAD_STATE thread: THREAD_NAME thread_stack_entries ------------------ Blocked by: BLOCKING_THREAD_STATE thread: THREAD_NAME blocking_thread_stack_entries
例如:
BLOCKED thread: Clinet Rec: LTPub_0.4104694862292172 com.acme.connections.ClientComms.isDisconnecting:561 ... java.util.concurrent.ThreadPoolExecutor$Worker.run:617 java.lang.Thread.run:745 ------------------ Blocked by: PARKED thread: acme_pool-2-UserCodeRunnable-135 sun.misc.Unsafe.park:-2 java.util.concurrent.locks.LockSupport.parkNanos:215 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos:2078 java.util.concurrent.ThreadPoolExecutor.awaitTermination:1465 ...
将线程转储与负载测试报告中的图表点进行匹配
若要在负载测试报告图中找到特定点的线程转储,请执行以下步骤:
- 将鼠标悬停在负载测试报告图中的一个点上
- 使用提示框中的运行时间或系统时间,以查找运行时间或系统时间最近的转储文件。
例如,3_10-37-37.txt 文件将是截图中突出显示的图表点的线程转储文件。
查询监视器
一旦将一些参数添加到监视器中,就可以查询它们。
若要发送查询:
- 选择负载测试树节点,该节点代表你希望查询的监视器。
- 单击监视器配置面板的响应视图区域中的 发送请求 按钮。
查询结果将显示在监视器配置面板的响应视图区域中。
验证监视器状态
负载测试树使用彩色气泡表示每个监视器的状态。可使用以下颜色:
- White:表示未检查的。
- Green:表示参数可用。
- Yellow:表示一些参数要么不可用,要么就是其值不是数值。
- Red:表示监视器不可用或不可访问。
若要验证一个或多个监视器的当前状态:
- 右键单击负载测试树节点,该节点代表你希望监视器验证( Monitors 节点、 Windows 节点、 SNMP 节点、 Custom 节点或代表单独监视器的节点。
- 从快捷菜单中选择 验证 。
监视测试套件负载测试期间的行为
你添加到负载测试树的监视器将在测试套件负载测试期间使用。
负载测试期间使用监视器,负载测试将为负载测试进程面板图标选项卡中的每个监视器添加一栏。图表选项卡将显示监视器收集的数据。这些栏的的名称都是基于监视器的图表标题值,而不是 OID 数或参数 ID。
访问监视结果
负载测试期间监视器收集到的数据被保存在详细报告中,可以与默认数据(如“虚拟用户数”,等)一起查看并与之关联。