事件方案
事件方案测试 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/SimpleEvent wse: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/SimpleEvent wse: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/IntegerEvent wse: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 错误。 | 在客户端上观察到订阅失败。 |