事件方案

事件方案测试 Web 服务的设备配置文件 (DPWS) 中受约束的事件。

此方案的目标不是发现托管服务终结点。 此方案假定在启动此方案之前已发现或提供了这些终结点。

对于这些方案,NotifyTo 和 EndTo 地址格式应为物理地址,而不是 uuid 类型的虚拟地址:f014e8aa-fc6a-49f5-b862-1e53663a85ff

有关详细信息,请参阅 WSDBIT 测试环境中的初始测试设备设置关系图。

案例 客户端操作 服务器操作 Pass-Fail条件
4.1 订阅和续订事件。
4.1.1 使用 订阅 SimpleEvent:
- -
wse:Filter == http://schemas.example.org/EventingService/SimpleEventwse:Filter/@Dialect == "<http://schemas.xmlsoap.org/ws/2006/02/devprof/Action>"
客户端可以包含 xs:duration 类型的过期时间。
发送具有足够长期限的 SubscribeResponse 以完成步骤 4.1.2。 过期时间必须为 xs:duration 类型。
对于此测试,服务器不需要使用从客户端请求的相同 xs:duration
客户端收到响应,可以转到步骤 4.1.2。
4.1.2 触发 SimpleEvent。 在客户端接收事件。
4.1.3 将 Renew 发送到 SimpleEvent。
当客户端为事件发送续订时,可以选择手动启动续订,或者在原始 SubscribeResponse 消息中指定的续订期的一半已过后自动发送续订。
发送过期时间足以完成步骤 4.1.4 的 RenewResponse。 过期时间必须为 xs:duration 类型。 客户端收到响应,可以转到步骤 4.1.4。
4.1.4 触发 SimpleEvent。 在客户端接收事件。
4.1.5 将取消订阅发送到 SimpleEvent 的 TestDevice。 发送 UnsubscribeResponse。 客户端收到响应,可以转到步骤 4.1.6。
4.1.6 触发 SimpleEvent。 客户端上未收到任何事件。
4.2 过期的订阅
4.2.1 订阅具有到期时间的 SimpleEvent:
-
- wse:Filter/@Dialect == "<http://schemas.xmlsoap.org/ws/2006/02/devprof/Action>"
wse:Filter == http://schemas.example.org/EventingService/SimpleEvent- 过期持续时间必须足够长才能完成步骤 4.2.2。 过期时间必须为 xs:duration
wsdbit_client使用 60 分钟作为持续时间。
使用 发送 SubscribeResponse:
- 订阅请求中发送的过期时间在 SubscribeResponse 中返回。
客户端收到具有正确过期时间的响应,可以转到步骤 4.2.2。
4.2.2 触发 SimpleEvent。 在客户端接收事件。
4.2.3 将具有过期的续订发送到其 SimpleEvent 订阅的 TestDevice。 过期持续时间必须足够长才能完成步骤 4.2.4。 过期时间必须为 xs:duration
当客户端为事件发送续订时,可以选择手动启动续订,或者在原始 SubscribeResponse 消息中指定的续订期的一半已过后自动发送续订。
发送一个 RenewResponse,其中包含:
- 在 RenewResponse 中返回续订请求中发送的过期时间。
客户端收到具有正确过期时间的响应,可以转到步骤 4.2.4。
4.2.4 触发 SimpleEvent。 在客户端接收事件。
4.3 多个事件源的订阅、续订和到期
4.3.1 使用 订阅 SimpleEvent
- -
wse:Filter == http://schemas.example.org/EventingService/SimpleEventwse:Filter/@Dialect == "<http://schemas.xmlsoap.org/ws/2006/02/devprof/Action>"
客户端可以选择包含类型为 xs:duration 的过期时间。
发送 SubscribeResponse,其过期时间足够长,足以完成步骤 4.3.3。 过期时间必须为 xs:duration 类型。
对于此测试,服务器不需要使用从客户端请求的相同 xs:duration
客户端收到响应,可以转到步骤 4.3.3。
4.3.2 使用 订阅 SimpleEvent:
- -
wse:Filter == http://schemas.example.org/EventingService/IntegerEventwse:Filter/@Dialect == "<http://schemas.xmlsoap.org/ws/2006/02/devprof/Action>"
客户端可以选择包含 xs:duration 类型的过期时间。
发送具有足够长期限的 SubscribeResponse 以完成步骤 4.3.4。 过期时间必须为 xs:duration 类型。
对于此测试,服务器不需要使用从客户端请求的相同 xs:duration
客户端收到响应,可以转到步骤 4.3.4。
4.3.3 触发 SimpleEvent。 在客户端接收事件。
4.3.4 触发 IntegerEvent。 在客户端接收事件,并显示正确的整数。
4.3.5 将 Renew 发送到 IntegerEvent。
当客户端为事件发送续订时,可以选择手动启动续订,或者在原始 SubscribeResponse 消息中指定的续订期的一半已过后自动发送续订。
发送具有足够长期限的 RenewResponse 以完成步骤 4.3.8。 过期时间必须为 xs:duration 类型。 在客户端收到响应。
4.3.6 将取消订阅发送到 SimpleEvent 的 TestDevice。 发送 UnsubscribeResponse。 客户端接收响应,可以转到步骤 4.3.7。
4.3.7 触发 SimpleEvent。 客户端上未收到任何事件。
4.3.8 触发 IntegerEvent。 在客户端接收事件,并显示正确的整数。
4.3.9 向 IntegerEvent 的 TestDevice 发送取消订阅。 发送 UnsubscribeResponse。 客户端收到响应,可以转到步骤 4.3.10。
4.3.10 触发 IntegerEvent。 客户端上未收到任何事件。
4.4 订阅失败和故障
4.4.1 订阅 FaultingEvent,其中包含:
- wse:Filter/@Dialect == "<http://schemas.xmlsoap.org/ws/2006/02/devprof/Action>"
- wse:Filter == http://schemas.example.org/EventingService/FaultingEvent
由于不支持此事件,因此必须发送 wsdp:FilterActionNotSupported SOAP 错误。 在客户端上观察到订阅失败。