This project was formerly known as "TestMyBot" - same scope, different name
Botium is the Selenium for chatbots. Botium Bindings is the glue to bind Botium to test runners like Mocha, Jasmine and Jest.
- Read the Botium in a Nutshell series
- If you think you found a bug in Botium, please use the Github issue tracker.
- The documentation on a very technical level can be found in the Botium Wiki.
- For asking questions please use Stackoverflow - we are monitoring and answering questions there.
- For our VIP users, there is also a Slack workspace available (coming soon).
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!
You should already have a Node.js project set up with the test runner of your choice (Mocha, Jasmine, Jest supported out of the box).
The following commands will install Botium Bindings, extend your Mocha specs with the Botium test case runner and run a sample Botium test:
> npm install -g botium-bindings
> botium-bindings init mocha
> npm install && npm run mocha
Here is what's happening:
- Your package.json file is extended with a "botium"-Section and some devDependencies
- A botium.json file is created in the root directory of your project
- A botium.spec.js file is created in the "spec" folder to dynamically create test cases out of your Botium scripts
- A sample convo file is created in the "spec/convo" folder
Place your own Botium scripts in the "spec/convo" folder and Mocha will find them on the next run.
There are a couple of samples available, showing possible scenarios to use Botium Bindings. For all samples, use these commands to run them:
> npm install
> npm run test
To run the console emulator (text input and output), run this command in the sample directory:
> npm install
> npm run emulator
In case you want to see some more output, enable debug logging:
> export DEBUG=botium*
- Demonstrates usage of the free utterances and chatbot test cases library "Botium Utterances"
- Loads the typical "Tell me a Joke" test suite and runs it agains a Dialogflow chatbot
- Uses one of the sample chatbots included in the Bot Framework Samples Repository
- Loads chatbot code from Github automatically
- Uses "docker" mode to place chatbot in docker container
- Uses a calculator sample
- Loads chatbot code from Github automatically
- Uses "docker" mode to place chatbot in docker container
(no test cases contained in this sample)
- Shows a chatbot developed in another programming language than Javascript
- Uses a chatbot developed with Clojure from the Lemmings incubator
- Downloads a docker image ("clojure.lein") and placing the chatbot in a docker container
{
"botium": {
"Capabilities": {
"PROJECTNAME": "botium-bindings-sample-clojure",
"FACEBOOK_API": true,
"FACEBOOK_WEBHOOK_PORT": 3000,
"FACEBOOK_WEBHOOK_PATH": "webhook",
"CLEANUPTEMPDIR": false,
"DOCKERIMAGE": "clojure:lein",
"STARTCMD": "lein ring server-headless"
},
"Sources": {
"GITURL": "https://github.com/lemmings-io/02-facebook-example.git"
}
}
}
- Shows how to include Botium Bindings into your build pipeline for continuous testing
- docker container
- Can be used to automate testing of a chatbot already running in facebook messenger
- Usefull for regression testing, not for continuous testing (takes to much time to run)
- See sample directory for instructions
- Mocha can be used instead of Jasmine as well
- docker container
- Chatbot developed in PHP
- See sample directory for instructions
- Sample how to test a Slack chatbot
- Connecting to Watson conversation service to run your convos
- Useful for regression testing
- Workspace can be copied automatically before running the test cases (to not pollute your workspace)
- Uses the Web speech api to run a conversation with Alexa
- Requires a real browser supporting the Web Speech API
- Contacting a custom REST/HTTP interface, as usual for chatbots running on websites
- Test cases are extracted from an Excel sheet instead of text files