Code Monkey home page Code Monkey logo

botium-connector-botframework's Introduction

Botium Connector for Bot Framework Endpoints

NPM

Codeship Status for codeforequity-at/botium-connector-botframework npm version license

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:

  1. SET_ACTIVITY_VALUE
  2. The path to the activity field
  3. 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

botium-connector-botframework's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.