Skip to content

Customizing Test Results in Botium Box

Botium comes with a set of test result download links for getting the test result in a format suitable for further processing. The structure of these downloads can be customized to your needs.

Note

Only possible for paid Botium Box plans!

For example, the Jira export file from Botium Box is rather slim (CSV with a couple of fields) - most likely you want to have some special project-specific fields in there.

All customizations have to be done in Javascript code, so you absolutely require some know-how in this programming language.

Where to place the customization code ?

For each export format, the customization code has to be placed in the resources directory of Botium Box:

resources/extensions/testresults/\.js

where format is one of:

  • json
  • junit
  • csv
  • jiracsv
  • pdf

How to write customization code ?

The file from above has to export a single function. This (useless) example writes a full information test result and the local hostname as json (and it should be placed in resources/extensions/testresults/json.js):

const os = require('os')

module.exports = ({ testSessionResults, testSessionSettings, testSessionTestSets, testSessionLink }) => {
  return {
    testSessionResults,
    testSessionSettings,
    testSessionTestSets,
    testSessionLink,
    hostname: os.hostname()
  }
}

You can adapt all exports to your needs. Botium Box includes the PDFKit library, so you can even customize the PDF export to your company layout.

The function will be called with several parameters, and you can use any available NPM module you want in your function code. The parameters are:

testSessionResults

The test session results (test cases and test result, error information, …)

testSessionSettings

Settings of the test session (test sets, chatbots, …)

testSessionTestSets

Description of the involved test sets

Full content sample

The example exporter above produces this result - so you have the overview here what fields are available.

