JSON messages are categorized by type for processing. Tealeaf supports 13 JSON message types.
For details about the schemas and examples, go to JSON message type schemas and examples for UI Capture.
Message header properties
All messages contain message header properties consisting of two properties that contain the message type and the time that is offset from the start of the session in milliseconds. All time measurements in the JSON object schema are in milliseconds.
Message header properties schema
"offset": {
"title": "Milliseconds offset from start of stream",
"type": "integer",
"required": true
},"screenViewOffset": {
"title": "Milliseconds offset from start of ScreenView",
"type": "integer",
"required": true
},"count": {
"title": "The number of the message being sent",
"type": "integer",
"required": only used for UIC
},"fromWeb": {
"title": "Used to identify if it came from Web or Native application",
"type": "boolean",
"required": true
},"webviewId": {
"title": "Used to identify which webview it came from. This is only used
when fromWeb is true and it is a hybrid application ",
"type":"string",
"required": true only when fromWeb is true and it is a hybrid application
},"type": {
"title": "Message header type",
"type": [ {
"enum": [1],
description: "CLIENT_STATE"
},
"enum": [2],
description: "APPLICATION_CONTEXT"
}],
"enum": [3],
description: "CONNECTION"
},
"enum": [4],
description: "CONTROL"
},
"enum": [5],
description: "CUSTOM_EVENT"
}],
"enum": [6],
description: "EXCEPTION"
}],
"required": true
},
Message header properties example
The following example message header is taken from an exception message type.
{
"offset": 0,
"screenViewOffset": 4556,
"type": 6,
"exception": {
"description": "divide by zero",
"name": "class java.lang.ArithmeticException"
"stackTrace": "java.lang.ArithmeticException: divide by zero\n\tat
com.tl.uic.test.model.JSONTest.testException(JSONTest.java:391)\n\tat
java.lang.reflect.Method.invokeNative(Native Method)\n\tat
java.lang.reflect.Method.invoke(Method.java:507)\n\tat
android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204
)\n\tat
android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)\
n\tat
android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTe
stCase2.java:186)\n\tat
junit.framework.TestCase.runBare(TestCase.java:127)\n\tat
junit.framework.TestResult$1.protect(TestResult.java:106)\n\tat
junit.framework.TestResult.runProtected(TestResult.java:124)\n\tat
junit.framework.TestResult.run(TestResult.java:109)\n\tat
junit.framework.TestCase.run(TestCase.java:118)\n\tat
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)\n\tat
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)\n\tat
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:5
29)\n\tat
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448
)\n",
}
}