2017-02-12 18 views
7

Я развиваю умение Alexa в узле, и я хотел бы знать, как я могу тестировать свой код. Я использую alexa sdk, выпущенный Amazon.Тестирование модуля Alexa умение, которое использует alexa-sdk

Я нашел много библиотек, чтобы выполнить это, но они, похоже, разработаны до того, как был доступен алексей sdk.

Заранее спасибо.

ответ

5

Мы построили наш Alexa эмулятор специально для целей позволяет легко юнит-тестирование и функциональное тестирование навыков Alexa:
http://docs.bespoken.tools/en/latest/tutorials/tutorial_bst_emulator_nodejs/

С его помощью вы можете совершать звонки, как это:

alexa.launched(function (error, response) { 
    alexa.spoken('About the podcast', function (error, response) { 
     assert.equal(response.response.outputSpeech.ssml, '<speak> Some SSML </speak>'); 
     done(); 
    }); 
}); 

Этот тестовый код имитирует пользователя, запускающего навык и говорящего «О подкасте». Эти взаимодействия автоматически переводятся в правильные запросы Alexa JSON, которые, в свою очередь, затем отправляются на ваш код навыков.

Вы также можете создавать более сложные модульные тесты, которые полагаются на имитацию внутреннего состояния устройства Alexa во всех взаимодействиях. Они описаны в учебнике.

0

Я использую alexa-skill-test-framework с моккой для генерации алексантного намерения json. Можно настроить службы AWS в локальном компьютере с помощью localstack, который поддерживает DynamoDB, SQS, Lambda и другие услуги

0

lex-bot-tester является основой и инструментом для создания разговорных тестов для Amazon Alexa и Lex.

Вместо использования моделируемой версии умения он использует существующий SMAPI для решения проблемы с Alexa.

Тесты могут быть созданы вручную или автоматически сгенерированы с помощью инструмента, который называется urutu. Прямо сейчас, генерация кода равна python, но реализация навыка может быть на любом поддерживаемом языке.

После взаимодействия с Мастерства из командной строки, определяющий разговор, сгенерированный код выглядит следующим образом

#! /usr/bin/env python 
import sys 
import unittest 

from lex_bot_tester.aws.alexa.alexaskilltest import AlexaSkillTest 

verbose = True 

class GeneratedTests(AlexaSkillTest): 
    def test_book_my_trip_reserve_car(self): 
     """ 
     Test generated by urutu on 2018-02-21 01:24:51 
     """ 
     skill_name = 'BookMyTripSkill' 
     intent = 'BookCar' 
     conversation = [{'slot': None, 'text': 'ask book my trip to reserve a car', 'prompt': None}, 
         {'slot': 'CarType', 'text': 'midsize', 
         'prompt': 'What type of car would you like to rent, Our most popular options are economy, midsize, and luxury'}, 
         {'slot': 'PickUpCity', 'text': 'vancouver', 
         'prompt': 'In what city do you need to rent a car?'}, 
         {'slot': 'PickUpDate', 'text': 'tomorrow', 
         'prompt': 'What day do you want to start your rental?'}, 
         {'slot': 'ReturnDate', 'text': 'next week', 
         'prompt': 'What day do you want to return the car?'}, 
         {'slot': 'DriverAge', 'text': '25', 'prompt': 'How old is the driver for this rental?'}] 
     simulation_result = self.conversation_text(skill_name, intent, conversation, verbose=verbose) 
     self.assertSimulationResultIsCorrect(simulation_result, verbose=verbose) 

if __name__ == '__main__': 
    unittest.main() 

Существует более подробное объяснение и некоторые видео на Testing Alexa Skills — Autogenerated tests.

 Смежные вопросы

  • Нет связанных вопросов^_^