Functionize Object Model Overview
Functionize Extensions expect an HTTPS POST request with a JSON payload as the function input:
{
"orchestrationRunId": "",
"testId": "903915",
"TDMdataSetId": "",
"orchestrationId": "0",
"step": {...},
"previousSteps": [...],
"variables": {
"project": {},
"local": {}
}
}
At the top level, the data structure includes information on the test case ID, orchestration IDs, and TDM data set. In addition, the Extension object will have:
- Step object
- Action object
- Output object
Step Object
The step object is a complex JSON containing all information about the current step, its user flags, and an arrow of the previous step objects:
"step": {
"path": "",
"optional": false,
"action": {...},
"output": {...}
}
Action Object
The action object contains information about the action as defined in the test case, for example: element type, action type, various action attributes, and detailed data on the action:
"action": {
"fileName": "Vistex_POS Golden Data_JK_MassValidations.csv",
"fileUrl": "https://functionize.storage.googleapis.com/test-903915%2Fdownloads%2F9828f2c72200b4ae538b2ea8f1ecc94dvistexpos.csv?Expires=1668486746&GoogleAccessId=functionizesign%40wise-arch-107501.iam.gserviceaccount.com&Signature=ED3WfsZglia%2FpU5pE4UKc%2Fkod1B%2BCHqNQJU%2BEKrXMRAnjdOOQdDjOdbzBbwkBDxZEFqEzfsLyBTJJDFG1PJhUCZsrVGSE3bi%2BDFdOwXAHhFE%2ByJmFOcvON8JL6PpsJMUt3FTNpku%2FeHLkZmDThWWeNvNkUjQuXcdN9fzW4VpBhWBuUcP0LbJzSx2rmIJCjdzla%2F%2FfcNMcsvoGCbrCFJOkbSIOix7LNDmt1Y4vdCOu8HRAfUbhCXTCG7uT3we5C%2Fr%2Fah%2BmAbO8ltgUCz8C5mXsSBL1Q5as0aBMFRItgKgijJIakAX%2BAmIA7e5r1G%2BqDTmjmeVBrNpC7LOsnn5Ioz1iQ==",
"id": "1668018653699_DVHVBC3OB0",
"type": "UPLOAD",
"fileData": "MjEyMjIzfEdvbGRlbiBEYXRhX0pLX01hc3N8MXwyfHxTRHx8RUEyNDFGLUJLfHx8fHx8fHx8f…"
}
Output Object
Functionize provides an output object for the results of the test step, including outcome information, screenshots, and data on the element interacted with in the step:
"output": {
"foundUrl": "https://www.functionizeapp.com/tools/fileviewer",
"result": null,
"baseFileName": "6_chrome_new_1668018653699_DVHVBC3OB0",
"displayScreenshotPath": "",
"verificationResults": [],
"postScreenshot": {
"dimensions": null,
"phash": null,
"filename": "",
"localPath": "",
"windowState": null,
"offset": null,
"cloudPath": ""
},
"elementResult": {
"selectionReason": "",
"selectionType": "NONE",
"unusedElements": [],
"selectedElement": null,
"failedSelection": false,
"reusedElementResult": false,
"warnings": []
},
"preScreenshot": {
"phash": null,
"dimensions": null,
"windowState": null,
"localPath": "",
"filename": "",
"filename": "",
"offset": null,
"cloudPath": ""
}
}
Example input JSON:
{
"orchestrationRunId": "",
"testId": "903915",
"TDMdataSetId": "",
"orchestrationId": "0"
"step": {
"path": "",
"optional": false,
"action": {
"fileName": "Vistex_POS Golden Data_JK_MassValidations.csv",
"fileUrl": "https://functionize.storage.googleapis.com/test-903915%2Fdownloads%2F9828f2c72200b4ae538b2ea8f1ecc94dvistexpos.csv?Expires=1668486746&GoogleAccessId=functionizesign%40wise-arch-107501.iam.gserviceaccount.com&Signature=ED3WfsZglia%2FpU5pE4UKc%2Fkod1B%2BCHqNQJU%2BEKrXMRAnjdOOQdDjOdbzBbwkBDxZEFqEzfsLyBTJJDFG1PJhUCZsrVGSE3bi%2BDFdOwXAHhFE%2ByJmFOcvON8JL6PpsJMUt3FTNpku%2FeHLkZmDThWWeNvNkUjQuXcdN9fzW4VpBhWBuUcP0LbJzSx2rmIJCjdzla%2F%2FfcNMcsvoGCbrCFJOkbSIOix7LNDmt1Y4vdCOu8HRAfUbhCXTCG7uT3we5C%2Fr%2Fah%2BmAbO8ltgUCz8C5mXsSBL1Q5as0aBMFRItgKgijJIakAX%2BAmIA7e5r1G%2BqDTmjmeVBrNpC7LOsnn5Ioz1iQ==",
"id": "1668018653699_DVHVBC3OB0",
"type": "UPLOAD",
"fileData": "MjEyMjIzfEdvbGRlbiBEYXRhX0pLX01hc3N8MXwyfHxTRHx8RUEyNDFGLUJLfHx8fHx8fHx8fHwyMHx8fHx8RGl2ZXJzaWZpZWQgTWVkaWEgR3JvdXB8fDM4NSBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xOSnxVU3x8fHxEaXZlcnNpZmllZCBNZWRpYSBHcm91cHx8Mzg1IE1BUktFVCBTVHx8fHx8S0VOSUxXT1JUSHw3MDMzfE5KfFVTDQoyMTIyMjN8R29sZGVuIERhdGFfSktfTWFzc3wxfDJ8MjAyMTAxMDF8U0R8fEVBMjQxRi1CS3x8fHwyMDIxMDEwMXwyMDIxMDEwMXx8fHx8fDIwfDMyfHx8fHx8Mzg1IE1BUktFVCBTVHx8fHx8S0VOSUxXT1JUSHw3MDMzfE5KfHx8fHx8fDM4NSBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xOSnwNCjIxMjIyM3xHb2xkZW4gRGF0YV9KS19NYXNzfDF8MnwyMDIxMDEwMXxTRHx8RUEyNDFGLUJLfHx8fDIwMjEwMTAxfDIwMjEwMTAxfHx8fHx8MjB8MzJ8fHx8RGl2ZXJzaWZpZWQgTWVkaWEgR3JvdXB8fDM4NSBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xaWnxVU3x8fHxEaXZlcnNpZmllZCBNZWRpYSBHcm91cHx8Mzg1IE1BUktFVCBTVHx8fHx8S0VOSUxXT1JUSHw3MDMzfFpafFVTDQoyMTIyMjN8R29sZGVuIERhdGFfSktfTWFzc3wxfDJ8MjAyMTAxMDF8U0R8fEludmFsaWRfUHJvZHVjdHx8fHwyMDIxMDEwMXwyMDIxMDEwMXx8fHx8fDIwfDMyfHx8fERpdmVyc2lmaWVkIE1lZGlhIEdyb3VwfHwzODUgTUFSS0VUIFNUfHx8fHxLRU5JTFdPUlRIfDcwMzN8Tkp8Wlp8fHx8RGl2ZXJzaWZpZWQgTWVkaWEgR3JvdXB8fDM4NSBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xOSnxaWg0KMjEyMjIzfEdvbGRlbiBEYXRhX0pLX01hc3N8MXwyfDIwMjEwMTAxfFNEfHxFQTI0MUYtQkt8fHx8MjAyMTAxMDF8MjAyMTAxMDF8fHx8fHwyMHwzMnx8fHxHb2xkZW5fSW52YWxpZHx8WFggSW52YWxpZCBBdmVudWV8fHx8fERhbGxhc3w3NTI0OXxUWHxVU3x8fHxHb2xkZW5fSW52YWxpZHx8WFggSW52YWxpZCBBdmVudWV8fHx8fERhbGxhc3w3NTI0OXxUWHxVUw0KMjEyMjIzfEdvbGRlbiBEYXRhX0pLX01hc3N8MXwyfDIwMjEwMTAxfFNEfHxFQTI0MUYtQkt8fHx8MjAyMTAxMDF8MjAyMTAxMDF8fHx8fHwyMHwzMnx8fHxEaXZlcnNpZmllZCBNZWRpYSBHcm91cHx8MyBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xOSnxVU3x8fHxEaXZlcnNpZmllZCBNZWRpYSBHcm91cHx8Mzg1IE1BUktFVCBTVHx8fHx8S0VOSUxXT1JUSHx8fFVTDQoyMTIyMjN8R29sZGVuIERhdGFfSktfTWFzc3wxfDJ8MjAyMTAxMDF8U0R8fEVBMjQxRi1CS3x8fHwyMDIxMDEwMXwyMDIxMDEwMXx8fHx8fDIwfDMyfHx8fERpdmVyc2lmaWVkIE1lZGlhIEdyb3VwfHwzODUgTUFSS0VUIFNUfHx8fHxLRU5JTFdPUlRIfDcwMzN8Tkp8VVN8fHx8RGl2ZXJzaWZpZWQgTWVkaWEgR3JvdXB8fDM4NSBNQVJLRVQgU1R8fHx8fHw3MDMzfE5KfFVTDQoyMTIyMjN8R29sZGVuIERhdGFfSktfTWFzc3wxfDJ8MjAyMTAxMDF8U0R8fEUzMjgtUnx8fHwyMDIxMDEwMXwyMDIxMDEwMXx8fHx8fDIwfDMyfHx8fERpdmVyc2lmaWVkIE1lZGlhIEdyb3VwfHwzODUgTUFSS0VUIFNUfHx8fHxLRU5JTFdPUlRIfDcwMzN8Tkp8VVN8fHx8RGl2ZXJzaWZpZWQgTWVkaWEgR3JvdXB8fDM4NSBNQVJLRVQgU1R8fHx8fEtFTklMV09SVEh8NzAzM3xOSnxVUw0KMjEyMjIzfEdvbGRlbiBEYXRhX0pLX01hc3N8MXwyfDIwMjEwMTAxfFNEfHxFQTI0MUYtQkt8fHx8MjAyMTAxMDF8MjAyMTAxMDF8fHx8fHwyMHwzMnx8fHxEaXZlcnNpZmllZCBNZWRpYSBHcm91cHx8fHx8fHx8fE5KfFVTfHx8fERpdmVyc2lmaWVkIE1lZGlhIEdyb3VwfHwzODUgTUFSS0VUIFNUfHx8fHxLRU5JTFdPUlRIfDcwMzN8Tkp8VVMNCg=="
},
"output": {
"foundUrl": "https://www.functionizeapp.com/tools/fileviewer",
"result": null,
"baseFileName": "6_chrome_new_1668018653699_DVHVBC3OB0",
"displayScreenshotPath": "",
"verificationResults": [],
"postScreenshot": {
"dimensions": null,
"phash": null,
"filename": "",
"localPath": "",
"windowState": null,
"offset": null,
"cloudPath": ""
},
"elementResult": {
"selectionReason": "",
"selectionType": "NONE",
"unusedElements": [],
"selectedElement": null,
"failedSelection": false,
"reusedElementResult": false,
"warnings": []
},
"preScreenshot": {
"phash": null,
"dimensions": null,
"windowState": null,
"localPath": "",
"filename": "",
"offset": null,
"cloudPath": ""
}
}
},
"variables": {
"project": {},
"local": {
"pageTitle": "Functionize"
}
},
"previousSteps": [
{
"path": "",
"output": {
"result": {
"resultCode": "PASS",
"executorResults": [
{
"successful": true,
"threshold": 0,
"confidenceScore": 100,
"executionMethodName": "pageinitMethod",
"evaluatorResults": [
{
"evaluatorName": "empty",
"score": 100
}
],
"totalEvals": 1
}
],
"results": [
{
"result": "SUCCESS",
"message": ""
}
],
"pageLoad": null,
"actionMessages": []
},
"baseFileName": "1_chrome_new_1668018629135_67G6E23YJG",
"preScreenshot": {
"dimensions": {
"width": 1723,
"height": 960
},
"windowState": [
{
"viewportHeight": 876,
"x": 3,
"type": "MAIN",
"lastUpdated": 0,
"scrollTop": 0,
"id": "mainWindow",
"scrollLeft": 0,
"y": 80,
"viewportWidth": 1715,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69"
}
],
"localPath": "/functionize/runtime/test_sessions/screenshots/1_chrome_new_1668018629135_67G6E23YJG_pre.png",
"filename": "1_chrome_new_1668018629135_67G6E23YJG_pre.png",
"cloudPath": "",
"offset": null,
"phash": null
},
"verificationResults": [],
"displayScreenshotPath": "/functionize/runtime/test_sessions/screenshots/1_chrome_new_1668018629135_67G6E23YJG_post.jpg",
"foundUrl": "https://www.google.com/",
"postScreenshot": {
"filename": "1_chrome_new_1668018629135_67G6E23YJG_post.jpg",
"offset": null,
"dimensions": {
"height": 960,
"width": 1723
},
"cloudPath": "",
"phash": null,
"windowState": [
{
"scrollTop": 0,
"scrollLeft": 0,
"viewportWidth": 1715,
"x": 3,
"lastUpdated": 0,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"y": 80,
"id": "mainWindow",
"viewportHeight": 876,
"type": "MAIN"
}
],
"localPath": "/functionize/runtime/test_sessions/screenshots/1_chrome_new_1668018629135_67G6E23YJG_post.jpg"
},
"elementResult": {
"selectedElement": null,
"selectionType": "NONE",
"warnings": [],
"reusedElementResult": false,
"unusedElements": [],
"selectionReason": "",
"failedSelection": false
}
},
"optional": false,
"action": {
"type": "PAGE_INIT",
"pageTitle": "",
"url": "https://www.google.com/",
"id": "1668018629135_67G6E23YJG"
}
},
{
"path": "",
"optional": false,
"action": {
"target": "FILE_VIEWER",
"id": "1668018638646_AFLQITFAGG",
"type": "FILE_VIEWER",
"newPopup": ""
},
"output": {
"displayScreenshotPath": "/functionize/runtime/test_sessions/screenshots/2_chrome_new_1668018638646_AFLQITFAGG_post.jpg",
"preScreenshot": {
"offset": null,
"localPath": "/functionize/runtime/test_sessions/screenshots/2_chrome_new_1668018638646_AFLQITFAGG_pre.png",
"filename": "2_chrome_new_1668018638646_AFLQITFAGG_pre.png",
"phash": null,
"windowState": [
{
"scrollTop": 0,
"viewportHeight": 876,
"type": "MAIN",
"viewportWidth": 1715,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"x": 3,
"lastUpdated": 0,
"id": "mainWindow",
"y": 80,
"scrollLeft": 0
}
],
"dimensions": {
"width": 1723,
"height": 960
},
"cloudPath": ""
},
"baseFileName": "2_chrome_new_1668018638646_AFLQITFAGG",
"elementResult": {
"warnings": [],
"selectionReason": "",
"unusedElements": [],
"failedSelection": false,
"selectionType": "NONE",
"reusedElementResult": false,
"selectedElement": null
},
"foundUrl": "https://www.google.com/",
"postScreenshot": {
"windowState": [
{
"viewportHeight": 876,
"id": "mainWindow",
"lastUpdated": 0,
"viewportWidth": 1715,
"x": 3,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"y": 80,
"scrollTop": 0,
"scrollLeft": 0,
"type": "MAIN"
}
],
"localPath": "/functionize/runtime/test_sessions/screenshots/2_chrome_new_1668018638646_AFLQITFAGG_post.jpg",
"dimensions": {
"width": 1723,
"height": 960
},
"phash": null,
"offset": null,
"filename": "2_chrome_new_1668018638646_AFLQITFAGG_post.jpg",
"cloudPath": ""
},
"verificationResults": [],
"result": {
"results": [
{
"result": "SUCCESS",
"message": ""
}
],
"actionMessages": [],
"pageLoad": null,
"executorResults": [
{
"totalEvals": 1,
"executionMethodName": "fileViewerExecution",
"successful": true,
"confidenceScore": 100,
"evaluatorResults": [
{
"score": 100,
"evaluatorName": "empty"
}
],
"threshold": 0
}
],
"resultCode": "PASS"
}
}
},
{
"path": "",
"action": {
"pageTitle": "",
"type": "PAGE_INIT",
"id": "1668018639466_11HEV2KTFE",
"url": "https://www.functionizeapp.com/tools/fileviewer"
},
"optional": false,
"output": {
"baseFileName": "3_chrome_new_1668018639466_11HEV2KTFE",
"verificationResults": [],
"postScreenshot": {
"localPath": "/functionize/runtime/test_sessions/screenshots/3_chrome_new_1668018639466_11HEV2KTFE_post.jpg",
"offset": null,
"dimensions": {
"width": 1723,
"height": 960
},
"cloudPath": "",
"filename": "3_chrome_new_1668018639466_11HEV2KTFE_post.jpg",
"phash": null,
"windowState": [
{
"viewportHeight": 876,
"x": 3,
"id": "mainWindow",
"type": "MAIN",
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"y": 80,
"viewportWidth": 1715,
"lastUpdated": 0,
"scrollTop": 0,
"scrollLeft": 0
}
]
},
"displayScreenshotPath": "/functionize/runtime/test_sessions/screenshots/3_chrome_new_1668018639466_11HEV2KTFE_post.jpg",
"elementResult": {
"reusedElementResult": false,
"failedSelection": false,
"warnings": [],
"unusedElements": [],
"selectionReason": "",
"selectionType": "NONE",
"selectedElement": null
},
"foundUrl": "https://www.functionizeapp.com/tools/fileviewer",
"preScreenshot": {
"cloudPath": "",
"phash": null,
"offset": null,
"windowState": [
{
"lastUpdated": 0,
"y": 80,
"scrollLeft": 0,
"viewportWidth": 1715,
"id": "mainWindow",
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"x": 3,
"viewportHeight": 876,
"scrollTop": 0,
"type": "MAIN"
}
],
"localPath": "/functionize/runtime/test_sessions/screenshots/3_chrome_new_1668018639466_11HEV2KTFE_pre.png",
"dimensions": {
"width": 1723,
"height": 960
},
"filename": "3_chrome_new_1668018639466_11HEV2KTFE_pre.png"
},
"result": {
"results": [
{
"message": "",
"result": "SUCCESS"
}
],
"actionMessages": [],
"resultCode": "PASS",
"pageLoad": null,
"executorResults": [
{
"confidenceScore": 100,
"successful": true,
"evaluatorResults": [
{
"evaluatorName": "empty",
"score": 100
}
],
"totalEvals": 1,
"threshold": 0,
"executionMethodName": "pageinitMethod"
}
]
}
}
},
{
"action": {
"eventX": 223,
"mouseY": 9,
"onClickAttr": "",
"type": "CLICK",
"id": "1668018646491_8MO0026561",
"newPopup": "",
"attributeType": "file",
"failOnInvisible": false,
"mouseX": 35,
"eventY": 320
},
"optional": false,
"path": "",
"output": {
"verificationResults": [],
"foundUrl": "https://www.functionizeapp.com/tools/fileviewer",
"displayScreenshotPath": "/functionize/runtime/test_sessions/screenshots/4_chrome_new_1668018646491_8MO0026561_pre.png",
"baseFileName": "4_chrome_new_1668018646491_8MO0026561",
"result": {
"executorResults": [
{
"successful": true,
"executionMethodName": "nativeActionByPaint",
"totalEvals": 0,
"evaluatorResults": [],
"threshold": 0,
"confidenceScore": 0
}
],
"results": [
{
"message": "",
"result": "SUCCESS"
}
],
"pageLoad": null,
"resultCode": "PASS",
"actionMessages": []
},
"preScreenshot": {
"dimensions": {
"width": 1723,
"height": 960
},
"localPath": "/functionize/runtime/test_sessions/screenshots/4_chrome_new_1668018646491_8MO0026561_pre.png",
"filename": "4_chrome_new_1668018646491_8MO0026561_pre.png",
"offset": {
"y": 81,
"x": 5
},
"phash": null,
"windowState": [
{
"viewportHeight": 876,
"viewportWidth": 1715,
"lastUpdated": 0,
"id": "mainWindow",
"y": 80,
"scrollTop": 0,
"type": "MAIN",
"x": 3,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"scrollLeft": 0
}
],
"cloudPath": ""
},
"elementResult": {
"warnings": [],
"reusedElementResult": false,
"selectedElement": {
"selectors": [],
"mlId": "147",
"matchScore": 0,
"location": {
"x": 185,
"y": 310
},
"attributes": {
"children": [
{},
{},
{},
{},
{}
],
"attributes": {
"nodetype": "1",
"opacity": "1",
"text": "",
"display": "block",
"right": "0.0",
"visibility": "visible",
"color": "rgb(103, 103, 103)",
"width": "277.0",
"type": "file",
"element": "INPUT",
"top": "310.78125",
"zi": "auto",
"left": "185.82812",
"backendnodeid": "89",
"pv": "1",
"height": "22.0",
"id": "viewserFile",
"position": "static",
"backgroundcolor": "rgba(0, 0, 0, 0)",
"name": "viewserFile"
},
"parents": [
{},
{},
{},
{},
{}
]
},
"desktopRelativePosition": {
"point": {
"y": 391,
"x": 190
},
"height": 22,
"y": 391,
"width": 277,
"dimension": {
"width": 277,
"height": 22
},
"x": 190
},
"size": {
"width": 277,
"height": 22
},
"stale": false,
"contentEditable": false,
"paintPoint": {
"y": 391,
"x": 190
},
"mlConfidence": 1,
"screenshotRelativePosition": {
"y": 391,
"height": 22,
"width": 277,
"point": {
"y": 391,
"x": 190
},
"x": 190,
"dimension": {
"height": 22,
"width": 277
}
},
"viewportRelativePosition": {
"width": 277,
"x": 185.828125,
"bottom": 332.78125,
"right": 462.828125,
"left": 185.828125,
"height": 22,
"y": 310.78125,
"top": 310.78125
},
"displayed": true
},
"unusedElements": [],
"selectionReason": "",
"failedSelection": false,
"selectionType": "ML"
},
"postScreenshot": {
"localPath": "/functionize/runtime/test_sessions/screenshots/4_chrome_new_1668018646491_8MO0026561_post.jpg",
"filename": "4_chrome_new_1668018646491_8MO0026561_post.jpg",
"dimensions": {
"height": 960,
"width": 1723
},
"phash": null,
"windowState": [
{
"id": "mainWindow",
"y": 80,
"lastUpdated": 0,
"viewportWidth": 1715,
"x": 3,
"type": "MAIN",
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"viewportHeight": 876,
"scrollLeft": 0,
"scrollTop": 0
}
],
"cloudPath": "",
"offset": null
}
}
},
{
"output": {
"verificationResults": [],
"founderl": "https://www.functionizeapp.com/tools/fileviewer",
"displayScreenshotPath": "/functionize/runtime/test_sessions/screenshots/5_chrome_new_1668039002334_WZNUREELYD_post.jpg",
"elementResult": {
"unusedElements": [],
"failedSelection": false,
"reusedElementResult": false,
"selectionType": "NONE",
"warnings": [],
"selectionReason": "",
"selectedElement": null
},
"preScreenshot": {
"filename": "5_chrome_new_1668039002334_WZNUREELYD_pre.png",
"dimensions": {
"width": 1723,
"height": 960
},
"windowState": [
{
"y": 80,
"viewportHeight": 876,
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"x": 3,
"id": "mainWindow",
"scrollLeft": 0,
"scrollTop": 0,
"type": "MAIN",
"viewportWidth": 1715,
"lastUpdated": 0
}
],
"cloudPath": "",
"offset": null,
"localPath": "/functionize/runtime/test_sessions/screenshots/5_chrome_new_1668039002334_WZNUREELYD_pre.png",
"phash": null
},
"result": {
"actionMessages": [],
"results": [
{
"message": "",
"result": "SUCCESS"
}
],
"executorResults": [
{
"evaluatorResults": [
{
"evaluatorName": "empty",
"score": 100
}
],
"confidenceScore": 100,
"executionMethodName": "javascriptMethod",
"successful": true,
"totalEvals": 1,
"threshold": 0
}
],
"resultCode": "PASS",
"pageLoad": null
},
"baseFileName": "5_chrome_new_1668039002334_WZNUREELYD",
"postScreenshot": {
"filename": "5_chrome_new_1668039002334_WZNUREELYD_post.jpg",
"cloudPath": "",
"dimensions": {
"width": 1723,
"height": 960
},
"phash": null,
"localPath": "/functionize/runtime/test_sessions/screenshots/5_chrome_new_1668039002334_WZNUREELYD_post.jpg",
"offset": null,
"windowState": [
{
"y": 80,
"type": "MAIN",
"id": "mainWindow",
"handle": "CDwindow-553275C3F82A1DD5800898BFABDDFC69",
"lastUpdated": 0,
"viewportWidth": 1715,
"x": 3,
"scrollTop": 0,
"viewportHeight": 876,
"scrollLeft": 0
}
]
}
},
"optional": false,
"path": "",
"action": {
"elementCode": "fze.local.pageTitle = document.title;",
"type": "SET_VARIABLE",
"id": "1668039002334_WZNUREELYD"
}
}
],
}
Manipulating Tests Via Extensions
Now that you have a reasonable overview of the data models used in Functionize, we are going to cover how you can manipulate values in a test execution by returning and overloading received data. All we need is to provide an updated JSON object with the relevant fields redefined and sent back:
let result = {
"updates": {
"variables": {
"local": {
"product": "Jacket"
}
}
}
};
res.status(200).send(result);
In the above example, we set a new local variable 'product' with a value of 'Jacket'. One can also simply fail a step, upsetting the result object in outputs:
let result = {
"updates": {
"step": {
"output": {
"results": ["result": "FAIL", "message": "Step failed in extension."]
}
}
}
};
res.status(200).send(result);