首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在开发Alexa技能时测试高级交互

如何在开发Alexa技能时测试高级交互
EN

Stack Overflow用户
提问于 2017-09-18 10:10:29
回答 3查看 271关注 0票数 2

我正在开发Alexa技能,如果我在开发过程中以最好的方式设置所有的东西,我就会在理解中挣扎。

现在,我正在使用Node.js在本地进行开发,准备好后上传到云中,并在开发人员控制台的测试部分中使用服务模拟器测试所有对意图的响应。我觉得这个过程有点慢但是很有效..。不过,我还有两个问题:

( 1)是否有办法避免上传到云的过程?

最重要的是2)如何在控制台中测试高级交互,例如多步交互?例如,如何测试触发对意图的响应,但随后要求用户确认(是/否)?现在,唯一的方法是使用实际的设备。

任何改进都将受到高度赞赏。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-18 13:56:14

下面是我在本地测试多步交互的方法。

我正在使用一个名为BSTAlexa的免费第三方工具:

http://docs.bespoken.tools/en/latest/api/classes/bstalexa.html

它模仿Amazon在接受请求、按照您的技能提供请求和维护交互状态方面的作用。

因此,我开始我的测试脚本配置BSTAlexa -指向我的技能配置(例如。和我的技能的一个本地实例(在我的例子中,我是给它一个本地URL)。

然后,我向BSTAlexa提供一系列文本请求,并验证我是否得到了预期的响应。我把这些都写进了摩卡的剧本里。

效果很好。

票数 1
EN

Stack Overflow用户

发布于 2017-09-18 20:42:45

就像@Tom建议的--看看bespoken.tools在本地测试技能。

另外,最近发布了Alexa命令行接口,它有一些命令行选项可以查看。

例如,'api调用-技能‘命令允许您通过命令行(或脚本)在本地调用技能,因此不必使用服务模拟器。像这样..。

代码语言:javascript
复制
$ask api invoke-skill -s $SKILL_ID -f $JSON --endpoint-region $REGION --debug

这是我做的一个快速视频,它介绍了ASK。它没有专门涵盖测试,但它将提供一个快速的介绍。

https://youtu.be/p-zlSdixCZ4

希望这能有所帮助。

编辑:对本地测试有另一个想法。如果使用的是节点函数和Lambda函数,则可以从另一个本地index.js文件(例如: test.js)中调用该文件,并传递事件数据和上下文。下面是一个示例:

代码语言:javascript
复制
//path to the Lambda index.js file
var lambdaFunction = require('../lambda/custom/index.js');

// json representing the event - just copy from the service simulator
var event = require('./events/GetUpdateByName.json');

var context = {
  'succeed': function (data) {
      console.log(JSON.stringify(data, null,'\t') );

  },
  'fail': function (err) {
      console.log('context.fail occurred');
      console.log(JSON.stringify(err, null,'\t') );
  }
};

function callback(error, data) {
  if(error) {
      console.log('error: ' + error);
  } else {
      console.log(data);
  }
}

// call the lambda function
lambdaFunction.handler (event, context, callback);
票数 2
EN

Stack Overflow用户

发布于 2017-09-18 11:42:39

请找到答案(以相反的顺序回答),

  1. 您可以使用模拟器(echosim.io)测试多个步骤,但每次必须按下并按住Mic按钮(或在空格键上保持)。例如,首先你要问Alexa一些东西,回显和alexa回答确认‘是/否’,然后你必须按下麦克风按钮,然后再按住麦克风按钮来确认。
  2. 您可以自动化lambda部署过程。请看链接,http://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html

最好编写完整的单元测试,以便在上传Lambda之前测试您的逻辑。此外,它还将有助于减少Lambda部署的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46276745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档