@Florian
I made SCRIPTING_ENABLE_MEMORY as true in the json and included $msg(JSON expression), but it is not printing the value. I modified the json and included different combinations, but still does not work.
Below is the verbose output.
MAC:spec user$ botium-cli run mochawesome --expandscriptingmemory true --config tenants/foo/botium.json --convos foo_specs/DW --reporter-options "reportDir=./reports,reportFilename=lav_1" --verbose
botium-cli Using Botium configuration file tenants/foo/botium.json +0ms
botium-cli-run command options: { _: [ 'run' ],
botium-cli-run expandscriptingmemory: 'true',
botium-cli-run config: 'tenants/foo/botium.json',
botium-cli-run c: 'tenants/foo/botium.json',
botium-cli-run convos: [ 'foo_specs/DW' ],
botium-cli-run C: [ 'foo_specs/DW' ],
botium-cli-run 'reporter-options': 'reportDir=./reports,reportFilename=lav_1',
botium-cli-run reporterOptions: 'reportDir=./reports,reportFilename=lav_1',
botium-cli-run verbose: true,
botium-cli-run v: true,
botium-cli-run output: 'mochawesome',
botium-cli-run testsuitename: 'Botium Test-Suite',
botium-cli-run n: 'Botium Test-Suite',
botium-cli-run expandutterances: false,
botium-cli-run timeout: 60,
botium-cli-run '$0': 'botium-cli' } +0ms
botium-cli-run Mocha Reporter "mochawesome", options: { reportDir: './reports', reportFilename: 'lav_1' } +1ms
botium-core-BotDriver Loaded Botium configuration files /Users/user/botium/DL/foo1/spec/botium.json,/Users/user/botium/DL/foo1/spec/tenants/foo/botium.json +0ms
botium-core-ScriptingProvider ReadConvosFromDirectory(foo_specs/DW) found filenames: learn_about_foo_1.convo.txt,p.pconvo.txt +0ms
botium-core-ScriptingProvider ReadConvosFromDirectory(foo_specs/DW) found convos:
botium-core-ScriptingProvider 1 learn_about_foo_1.convo.txt ({ convoDir: 'foo_specs/DW',
botium-core-ScriptingProvider filename: 'learn_about_foo_1.convo.txt' }): Line 1: #bot - TEXT1 BUTTONS(I Agree,Decline) | Line 5: #me - I Agree
botium-core-ScriptingProvider $msg($.activities.conversation.id) +5ms
botium-core-ScriptingProvider ReadConvosFromDirectory(foo_specs/DW) found utterances:
botium-core-ScriptingProvider none +0ms
botium-core-ScriptingProvider ReadConvosFromDirectory(foo_specs/DW) found partial convos:
botium-core-ScriptingProvider undefined AGREE_LOGIN ({ convoDir: 'foo_specs/DW', filename: 'p.pconvo.txt' }): Line 3: #bot - TEXT1 BUTTONS(I Agree,Decline) | Line 7: #me - I Agree +0ms
botium-core-ScriptingProvider ReadConvosFromDirectory(foo_specs/DW) scripting memories:
botium-core-ScriptingProvider none +0ms
botium-cli-run ready reading convos (1), expanding convos ... +1s
botium-cli-run expanding scripting memory ... +0ms
botium-core-ScriptingProvider ExpandScriptingMemoryToConvos - Convo "learn_about_foo_1.convo.txt" - Variables to replace, all: "[ '$msg' ]" +2ms
botium-core-ScriptingProvider ExpandScriptingMemoryToConvos - Convo "learn_about_foo_1.convo.txt" - Expanding convo "learn_about_foo_1.convo.txt" Expanded 0 convo. (Details: 0 = ) +0ms
botium-core-ScriptingProvider ExpandScriptingMemoryToConvos - Deleting 0 original convo +0ms
botium-core-ScriptingProvider ExpandScriptingMemoryToConvos - 0 convo expanded, added to convos (1). Result 1 convo +0ms
botium-core-ScriptingProvider ExpandConvos - Using utterances expansion mode: all +0ms
botium-cli-run ready expanding convos and utterances, number of test cases: (1). +18ms
botium-cli-run adding test case learn_about_foo_1.convo.txt (from: { convoDir: 'foo_specs/DW',
botium-cli-run filename: 'learn_about_foo_1.convo.txt' }) +46ms
Botium Test-Suite
botium-core-BotDriver Build - Botium Core Version: 1.11.2 +1s
botium-core-BotDriver Build - Capabilites: { PROJECTNAME: 'My Botium Project',
botium-core-BotDriver TESTSESSIONNAME: 'Botium Test Session',
botium-core-BotDriver TESTCASENAME: 'Botium Test Case',
botium-core-BotDriver TEMPDIR: 'botiumwork',
botium-core-BotDriver CLEANUPTEMPDIR: true,
botium-core-BotDriver WAITFORBOTTIMEOUT: 10000,
botium-core-BotDriver SIMULATE_WRITING_SPEED: false,
botium-core-BotDriver SIMPLEREST_PING_RETRIES: 6,
botium-core-BotDriver SIMPLEREST_PING_TIMEOUT: 10000,
botium-core-BotDriver SIMPLEREST_PING_VERB: 'GET',
botium-core-BotDriver SIMPLEREST_PING_UPDATE_CONTEXT: true,
botium-core-BotDriver SIMPLEREST_STOP_RETRIES: 6,
botium-core-BotDriver SIMPLEREST_STOP_TIMEOUT: 10000,
botium-core-BotDriver SIMPLEREST_STOP_VERB: 'GET',
botium-core-BotDriver SIMPLEREST_START_RETRIES: 6,
botium-core-BotDriver SIMPLEREST_START_TIMEOUT: 10000,
botium-core-BotDriver SIMPLEREST_START_VERB: 'GET',
botium-core-BotDriver SIMPLEREST_POLL_VERB: 'GET',
botium-core-BotDriver SIMPLEREST_POLL_INTERVAL: 1000,
botium-core-BotDriver SIMPLEREST_POLL_UPDATE_CONTEXT: true,
botium-core-BotDriver SIMPLEREST_METHOD: 'GET',
botium-core-BotDriver SIMPLEREST_IGNORE_EMPTY: true,
botium-core-BotDriver SIMPLEREST_TIMEOUT: 10000,
botium-core-BotDriver SIMPLEREST_EXTRA_OPTIONS: {},
botium-core-BotDriver SIMPLEREST_STRICT_SSL: true,
botium-core-BotDriver SIMPLEREST_INBOUND_UPDATE_CONTEXT: true,
botium-core-BotDriver SIMPLEREST_CONTEXT_MERGE_OR_REPLACE: 'MERGE',
botium-core-BotDriver SCRIPTING_TXT_EOL: '\n',
botium-core-BotDriver SCRIPTING_XLSX_EOL_WRITE: '\r\n',
botium-core-BotDriver SCRIPTING_XLSX_HASHEADERS: true,
botium-core-BotDriver SCRIPTING_CSV_SKIP_HEADER: true,
botium-core-BotDriver SCRIPTING_CSV_QUOTE: '"',
botium-core-BotDriver SCRIPTING_CSV_ESCAPE: '"',
botium-core-BotDriver SCRIPTING_NORMALIZE_TEXT: true,
botium-core-BotDriver SCRIPTING_ENABLE_MEMORY: true,
botium-core-BotDriver SCRIPTING_ENABLE_MULTIPLE_ASSERT_ERRORS: false,
botium-core-BotDriver SCRIPTING_MATCHING_MODE: 'include',
botium-core-BotDriver SCRIPTING_UTTEXPANSION_MODE: 'all',
botium-core-BotDriver SCRIPTING_UTTEXPANSION_RANDOM_COUNT: 1,
botium-core-BotDriver SCRIPTING_UTTEXPANSION_NAMING_MODE: 'justLineTag',
botium-core-BotDriver SCRIPTING_UTTEXPANSION_NAMING_UTTERANCE_MAX: '16',
botium-core-BotDriver SCRIPTING_MEMORYEXPANSION_KEEP_ORIG: false,
botium-core-BotDriver ASSERTERS: [ { ref: 'HASLINK', src: 'botium-asserter-basiclink' } ],
botium-core-BotDriver LOGIC_HOOKS: [],
botium-core-BotDriver USER_INPUTS: [],
botium-core-BotDriver SECURITY_ALLOW_UNSAFE: true,
botium-core-BotDriver CONTAINERMODE: 'directline3',
botium-core-BotDriver DIRECTLINE3_SECRET: '####',
botium-core-BotDriver DIRECTLINE3_DOMAIN: 'https://directline.botframework.com/v3/directline',
botium-core-BotDriver DIRECTLINE3_WEBSOCKET: true,
botium-core-BotDriver DIRECTLINE3_POLLINGINTERVAL: 1000,
botium-core-BotDriver DIRECTLINE3_WELCOME_ACTIVITY:
botium-core-BotDriver { type: 'invoke',
botium-core-BotDriver name: 'TScenario',
botium-core-BotDriver value: { trigger: 'Entrypoint', args: [Object] } },
botium-core-BotDriver DIRECTLINE3_HANDLE_ACTIVITY_TYPES: 'message',
botium-core-BotDriver CONFIG: 'tenants/foo/botium.json' } +0ms
botium-core-BotDriver Build - Sources : { LOCALPATH: '.',
botium-core-BotDriver GITPATH: 'git',
botium-core-BotDriver GITBRANCH: 'master',
botium-core-BotDriver GITDIR: '.' } +1ms
botium-core-BotDriver Build - Envs : { IS_BOTIUM_CONTAINER: true } +0ms
botium-connector-PluginConnectorContainer-helper Botium plugin botium-connector-directline3 loaded. Plugin version is 0.0.26 +0ms
botium-connector-directline3 Validate called +0ms
botium-connector-directline3 Build called +3ms
botium-connector-directline3 Start called +2ms
botium-connector-directline3 Directline Connection Status: 1 / Connecting +11ms
botium-connector-directline3 UserSays called +1ms
botium-connector-directline3 Posting activity {
"type": "invoke",
"name": "TScenario",
"value": {
"trigger": "Entrypoint",
"args": {
"brand": "example",
"customScheme": "https",
"tenantName": "foo"
}
},
"from": {
"id": "me"
}
} +0ms
postActivity { type: 'invoke',
name: 'TScenario',
value:
{ trigger: 'Entrypoint',
args:
{ brand: 'example',
customScheme: 'https',
tenantName: 'foo' } },
from: { id: 'me' } }
creating WebSocket path
botium-connector-directline3 Directline Connection Status: 2 / Online +587ms
botium-cli-run running testcase learn_about_foo_1.convo.txt +798ms
botium-core-Convo learn_about_foo_1.convo.txt wait for bot +0ms
WebSocket open OpenEvent {
target:
WebSocket {
_events: { open: [Function], close: [Function], message: [Function] },
_eventsCount: 3,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_closeCode: 1006,
_closeFrameReceived: false,
_closeFrameSent: false,
_closeMessage: '',
_closeTimer: null,
_extensions: {},
_protocol: '',
_readyState: 1,
_receiver:
Receiver {
_writableState: [WritableState],
writable: true,
_events: [Object],
_eventsCount: 6,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_extensions: {},
_isServer: false,
_maxPayload: 104857600,
_bufferedBytes: 0,
_buffers: [],
_compressed: false,
_payloadLength: 0,
_mask: undefined,
_fragmented: 0,
_masked: false,
_fin: false,
_opcode: 0,
_totalPayloadLength: 0,
_messageLength: 0,
_fragments: [],
_state: 0,
_loop: false,
[Symbol(websocket)]: [Circular] },
_sender:
Sender {
_extensions: {},
_socket: [TLSSocket],
_firstFragment: true,
_compress: false,
_bufferedBytes: 0,
_deflating: false,
_queue: [] },
_socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'directline.botframework.com',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 5,
connecting: false,
_hadError: false,
_handle: [TLSWrap],
_parent: null,
_host: 'directline.botframework.com',
_readableState: [ReadableState],
readable: true,
_maxListeners: undefined,
_writableState: [WritableState],
writable: true,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: null,
timeout: 0,
[Symbol(res)]: [TLSWrap],
[Symbol(asyncId)]: 90,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object],
[Symbol(websocket)]: [Circular] },
_bufferedAmount: 0,
_isServer: false,
_redirects: 0,
_url:
'path',
_req: null },
type: 'open' }
botium-connector-directline3 Posted activity, assigned ID: 5PnbcyP0G684ANkWjtqE1f-o|0000000 +607ms
botium-connector-directline3 received message {
"type": "message",
"id": "5PnbcyP0G684ANkWjtqE1f-o|0000002",
"timestamp": "2021-05-03T18:28:13.0188239Z",
"serviceUrl": "https://directline.botframework.com/",
"channelId": "directline",
"from": {
"id": "HybridBotStage@PNoEIQIc82Q",
"name": "HybridBotStage"
},
"conversation": {
"id": "5PnbcyP0G684ANkWjtqE1f-o"
},
"recipient": {
"id": "HybridBotStage@PNoEIQIc82Q",
"name": "HybridBotStage"
},
"text": "TEXT1",
"speak": "TEXT1\nSelect one of the following options: \n1. I Agree<break/>2. Decline<break/>",
"inputHint": "expectingInput",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.hero",
"content": {
"buttons": [
{
"title": "I Agree",
"type": "imBack",
"value": "I Agree"
},
{
"title": "Decline",
"type": "imBack",
"value": "Decline"
}
]
}
}
]
} +1s
botium-core-Convo learn_about_foo_1.convo.txt: bot says (cleaned by binary and base64 data and sourceData) {
botium-core-Convo "sender": "bot",
botium-core-Convo "media": [],
botium-core-Convo "buttons": [],
botium-core-Convo "cards": [
botium-core-Convo {
botium-core-Convo "buttons": [
botium-core-Convo {
botium-core-Convo "text": "I Agree",
botium-core-Convo "payload": "I Agree"
botium-core-Convo },
botium-core-Convo {
botium-core-Convo "text": "Decline",
botium-core-Convo "payload": "Decline"
botium-core-Convo }
botium-core-Convo ],
botium-core-Convo "sourceData": {
botium-core-Convo "contentType": "application/vnd.microsoft.card.hero",
botium-core-Convo "content": {
botium-core-Convo "buttons": [
botium-core-Convo {
botium-core-Convo "title": "I Agree",
botium-core-Convo "type": "imBack",
botium-core-Convo "value": "I Agree"
botium-core-Convo },
botium-core-Convo {
botium-core-Convo "title": "Decline",
botium-core-Convo "type": "imBack",
botium-core-Convo "value": "Decline"
botium-core-Convo }
botium-core-Convo ]
botium-core-Convo }
botium-core-Convo }
botium-core-Convo }
botium-core-Convo ],
botium-core-Convo "forms": [],
botium-core-Convo "messageText": "TEXT1",
botium-core-Convo "channel": "default"
botium-core-Convo } +2s
botium-core-ScriptingMemory fill start: {} +0ms
botium-core-ScriptingMemory fill end: {} +1ms
botium-core-ScriptingProvider assertBotResponse learn_about_foo_1.convo.txt/Line 1 BOT: TEXT1 = TEXT1 ... +3s
botium-core-Convo learn_about_foo_1.convo.txt/Line 5: user says (cleaned by binary and base64 data and sourceData) {
botium-core-Convo "sender": "me",
botium-core-Convo "channel": null,
botium-core-Convo "not": false,
botium-core-Convo "optional": false,
botium-core-Convo "messageText": "I Agree\n",
botium-core-Convo "media": null,
botium-core-Convo "buttons": null,
botium-core-Convo "cards": null,
botium-core-Convo "forms": null,
botium-core-Convo "attachments": null,
botium-core-Convo "asserters": [],
botium-core-Convo "userInputs": [],
botium-core-Convo "logicHooks": []
botium-core-Convo } +10ms
botium-connector-directline3 UserSays called +15ms
botium-connector-directline3 Posting activity {
"type": "message",
"text": "I Agree\n",
"from": {
"id": "me"
}
} +1ms
postActivity { type: 'message', text: 'I Agree\n', from: { id: 'me' } }
botium-connector-directline3 Posted activity, assigned ID: 5PnbcyP0G684ANkWjtqE1f-o|0000003 +631ms
botium-cli-run learn_about_foo_1.convo.txt ready, calling done function. +2s
✓ learn_about_foo_1.convo.txt (2418ms)
botium-connector-directline3 Stop called +4ms
botium-connector-directline3 unsubscribed from directline activity subscription +1ms
botium-connector-directline3 unsubscribing from directline connectionstatus subscription +0ms
botium-connector-directline3 ending directline connection +0ms
botium-connector-directline3 Clean called +1ms
botium-connector-BaseContainer Cleanup rimrafing temp dir /Users/user/botium/DL/foo1/spec/botiumwork/My Botium Project 20210503 112810 oedId +0ms
1 passing (3s)
[mochawesome] Report JSON saved to /Users/user/botium/DL/foo1/spec/reports/lav_1.json
[mochawesome] Report HTML saved to /Users/user/botium/DL/foo1/spec/reports/lav_1.html
WebSocket close CloseEvent {
target:
WebSocket {
_events: { open: [Function], close: [Function], message: [Function] },
_eventsCount: 3,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_closeCode: 1006,
_closeFrameReceived: false,
_closeFrameSent: true,
_closeMessage: '',
_closeTimer:
Timeout {
_called: false,
_idleTimeout: -1,
_idlePrev: null,
_idleNext: null,
_idleStart: 4953,
_onTimeout: null,
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(unrefed)]: false,
[Symbol(asyncId)]: 206,
[Symbol(triggerId)]: 0 },
_extensions: {},
_protocol: '',
_readyState: 3,
_receiver:
Receiver {
_writableState: [WritableState],
writable: false,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_extensions: {},
_isServer: false,
_maxPayload: 104857600,
_bufferedBytes: 0,
_buffers: [],
_compressed: false,
_payloadLength: 526,
_mask: undefined,
_fragmented: 0,
_masked: false,
_fin: true,
_opcode: 1,
_totalPayloadLength: 0,
_messageLength: 0,
_fragments: [],
_state: 0,
_loop: false,
[Symbol(websocket)]: [Circular] },
_sender:
Sender {
_extensions: {},
_socket: [TLSSocket],
_firstFragment: true,
_compress: false,
_bufferedBytes: 0,
_deflating: false,
_queue: [] },
_socket:
TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
_SNICallback: null,
servername: 'directline.botframework.com',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object],
_eventsCount: 4,
connecting: false,
_hadError: false,
_handle: null,
_parent: null,
_host: 'directline.botframework.com',
_readableState: [ReadableState],
readable: false,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: null,
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: null,
timeout: 0,
write: [Function: writeAfterFIN],
[Symbol(res)]: null,
[Symbol(asyncId)]: 90,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBytesRead)]: 4689,
[Symbol(kBytesWritten)]: 1142,
[Symbol(connect-options)]: [Object],
[Symbol(websocket)]: undefined },
_bufferedAmount: 0,
_isServer: false,
_redirects: 0,
_url:
'path',
_req: null },
type: 'close',
wasClean: false,
reason: '',
code: 1006 }
MAC:spec user$