Skip to content

How can I test a Bot Framework Chatbot without going over Directline ?

The Botium Directline3 connector is configured as separate channel for an Azure Bot Service in the Azure Portal. Botium tests are always hitting the Azure servers - is it possible to run against a locally deployed Bot Framework app ? Yes.

Option 1: Use the Bot Framework Emulator

The Bot Framework Emulator includes a Directline-compatible endpoint for providing the live chat.

  1. Start the emulator and connect to your bot

  2. It will tell you what port it is listing on for Directline connections

    Unfortunately it is not possible to configure this port, so the emulator will always run on another port.

  3. In Botium Box, configure your Directline connector - use any value for the Directline token, as this won’t be validated.

  4. In the Advanced Mode, add an additional capability

    1. Name DIRECTLINE3_DOMAIN

    2. Type Text

    3. Value http://127.0.0.1:39027/v3/directline

      1. Replace 127.0.0.1 with the hostname where the emulator is running, or with host.docker.internal if running it on the same workstation as your Botium Box

      2. Instead of 39027 use the port you are

That’s it.

Option 2: Use offline-directline

This project is available on Github and also provides a Directline-compatible endpoint to connect to. Follow the installation instructions on Github and launch it. Similar to above, add a DIRECTLINE3_DOMAIN capability to tell Botium to use the local Directline endpoint instead of the one on the Microsoft servers.

The advantage over the Bot Framework Emulator is that it can run on a headless server as background process and the listen port can be configured. The disadvantage is that it is not officially supported by Microsoft.

Option 3: Connect to the Bot Framework Endpoint

The Botium Connector for Bot Framework Endpoint is available here: https://github.com/codeforequity-at/botium-connector-botframework