google action的测试套件中执行和查询意图的错误报告

Posted

技术标签:

【中文标题】google action的测试套件中执行和查询意图的错误报告【英文标题】:Error report for execution and query intent in the test suite of the google action 【发布时间】:2021-11-10 10:57:54 【问题描述】:

我们的项目在测试中通过了“开启”执行和查询 谷歌行动套件。 但是“关闭”执行和查询失败了,我找不到我们的部分。 在“关闭”执行后,我对“开启”属性回复了“假”,但是 显示错误报告 - 实际状态:"on":true,"online":true。 下面是交换的数据和错误报告。

执行 Google 操作请求: "inputs":["context":"locale_country":"US","locale_language":"en","intent":"action.devices.EXECUTE","payload":"commands": ["devices":["id":"eg_cam_87901"],"execution":["command":"action.devices.commands.OnOff","params":"on":false ]]],"requestId":"960820806239759768"

我们对执行的回应: "requestId":"960820806239759768","payload":"commands":["ids":["eg_cam_87901"],"status":"SUCCESS","state":"online":false," on":false,"currentToggleSettings":null]

Google 操作错误报告 关掉卧室 AssertionError:预期状态包括:"on":false,实际状态:"on":true,"online":true:预期 false 为 true

Google 操作请求查询: "inputs":["intent":"action.devices.QUERY","payload":"devices":["id":"eg_cam_87901"]],"requestId":"4409204964431192716"

我们的查询回复: "requestId":"4409204964431192716","payload":"devices":"eg_cam_87901":"online":false,"status":"SUCCESS","on":false,"currentToggleSettings":null

Google 操作错误报告 “关闭卧室”后的查询 错误:抛出字符串“来自 HA 的错误:deviceOffline”,在 Runner.fail (js/ app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4491:11) 在 js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4802:18 完成 (js/app_compiled.js?f77b3b67-fc1 -4a38-8a20-fe5eafbc2c40:4189:5) 在 js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4236:11 在 w.Ic (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20- fe5eafbc2c40:18137:24) 在 r.run (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18129:169) 在 js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40: 310 在 w.Jl (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18137:454) 在 r.Ms (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18130:301 ) 在 h (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18126:375) 在 y.Jl [as Ic] (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18139 :326) 在 q (js/app_compiled.js?f7 7b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18167:89) 在 e (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18158:235) 在 XMLHttpRequest.w (js/app_compiled.js?f77b3b67- f1c5-4a38-8a20-fe5eafbc2c40:18167:241)

【问题讨论】:

【参考方案1】:

这里有几个问题。

首先,您需要验证您的同步响应是否包含适当的设备属性 - 您的执行/查询响应都为您的 currentToggleSettings 返回 NULL,而不是同步响应中的 availableToggles 字符串。如果你只是为你的设备使用OnOff,你实际上甚至不需要实现任何Toggle trait 特性。再次验证您的初始同步响应中的内容。

其次,您将返回 online: falseon:false,这就是您收到以下错误的原因:

错误:抛出字符串“来自 HA:deviceOffline 的错误”

online:false 仅应在用户发出命令/查询时以及当您打算返回 “设备现在不可用”的 TTS 响应时使用受控。这还应在您的回复中包含status:ERRROR。您可以在docs 中阅读有关处理错误和异常的更多信息。

在响应执行/查询请求时返回 online:true, on:falseonline:true, on:true 应该可以修复 deviceOffline 错误。

【讨论】:

以上是关于google action的测试套件中执行和查询意图的错误报告的主要内容,如果未能解决你的问题,请参考以下文章

sh Phoronix测试套件,Google PerfKit

在 Cabal 测试套件中找到我的可执行文件

如何在Android应用中测试Google Actions?

unittest-测试套件

如何在赛普拉斯的所有测试套件之前执行代码?

如何使用 testng.xml 从大型 TestNG 套件执行一项测试?