中控按钮连点后场景执行两遍:怎样验收去重与幂等

2026-10-23

防连点只能减少手指重复触发;真正的验收要证明同一个操作编号被重复送达时,业务副作用只发生一次。把“将灯设为30%”与“切换灯开关”“播放下一段”分开测,后两类重复执行会改变结果。

适用条件与证据边界

准备两类测试动作:可反复设置的目标值,以及会累加的计数器替身。记录中控版本、去重范围、记录保存时长和重启行为。本文演示内存中按操作编号去重的规则,不代表 SoftControl 已实现该功能。

本文交付可执行的测试方法、合成演示和空白记录表;未连接现场硬件,未取得设备实测、现场照片或稳定性结论。规范定义与示例判据分别说明,示例数值不能用作设备参数。

按这个顺序核对

  1. 让服务端为一次业务操作保留 request_id,客户端遇到超时仍使用原编号;真正的新操作才分配新编号。记录去重键是否还包含展区和动作类型。

  2. 依次送出原始请求、50毫秒后的同号请求、2秒后的延迟重发,再送一个编号不同但内容相同的请求。分别数接口响应、任务创建和设备动作。

  3. 在去重保存期结束、服务重启、两终端重发三个条件下重放。验收要求必须写清保存期外是允许新执行,还是要求人工确认。

  4. 先让第一条请求完成,再模拟第一条执行中断、回复丢失两种失败。去重命中不能把半成品冒充成功,要能返回运行中或结果未知。

输入与期望结果(合成演示)

输入时间操作编号请求预期累计执行
0open-001下一段1
50open-001同号重发1
2000open-001延迟重发1
2100open-002新操作2

合成夹具内四条输入应产生两次副作用。这个断言验证的是示例判据;真实设备还要在动作出口计数,不能仅看四条HTTP响应都成功。

下载夹具并复用

下载本题JSON夹具与空白工作表。文件中的“演示输入”用于先核对判断逻辑,“现场空白记录”供复制后填写;原演示数据请保留,实测数据另存一份并标注型号、版本和采集时间。可先用 python -m json.tool fixture.json 检查结构,再按上表逐行核对输入与预期。

验收时同时保存原请求和动作出口日志,用同一个关联编号串起来。若只有按钮置灰截图,最多能证明界面行为;如果后台仍接收定时器或第二台平板请求,界面防连点不能覆盖这些入口。对不可逆的机械动作,先用计数器或模拟器验证,再按设备维护程序安排现场测试。

容易误判的边界

同样的内容不一定是同一个意图。讲解员连续合法点两次“下一段”不能被永久合并;反过来,不同编号也可能来自客户端错误重建请求。断线重连、缓存失效和任务执行中崩溃都要单列。

继续核对

基础说明见展厅中控场景与动线设计实战;还可核对一键开馆进行到一半失败,怎样区分重试、继续与回退。相关资料可从中控场景可靠性专题继续查找;需要核对项目实现时,按SoftControl 设备联动需求列出具体接口与验收条件。

一级依据

核对日期:2026-10-23。引用版本用于界定本文方法,实际设备支持范围仍须与对应型号手册核对。本文的任务编号、仲裁、检查点与恢复判据属于应用设计建议,引用的网络或设备协议不自动提供这些保证。

需要展厅软硬件方案或定制开发?

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。问软件授权、报价,或者现场遇到问题,也可以直接聊。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。