測試聊天機器人的新方法——Botfuel Dialog

前言:

因為 Botfuel Dialog 聊天機器人是一個網路應用,你可以依靠它強大的編程功能,例如單元與集成測試,來測試你的機器人。

目標

在這篇教程中你可以學習如何使用 Jest 來測試你的聊天機器人,它是一個由 Facebook 開發的測試庫。不過,你也可以使用其它測試庫,例如 Mocha。

至於這篇教程的目標,是讓你學習如何將機器人的手動測試自動化,以確保聊天機器人如期工作。

對於這篇教程,我們會從簡單的樣例機器人開始。請確保你已按照入門教程運行直至安裝部分。

舉個例子,初始的樣例機器人會有如下的行為:

讓我們來寫一個測試來確保這一簡單功能的運轉。

配置

首先,我們需要安裝 Jest 作開發基礎:

npm install --dev jest

一旦 Jest 安裝完成,添加如下 test 腳本到你的 package.json 文件:

你可以通過npm test來運行 Jest。

為了在測試模式下運行聊天機器人,我們需要一個配置文件指出我們將用到的test適配器。用如下內容在根級別創建一個test-config.js文件:

寫測試

為了模擬人與機器人之間的對話,我們會使用Bot的play方法。這種方法需要一組用戶消息,其可以代表所有用戶會發給聊天機器人的所有消息。對於用戶來說,它可能是以下幾種類型:

●PostbackMessage (回執消息)

●UserImageMessage (用戶圖片消息)

●UserTextMessage (用戶文本消息)

在我們的樣例中,他們都是些簡單的UserTextMessage。

舉個例子,模擬這段對話:

我們會編寫:

用戶與機器人被捕捉的輸出消息被儲存進bot.adapter.log,所以我們可以編寫以下程序來測試機器人是否如期響應:

比較期望的與實際的輸出,我們提供方便的toJson方法以便消息可以相比做原生的 JSON。這種方法需要userId作為一個參數,因為每個UserTextMessage都可以轉化為 JSON 的形式,並以消息作者的分類儲存在userId下。

這裡,你同樣也可以使用全部的消息類型。

讓我們來寫一下完整的測試樣例吧!

在聊天機器人的跟級別構建一個tests庫並在其中用如下內容創建一個hello.test.js文件:

運行測試前,先執行以下命令:

BOTFUEL_APP_TOKEN=<the BOTFUEL_APP_TOKEN> BOTFUEL_APP_ID=<the BOTFUEL_APP_ID> BOTFUEL_APP_KEY=<the BOTFUEL_APP_KEY> npm test

這裡需要你的應用證書因為你的聊天機器人會調用 NLP API。

你會看到如下結果:

到此為止,恭喜你,你已經成功地將一個聊天機器人的測試樣例自動化!當然如果您想了解更多關於軟體測試方面的文章,請前往51Testing軟體測試網-中國軟體測試人的精神家園哦~


推薦閱讀:

python selenium2自動化測試系列電子書
在Selenium Webdriver中使用XPath Contains、Sibling函數定位
漫談自動化測試
同學,你為什麼定位不到元素?
性能測試解惑之並發壓力

TAG:軟體測試 | 聊天機器人 | 自動化測試 |