2016-12-27 13 views
6

के लिए ऑटो परीक्षण अब मैं एएसपी.NET के साथ माइक्रोसॉफ्ट बॉट फ्रेमवर्क के साथ अपने पहले बॉट पर काम कर रहा हूं।माइक्रोसॉफ्ट बॉट फ्रेमवर्क

बॉट एमुलेटर के साथ मैन्युअल रूप से परीक्षण करने के बाद, मैं बॉट के लिए स्वचालित परीक्षण बनाने के लिए सबसे अच्छी विधि की तलाश में हूं।

ध्यान में रखते हुए दोनों समस्याओं:

  1. क्या इस तरह के परीक्षणों को स्वचालित करने के लिए सबसे अच्छा उपकरण है?
  2. एक ऐसे संवाद का परीक्षण करने का सबसे अच्छा तरीका क्या है जो एक ही इनपुट के अलग-अलग उत्तरों लौटा सकता है?

उत्तर

7

एक विकल्प डायरेक्टलाइन का उपयोग करके कार्यात्मक परीक्षण कर रहा है। चेतावनी यह है कि बॉट को होस्ट करने की जरूरत है लेकिन यह शक्तिशाली है। यह कैसे काम करता है यह देखने के लिए AzureBot tests project देखें।

एक और विकल्प, यह कर रहा है कि BotFramework टीम उनके कुछ यूनिट परीक्षणों के लिए क्या कर रही है।

यदि आप संवाद का उपयोग कर रहे हैं, तो आप EchoBot unit tests पर एक नज़र डाल सकते हैं क्योंकि उनका पालन करना आसान है।

यदि आप चेन का उपयोग कर रहे हैं, तो यह देखें कि वे AssertScriptAsync विधि का उपयोग कैसे कर रहे हैं।

आप एक तरह से लुइस सेवा नकली करने के लिए देख रहे हैं, this देखते हैं।

+0

दरअसल इस लिंक https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Tests/Microsoft.Bot। नमूना। यूनिट परीक्षण को दिखाने के लिए बेहतर है क्योंकि इसमें कुछ वास्तविक उदाहरण हैं। – OmG

3

आप Selenium पर विचार करना चाह सकते हैं। सेलेनियम वेब ब्राउजर ऑटोमेशन सॉफ्टवेयर है जो आपको उन परीक्षणों को लिखने की इजाजत देता है जो प्रोग्रामेटिक रूप से पढ़ते हैं और वेब पेज के डीओएम को लिखते हैं। एक सेलेनियम स्क्रिप्ट के साथ आप:

किसी भी चैनल है कि एक वेब ग्राहक प्रदान करता है पर
  • लॉगिन (और उनमें से ज्यादातर कार्य करें: webchat, टेलीग्राम, स्काइप, फेसबुक, उदाहरण के लिए)
  • एक बातचीत अपने बॉट
  • के साथ शुरू
  • चैट पर संदेश पोस्ट करने के लिए ऑपरेशन करें और
  • पर परीक्षण करें कि क्या आप उम्मीद करते हैं कि उत्तर क्या है।
1

Node.js में बॉट के स्वचालित परीक्षण के लिए, GitHub पर BotBuilder में परीक्षण के रूप में एक ही तरीके से ConsoleConnector का उपयोग कर, अच्छी तरह से काम करता है जैसे https://github.com/Microsoft/BotBuilder/blob/master/Node/core/tests/localization.js पर एक नज़र डालें:

var assert = require('assert'); 
var builder = require('../'); 

describe('localization', function() { 
this.timeout(5000); 
it('should return localized prompt when found', function (done) { 
    var connector = new builder.ConsoleConnector();  
    var bot = new builder.UniversalBot(connector); 
    bot.dialog('/', function (session, args) { 
     session.send('id1'); 
    }); 
    bot.on('send', function (message) { 
     assert(message.text === 'index-en1'); 
     done(); 
    }); 
    connector.processMessage('test'); 
}); 

... आदि ...

संबंधित मुद्दे