本主题解释如何使用 Parasoft 事件详情透视图了解发生在虚拟化服务器上的事件(接收的请求消息、发送的响应消息、错误等等)以及部署在这些事件上的消息代理。此功能可用于本地和远程虚拟化服务器。
您可以确定监视哪个虚拟化服务器的事件,然后根据需要开始/停止报告这些细节。
本章包含:
启用事件监控器
默认情况下,Parasoft Virtualize 被配置为记录和报告与虚拟化服务器相关的事件。若要查看和修改事件监控设置:
- 请在 GUI 模式下启动虚拟化服务器。
- 在该GUI中,打开您希望可见的服务器的配置面板(双击其 Virtualize 服务器视图节点)。
- 在 Server Configuration 选项卡,查看并修改可用选项:
- Enable the event monitoring service: 启用/禁用此服务器的事件监视。默认情况下启用事件监视。
- Event Monitoring Provider: 指定事件监视服务使用的提供程序。默认情况下,将使用基于 ActiveMQ 的内置提供程序。若要使用另一个提供程序,请从可用选项列表中选择它,然后完成适用的字段。
- Port: 默认的服务端口号 9617,但是如果该端口正在使用,则会根据可用性自动分配不同的端口号。您还可以通过在启动时在 JVM 参数中设置以下属性手动配置端口:
parasoft.event.monitoring.broker.port=<port>
- Enable the event monitoring service: 启用/禁用此服务器的事件监视。默认情况下启用事件监视。
启动/停止事件监视
启动
若要指示 Virtualize start 报告与虚拟资产或消息代理相关的事件,请执行以下操作之一:
- 右键单击 Virtualize 服务器视图中的资产或代理,然后选择 Start Monitoring。
- 在代理或资产的配置面板中,单击 Start Monitoring。
注意相关的图标将 cфсhange 表明现在被监视。
停止
若要指示 Virtualize stop 报告与虚拟资产或消息代理相关的事件,请执行以下操作之一:
- 右键单击 Virtualize 服务器视图中的资产或代理,然后选择 Stop Monitoring。
- 在代理或资产的配置面板中,单击 Start Monitoring。
提示
- 您可以在虚拟资产级别或消息代理级别启动/停止监视事件。
- 您可以选择多个虚拟资产,并使用一个右击命令启动/停止对所有虚拟资产的监视。
视频教程:监视和记录来自消息代理的流量
在本视频中,描述了如何监视和记录来自消息代理的流量。
查看和探索事件
Parasoft 事件详情透视图目的在于帮助您查看并探索发生在 Virtualize 服务器上的事件(接收的请求消息、发送的响应信息、错误,等等)。
可以用下面任一方式打开该透视图:
- 单击快捷栏(在工作台的右上角)中的 Parasoft Event Details 按钮。
- 单击快捷菜单栏中的 Open Perspective ,选择 Other,然后在打开的 Select Perspective 对话框中选择 Parasoft Event Details 。
- 选择 Window> Open Perspective> Other,然后在打开的 Select Perspective 对话框中选择 Parasoft Event Details 。
在事件日志视图中将按照被监视的事件发生的顺序对它们进行显示。事件报告包括:
- 接收到的请求信息
- 发送的响应信息
- 使用的数据源(例如,响应信息中使用的数据源行)
- 错误事件(请求与消息没有关联、发送了无效信息等等)
- 准备操作套件执行事件(有关操作套件的详情,请查阅 定义配置操作
您可以如下所示探索事件:
为实现这一目标... | 这样做... |
---|---|
有关事件的详细信息,请参阅 | 在 Events Log 视图中选择相关事件 |
清除当前信息并启动一个新会话 | 单击 Start New Log 按钮 |
查看最近的 5 个日志之一 | 从事件日志的 History 下拉菜单选择合适的日志。 |
审查消息代理事件
查阅消息流经已部署的消息代理生成的事件有助于您了解正在测试的应用程序通过消息代理发送的流量。通常,通过消息代理传递的每个请求/响应消息对都会生成以下事件:
- Request received: 指示消息代理接收的消息。提供有关接收消息的 HTTP 路径或队列名称、虚拟化服务器主机名和消息的详细信息。
- Proxy request sent: 指示代理已将消息转发到其预期的目标服务目的地。详细信息包括目的地和消息内容。
- Proxy response received: 指示代理已收到目标服务的响应。
- Response sent: 指示代理已将从服务接收到的响应转发给原始调用方(AUT)。
注意,如果将代理配置为将消息转发到虚拟资产端点,那么将生成相同的事件,并且消息目的地详细信息将包含 URL 或目的地详细信息,以表明这一点。 然而,如果接收代理消息的虚拟资产也受到监视,那么它将生成自己的事件(对于成功的事务,通常有 2 个:接收到的请求和发送的响应事件)。
筛选事件
您可以使用 Filters 视图中可用的控件将焦点对准要关注的事件。可以如下对事件日志进行筛选:
为实现这一目标... | 这样做... |
---|---|
限制事件日志中显示和保存的事件数量。 | 修改 Max event count 值。 |
关注包含指定文本(区分大小写)“详情”的事件。 | 在 Only events that contain 字段中输入字符串。 |
隐藏无法与虚拟资产或代理关联的消息。 | 禁用 Unmatched messages。有关更多详情,请查阅下面的 About Unmatched Messages 。 |
只显示错误事件(错误来自不相关的消息或失败的验证)。 | 启用 Errors only。 |
显示/隐藏来自指定服务器、虚拟资产或响应程序的事件。 | 启用/禁用 Events from checked sources 选项。 |
关于不匹配的消息
“不匹配的消息”是不能与虚拟资产或代理关联的消息。如果事件日志被设置为显示不匹配的消息,并且至少有一个虚拟资产或代理被配置为监视的,则报告的事件将包括以下情况:
- 没有虚拟资产或代理可以处理消息。
- 一个或多个虚拟资产处理了一条消息,但未能找到匹配的响应器。
如果 Virtualize 服务器接收到的消息 a)不匹配虚拟资产或代理路径范围,或者 b)匹配虚拟资产或范围,但 .pva 中没有响应者具有匹配此消息的响应者关联准则,则记录两个事件:
- 带有消息内容(标记为“未识别消息”)的传入消息“请求已接收”事件。
- 带有详细信息的错误“错误返回”事件。
查看 CTP 中的其他事件详细信息
事件详情透视图旨在为您提供传入消息、传出消息和在特定时间发生的错误的实时快照。
有关长时间运行的事务和服务器事件的历史分析的详细信息,我们建议使用 CTP 的事件查看功能。
报告自定义事件
扩展工具(如 用于自定义脚本的扩展工具中所述)可以用来通过调用给定的 com.parasoft.api.ScriptingContext 对象的 report(IEvent)方法报告自定义事件到事件日志上。
这是一个 Jython 示例:
from com.parasoft.api import Event def test(input, context): context.report(Event("Here I am!"))
有关更多详情,请查阅 Extensibility API Javadocs 中的 com.parasoft.api.ScriptingContext 和 com.parasoft.api.IEvent。可以通过选择 Parasoft> Help> Extensibility API来访问 Javadocs。
将第三方监视系统与虚拟化事件监视集成在一起
Virtualize 服务器事件监视利用 JMS 代理。可以使用任何兼容 JMS 的代理对其进行配置,以促进服务器和事件订阅者之间的事件通信。如果使用了 Parasoft 内置提供程序(默认配置),那么您可以在第三方应用程序中使用以下配置,以便通过 JMS 订阅 Virtualize 服务器事件:
JNDI Connection URL: tcp://VirtualizeHostName:61617 JNDI Initial Context class: org.apache.activemq.jndi.ActiveMQInitialContextFactory JMS Connection Factory: ConnectionFactory Destination Name: PARASOFT_SERVER_EVENTS Destination type: Topic
注意,Virtualize 主机端口是在服务器启动时根据可用性动态分配的。若要检查实际端口号,请打开服务器的配置页面(从 Virtualize 服务器视图中)或打开服务器首选项页面(选择 Parasoft> Preferences, 然后选择 Parasoft> Server)。
由 Virtualzie 服务器事件监视服务发布的 JMS 消息是 XML 格式的。如果您只对特定的事件类型感兴趣,则您可以使用 JMS 选择器表达式只接收满足条件的事件:
属性名 | 值 | 消息类型 |
---|---|---|
请求 | true | false | 虚拟资产接收到的请求 |
proxy_request | true | false | 代理接收到的请求 |
响应 | true | false | 虚拟资产发送的响应 |
proxy_response | true | false | 代理发送的响应 |
失败 | true | false | 响应器中的失败事件(例如,验证失败)或代理连接错误事件 |
错误 | true | false | 错误事件(不是特定于虚拟资产或代理的任何错误) |
例如,如果您想订阅虚拟资产、故障和错误的请求和响应消息(而不是代理消息事件),您可以使用以下表达式:
- request=true 或 response=true 或 failures=true 或 error=true
创建消费者时,JMS 选择器表达式可以传递给 JMS 会话对象:
- javax.jms.Session.createConsumer(destinationName, selectorExpression, true);
Parasoft 事件详情透析图 - GUI 参考
Parasoft 事件详情 UI 默认打开以下视图:
事件日志视图
这个区域显示虚拟化相关事件,如消息发送、消息接收或错误。此处选择一个项目将在详情视图中显示更多信息。最近的 5 个日志被保存并可用。
例如,下面的日志显示了 Virtualize 服务器事件:
下面的日志显示了 Virtualize 服务器事件和 SOAtest 测试事件(用于启用事件日志功能的 SOAtest 执行的测试):
详情视图
此视图提供有关在事件日志视图中选择的事件的更多信息。
筛选视图
此视图允许按照 Filtering Events中所描述的那样过滤事件。