Botium Connector for Bot Framework Endpoints
This is a Botium connector for testing your Bot Framework endpoint.
Did you read the Botium in a Nutshell articles? Be warned, without prior knowledge of Botium you won't be able to properly use this library!
How it works
Botium connects to your Bot Framework endpoint and receives responses with the serviceUrl property.
It can be used as any other Botium connector with all Botium Stack components:
Requirements
- Node.js and NPM
- a Bot Framework endpoint
- a project directory on your workstation to hold test cases and Botium configuration
Install Botium and Bot Framework Connector
When using Botium CLI:
> npm install -g botium-cli
> npm install -g botium-connector-botframework
> botium-cli init
> botium-cli run
When using Botium Bindings:
> npm install -g botium-bindings
> npm install -g botium-connector-botframework
> botium-bindings init mocha
> npm install && npm run mocha
When using Botium Box:
Already integrated into Botium Box, no setup required
Connecting Bot Framework to Botium
Create a botium.json with the the URL of your Bot Framework endpoint in your project directory:
{
"botium": {
"Capabilities": {
"PROJECTNAME": "<whatever>",
"CONTAINERMODE": "botframework",
"BOTFRAMEWORK_ENDPOINTURL": "https://demo.botiumbox.com/mockbot/api/messages",
"BOTFRAMEWORK_SERVICEURL": "https://xxxxxxxxx.ngrok.io"
}
}
}
How to start sample
tbd
Finetuning Bot Framework Activity
For finetuning the Activity object sent to your bot, you can use the UPDATE_CUSTOM logic hook. This example will add some custom values to the channelData:
#me
do some channel specific thingy ...
UPDATE_CUSTOM SET_ACTIVITY_VALUE|channelData|{"channelData1": "botium", "channelData2": "something else"}
The parameters are:
- SET_ACTIVITY_VALUE
- The path to the activity field
- The value of the activity field
Supported Capabilities
Set the capability CONTAINERMODE to botframework to activate this connector.
BOTFRAMEWORK_ENDPOINTURL
Bot Framework Endpoint URL, typically ending in /api/messages
BOTFRAMEWORK_SERVICEURL
The URL where the Botium Inbound Url is available, as seen from the Bot Framework app
BOTFRAMEWORK_APP_ID and BOTFRAMEWORK_APP_SECRET
If your Bot Framework app runs with app id and app secret, Botium will create an authorization token.
BOTFRAMEWORK_CHANNELID
Default: emulator
BOTFRAMEWORK_RECIPIENTID
Default: generated unique id
BOTFRAMEWORK_RECIPIENTNAME
Default: Bot
BOTFRAMEWORK_MEMBERID
Default: generated unique id
BOTFRAMEWORK_MEMBERNAME
Default: Botium
BOTFRAMEWORK_BUTTON_TYPE and BOTFRAMEWORK_BUTTON_VALUE_FIELD
Default type: event
Default field: name
Activity fields to use for simulating button clicks by the user. Depending on your implementation, you maybe have to change the activity type or the field to use - see here for some ideas.
Usually, the activity type is event, and the button value is submitted in the name field, but using those capabilities you can adapt it to your implementation.
Note: if you want to disable this, then set BOTFRAMEWORK_BUTTON_TYPE to "message" and BOTFRAMEWORK_BUTTON_VALUE_FIELD to "text", to make the button clicks appear as normal user text input