{
   "testSessionResults":{
      "id":"ck0fg6d1y00g10691094ysw8g",
      "name":"Echo Bot - Test Suite - Test Session",
      "status":"FAILED",
      "createdAt":"2019-09-11T15:57:25.269Z",
      "client":null,
      "results":[
         {
            "id":"ck0fg6fun00ii0691bxsd4hv1",
            "testcaseName":"give me buttons",
            "createdAt":"2019-09-11T15:57:28.891Z",
            "testcaseSource":"1 give me buttons ({ testSetId: 'ck0dzt0fy00f90691zgx440uf',\n  testSetScriptId: 'ck0dzt0gb00fc0691bdqjr89r' }): Line 3: #me - Hi Bot! | Line 6: #bot - You said: Hi Bot! | Line 9: #me - give me buttons | Line 12: #bot - Here are some buttons BUTTONS(First Button,Second Button)",
            "success":true,
            "err":null,
            "errDetails":null,
            "duration":17,
            "testSet":{
               "id":"ck0dzt0fy00f90691zgx440uf",
               "name":"Echo Sample",
               "tags":[
                  "Demo"
               ]
            },
            "testSetRepository":null,
            "testSetFolder":null,
            "testSetExcel":null,
            "testSetFilename":null
         },
         {
            "id":"ck0fg6hli00ju0691guolafwj",
            "testcaseName":"give me picture",
            "createdAt":"2019-09-11T15:57:31.153Z",
            "testcaseSource":"2 give me picture ({ testSetId: 'ck0dzt0fy00f90691zgx440uf',\n  testSetScriptId: 'ck0dzt0g300fa0691qrtk0ccf' }): Line 3: #me - Hello, Bot! | Line 6: #bot - You said: Hello, Bot! | Line 9: #me - give me a picture | Line 12: #bot - Here is a picture MEDIA(http://www.botium.at/img/logo.png)",
            "success":true,
            "err":null,
            "errDetails":null,
            "duration":21,
            "testSet":{
               "id":"ck0dzt0fy00f90691zgx440uf",
               "name":"Echo Sample",
               "tags":[
                  "Demo"
               ]
            },
            "testSetRepository":null,
            "testSetFolder":null,
            "testSetExcel":null,
            "testSetFilename":null
         },
         {
            "id":"ck0fg6jfh00lb0691z4g1ygm9",
            "testcaseName":"should fail",
            "createdAt":"2019-09-11T15:57:33.530Z",
            "testcaseSource":"3 should fail ({ testSetId: 'ck0dzt0fy00f90691zgx440uf',\n  testSetScriptId: 'ck0fg6a6i00f40691qdcy8qf2' }): Line 3: #me - hi | Line 6: #bot - asdf",
            "success":false,
            "err":"should fail/Line 6: Expected bot response (on Line 3: #me - hi) \"You said: hi\" to match one of \"asdf\"",
            "errDetails":"[{\"type\":\"asserter\",\"source\":\"TextMatchAsserter\",\"context\":{\"stepTag\":\"should fail/Line 6\"},\"cause\":{\"expected\":[\"asdf\"],\"actual\":\"You said: hi\"},\"message\":\"should fail/Line 6: Expected bot response (on Line 3: #me - hi) \\\"You said: hi\\\" to match one of \\\"asdf\\\"\"}]",
            "duration":16,
            "testSet":{
               "id":"ck0dzt0fy00f90691zgx440uf",
               "name":"Echo Sample",
               "tags":[
                  "Demo"
               ]
            },
            "testSetRepository":null,
            "testSetFolder":null,
            "testSetExcel":null,
            "testSetFilename":null
         }
      ]
   },
   "testSessionSettings":{
      "id":"ck0fg6d1y00g10691094ysw8g",
      "name":"Echo Bot - Test Suite - Test Session",
      "client":null,
      "description":null,
      "createdAt":"2019-09-11T15:57:25.269Z",
      "securityCheck":null,
      "tags":[
         "BoxTriggered"
      ],
      "batchCount":3,
      "bail":null,
      "chatbot":{
         "id":"ck0dzt02700e806913cs79iwo",
         "name":"Echo Bot",
         "description":"Chatbot simulator for evaluating Botium and Botium Box features. Sample commands: 'buttons', 'show me buttons', 'picture', 'show me a picture', 'card', 'show me a card'. Otherwise the input is echoed back.",
         "tags":[
            "Demo"
         ],
         "retryUserSaysNumRetries":null,
         "retryUserSaysFactor":null,
         "retryUserSaysMinTimeout":null,
         "retryUserSaysOnErrorRegexp":[

         ],
         "capabilities":[
            {
               "name":"CONTAINERMODE",
               "type":"STRING",
               "stringValue":"echo",
               "intValue":null,
               "booleanValue":null,
               "jsonValue":null
            }
         ],
         "sources":[

         ],
         "envs":[

         ]
      },
      "testSets":[
         {
            "id":"ck0dzt0fy00f90691zgx440uf",
            "name":"Echo Sample",
            "useMatchingMode":null,
            "expandConvos":true,
            "expandConvosMode":null,
            "expandConvosModeRandomCount":null,
            "expandUtterancesToConvos":false,
            "expandUtterancesIncomprehension":null,
            "useScriptingMemory":true,
            "useScriptingMemoryMatchingMode":null,
            "expandScriptingMemory":false,
            "normalizeText":true
         }
      ],
      "deviceSets":[

      ],
      "testProject":{
         "id":"ck0dzt0v600gf0691rvtavkcz",
         "name":"Echo Bot - Test Suite",
         "description":"Test Suite for Echo chatbot",
         "tags":[
            "Demo"
         ],
         "capabilities":[

         ]
      },
      "registeredComponents":[

      ],
      "agent":null,
      "capabilities":[

      ],
      "sources":[

      ],
      "envs":[

      ]
   },
   "testSessionTestSets":[
      {
         "id":"ck0dzt0fy00f90691zgx440uf",
         "name":"Echo Sample",
         "description":"Just some basic sample scripts",
         "tags":[
            "Demo"
         ],
         "useMatchingMode":null,
         "expandConvos":true,
         "expandConvosMode":null,
         "expandConvosModeRandomCount":null,
         "expandUtterancesToConvos":false,
         "expandUtterancesIncomprehension":null,
         "useScriptingMemory":true,
         "useScriptingMemoryMatchingMode":null,
         "expandScriptingMemory":false,
         "normalizeText":true,
         "excelHasConvos":null,
         "excelHasPartialConvos":null,
         "excelHasUtterances":null,
         "excelWorksheetsConvos":null,
         "excelWorksheetsPartialConvos":null,
         "excelWorksheetsUtterances":null,
         "excelStartRow":null,
         "excelStartCol":null,
         "selectionType":null,
         "scripts":[
            {
               "id":"ck0dzt0g300fa0691qrtk0ccf",
               "name":"give me picture",
               "script":"give me picture\n\n#me\nHello, Bot!\n\n#bot\nYou said: Hello, Bot!\n\n#me\ngive me a picture\n\n#bot\nHere is a picture\nMEDIA http://www.botium.at/img/logo.png\n",
               "scriptType":"SCRIPTING_TYPE_CONVO"
            },
            {
               "id":"ck0dzt0gb00fc0691bdqjr89r",
               "name":"give me buttons",
               "script":"give me buttons\n\n#me\nHi Bot!\n\n#bot\nYou said: Hi Bot!\n\n#me\ngive me buttons\n\n#bot\nHere are some buttons\nBUTTONS First Button|Second Button\n",
               "scriptType":"SCRIPTING_TYPE_CONVO"
            },
            {
               "id":"ck0fg6a6i00f40691qdcy8qf2",
               "name":"should fail",
               "script":"should fail\n\n#me\nhi\n\n#bot\nasdf",
               "scriptType":"SCRIPTING_TYPE_CONVO"
            }
         ],
         "repositories":[

         ],
         "folders":[

         ],
         "excels":[

         ],
         "dependencies":[

         ]
      }
   ],
   "testSessionLink":"http://127.0.0.1:4000/testsessions/view/ck0fg6d1y00g10691094ysw8g",
   "hostname":"my-host-ame"
}