Remote User API
Generating an Authentication Token
To perform a Remote User API call, you must first sign in into the portal and generate an “API Authentication Token”. When generating the token you can enter a purpose (only used as information) and also restrict the remote IP addresses for which the token is valid.
API Functions
The API supports the following functions (so-called “actions”):
Common Functions:
- getUserAccountInfo (Get information about the own user account)
- getPricePlanInfo (Get information about the current price plan)
Projects, Resource Sets and Files Functions:
- getProjectTree (Get the project tree inclusive all resource sets and all file information)
- createProject (Create a new project)
- deleteProject (Delete a project)
- getResourceSetsOfProject (Get all resource sets of a project, inclusive all file information)
- createResourceSet (Create a new resource set)
- deleteResourceSet (Delete a resource set)
- getFilesInfoOfResourceSet (Get all files information of a resource set)
- createFile (Create or overwrite a file)
- getFile (Get the content of a file and the file information)
- deleteFile (Delete a file)
Measuring Agents Functions:
- getMeasuringAgents (Get all defined measuring agents)
- getMinRequiredMeasuringAgentVersion (Get the minimum required measuring agent version)
- addMeasuringAgent (Add a new measuring agent)
- pingMeasuringAgent (Ping a measuring agent)
- setMeasuringAgentActive (Set the state of a measuring agent to active or inactive)
- deleteMeasuringAgent (Delete a measuring agent)
Measuring Agent Cluster Functions:
- getMeasuringAgentClusters (Get all defined measuring agent clusters)
- getClusterControllers (Get all cluster controllers and for each cluster controller a list of measuring agent clusters which are referencing the cluster controller)
- getMinRequiredClusterControllerVersion (Get the minimum required cluster controller version)
- pingClusterController (Ping a cluster controller)
- addMeasuringAgentCluster (Add a new measuring agent cluster)
- addMemberToMeasuringAgentCluster (Add a member to a measuring agent cluster)
- removeMemberFromMeasuringAgentCluster (Remove a member from a measuring agent cluster)
- pingMeasuringAgentClusterMembers (Ping the cluster members of a measuring agent cluster via cluster controller)
- setMeasuringAgentClusterActive (Set the state of a measuring agent cluster to active or inactive)
- deleteMeasuringAgentCluster (Delete a measuring agent cluster)
HTTP/S Remote Proxy Recorders Functions:
- getProxyRecorders (Get all defined HTTP/S proxy recorders)
- getMinRequiredProxyRecorderVersion (Get the minimum required HTTP/S proxy recorder version)
- addProxyRecorder (Add a new HTTP/S proxy recorder)
- pingProxyRecorder (Ping a HTTP/S proxy recorder)
- deleteProxyRecorder (Delete a HTTP/S proxy recorder)
- getProxyRecordersClientCertificates (Get all client certificates for HTTP/S proxy recorders)
- addProxyRecordersClientCertificate (Add a client certificate for HTTP/S proxy recorders)
- setProxyRecordersClientCertificateActive (Set a client certificate for HTTP/S proxy recorders to active or inactive)
- modifyProxyRecordersClientCertificate (Modify a client certificate for HTTP/S proxy recorders)
- deleteProxyRecordersClientCertificate (Delete a client certificate for HTTP/S proxy recorders)
Load Test Jobs Functions:
- getTestjobTemplates (Get all test job templates)
- defineNewTestjobFromTemplate (Define new test job from template)
- submitTestjob (Submit a ‘defined’ test job to the measuring agent or to the cluster controller)
- makeTestjobReadyToRun (Turn a remote test job which is in the state ‘submitted’ into the state ‘ready to run’)
- startTestjob (Turn a remote test job which is in the state ‘ready to run’ into the state ‘running’)
- getMeasuringAgentTestjobs (Get from a measuring agent all test jobs, inclusive their states)
- getTestjobOutDirectoryFilesInfo (Get from test job information about all files located in a measuring agent job or cluster controller job ‘out’ subdirectory)
- getTestjobOutDirectoryFile (Get from a measuring agent or from a cluster controller the content of a file located in a testjob/cluster-job out subdirectory in base64 format)
- saveTestjobOutDirectoryFileToProjectTree (Get from a measuring agent or from a cluster controller the content of a file located in a testjob/cluster-job out subdirectory and save it in a resource set of the project tree)
- deleteTestjob (Delete a test job locally and also on the measuring agent or cluster controller)
Test Execution Suites Functions:
- getTestExecutionSuites (Get all test execution suites with a summary of all results of the executed test runs)
- getCurrentlyRunningTestExecutionSuiteIds (Get the ID(s) of all currently running test execution suites)
- startTestExecutionSuiteTestRun (Start a new run of a test execution suite)
- getTestExecutionSuiteTestRunResultDetail (Get a test run result detail of a test execution suite)
- getTestExecutionSuiteTestRunTestJobOutputFileContent (Get the content of a test job output file of a test execution suite run)
- deleteTestExecutionSuiteTestRun (Delete a test run of a test execution suite)
URL | HTTP Method |
---|---|
https://portal.realload.com/RemoteUserAPI | POST |
All data are sent and received in JSON data format. The “authTokenValue” and the “action” must always be sent when an API call is made. |
Example
API HTTP/S Request
curl -v --request POST --header "Content-Type: application/json" --data {\"authTokenValue\":\"jPmFClqeDUXaEk8Q274q\",\"action\":\"getUserAccountInfo\"} https://portal.realload.com/RemoteUserAPI
API Request Data
{
"authTokenValue": "jPmFClqeDUXaEk8Q274q",
"action": "getUserAccountInfo"
}
API Response Data
{
"userAccountInfo":{
"userId":48,
"nickname":"BET",
"firstName":"Bettina",
"lastName":"MeierHans",
"primaryEmail":"bettina@meierhans.id.au",
"primarySMSPhone":"+61401111111",
"secondaryEmail":"",
"secondarySMSPhone":"",
"accountBlocked":false,
"accountCreateTime":1623719604561,
"lastLoginTime":1625348376450,
"lastLoginIP":"127.0.0.1",
"pricePlanId":6,
"accountExpiresTime":1625953109397,
"pricePlanTitle":"BASIC1"
},
"isError":false
}
If the API call is successful, then the response field “isError” is false. If a numeric field has a value of -1 (minus one), this means “no data” or “unlimited” depending on the context.
getUserAccountInfo
Specific Request Fields:
- [none]
Specific Error Flags:
- [none]
getPricePlanInfo
Specific Request Fields:
- [none]
Specific Error Flags:
- [none]
JSON Response Example:
{
"pricePlanInfo":{
"pricePlanId":6,
"title":"BASIC1",
"description":"",
"isDeprecated":false,
"lastModified":1625348413042,
"maxDiskSpaceMB":1024,
"maxSubUserAccounts":0,
"maxMeasuringAgentsOwnedByUser":3,
"maxRemoteProxyRecordersOwnedByUser":3,
"executeLoadJobsEnabled":true,
"executeMonitoringJobsEnabled":false,
"apiAccessEnabled":true,
"maxStartLoadJobsLast24h":24,
"maxUsersPerLoadJob":500,
"maxDurationPerLoadJob":1800
},
"isError":false
}
The unit for “maxDurationPerLoadJob” is seconds.
getProjectTree
Specific Request Fields:
- [none]
Specific Error Flags:
- [none]
JSON Response Example:
{
"projectsArray": [
{
"projectId": 97,
"projectName": "Common",
"projectDescription": "",
"resourceSetsArray": [
{
"resourceSetId": 154,
"resourceSetName": "Input Files",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "InputFile.txt",
"fileSize": 233,
"fileHashCode": 1873256029,
"fileLastModified": 1613835992073
}
]
},
{
"resourceSetId": 155,
"resourceSetName": "Jar Files",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "com.dkfqs.tools.jar",
"fileSize": 578087,
"fileHashCode": -2033420926,
"fileLastModified": 1613838181727
}
]
},
{
"resourceSetId": 156,
"resourceSetName": "Plug-Ins",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "HttpSessionPlugin_ChangeCopyright.json",
"fileSize": 5321,
"fileHashCode": 1958407366,
"fileLastModified": 1613838287871
}
]
}
]
},
...
...
...
],
"isError": false
}
createProject
Specific Request Fields:
- projectName
- projectDescription (optional)
Response Fields:
- projectId
Specific Error Flags:
- projectNameError
- diskSpaceLimitExceededError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"createProject",
"projectName":"My New Project",
"projectDescription": "Created by API call"
}
JSON Response Example (Success Case):
{"projectId":113,"isError":false}
JSON Response Example (Error Case):
{"isError":true,"genericErrorText":"","diskSpaceLimitExceededError":false,"projectNameError":true}
deleteProject
Specific Request Fields:
- projectId
- moveToTrash (optional, default: false)
Specific Error Flags:
- projectIdError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteProject",
"projectId":113,
"moveToTrash":false
}
getResourceSetsOfProject
Specific Request Fields:
- projectId
Specific Error Flags:
- projectIdError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getResourceSetsOfProject",
"projectId":97
}
JSON Response Example (Success Case):
{
"resourceSetsArray": [
{
"resourceSetId": 154,
"resourceSetName": "Input Files",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "InputFile.txt",
"fileSize": 233,
"fileHashCode": 1873256029,
"fileLastModified": 1613835992073
}
]
},
{
"resourceSetId": 155,
"resourceSetName": "Jar Files",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "com.dkfqs.tools.jar",
"fileSize": 578087,
"fileHashCode": -2033420926,
"fileLastModified": 1613838181727
}
]
},
{
"resourceSetId": 156,
"resourceSetName": "Plug-Ins",
"resourceSetDescription": "",
"filesArray": [
{
"fileName": "HttpSessionPlugin_ChangeCopyright.json",
"fileSize": 5321,
"fileHashCode": 1958407366,
"fileLastModified": 1613838287871
}
]
}
],
"isError": false
}
createResourceSet
Specific Request Fields:
- projectId
- resourceSetName
- resourceSetDescription (optional)
Response Fields:
- resourceSetId
Specific Error Flags:
- projectIdError
- resourceSetNameError
- diskSpaceLimitExceededError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"createResourceSet",
"projectId":97,
"resourceSetName":"My New Resource Set",
"resourceSetDescription": "Created by API call"
}
JSON Response Example (Success Case):
{"resourceSetId":172,"isError":false}
JSON Response Example (Error Case):
{"isError":true,"genericErrorText":"","resourceSetNameError":true,"projectIdError":false,"diskSpaceLimitExceededError":false}
deleteResourceSet
Specific Request Fields:
- projectId
- resourceSetId
- moveToTrash (optional, default: false)
Specific Error Flags:
- projectIdError
- resourceSetIdError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteResourceSet",
"projectId":97,
"resourceSetId":172,
"moveToTrash":false
}
getFilesInfoOfResourceSet
Specific Request Fields:
- projectId
- resourceSetId
Specific Error Flags:
- projectIdError
- resourceSetIdError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getFilesInfoOfResourceSet",
"projectId":23,
"resourceSetId":143
}
JSON Response Example:
{
"filesArray": [
{
"fileName": "DKFQSLibrary2.psm1",
"fileSize": 16339,
"fileHashCode": -1503445747,
"fileLastModified": 1603566144851
},
{
"fileName": "powershell-http-bern2.ps1",
"fileSize": 12900,
"fileHashCode": -1174212096,
"fileLastModified": 1603566162094
},
{
"fileName": "TestResult_powershell-http-bern2Neu_2020-10-24@21-06-04.json",
"fileSize": 14395,
"fileHashCode": -951574615,
"fileLastModified": 1603566379097
},
{
"fileName": "TestResult_powershell-http-bern2Neu_2020-10-24@21-09-45.json",
"fileSize": 55128,
"fileHashCode": 1499924815,
"fileLastModified": 1603566591322
}
],
"isError": false
}
createFile
Specific Request Fields:
- projectId
- resourceSetId
- fileName
- fileContentB64 (the content of the file, in Base64 format)
Response Fields:
- fileName
- fileSize
- fileHashCode
- fileLastModified
Specific Error Flags:
- projectIdError
- resourceSetIdError
- fileNameError
- diskSpaceLimitExceededError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"createFile",
"projectId":23,
"resourceSetId":143,
"fileName":"test.txt",
"fileContentB64":"VGhpcyBpcyB0aGUgY29udGVudCBvZiB0aGUgZmlsZS4="
}
JSON Response Example (Success Case):
{
"fileName":"test.txt",
"fileSize":32,
"fileHashCode":-1460278014,
"fileLastModified":1625423562384,
"isError":false
}
JSON Response Example (Error Case):
{"isError":true,"genericErrorText":"","projectIdError":false,"resourceSetIdError":false,"diskSpaceLimitExceededError":false,"fileNameError":true}
getFile
Specific Request Fields:
- projectId
- resourceSetId
- fileName
Response Fields:
- fileName
- fileContentB64 (the content of the file, in Base64 format)
- fileSize
- fileHashCode
- fileLastModified
Specific Error Flags:
- projectIdError
- resourceSetIdError
- fileNameError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getFile",
"projectId":23,
"resourceSetId":143,
"fileName":"test.txt"
}
JSON Response Example (Success Case):
{
"fileName":"test.txt",
"fileContentB64":"VGhpcyBpcyB0aGUgY29udGVudCBvZiB0aGUgZmlsZS4=",
"fileSize":32,
"fileHashCode":-1460278014,
"fileLastModified":1625423562384,
"isError":false
}
deleteFile
Specific Request Fields:
- projectId
- resourceSetId
- fileName
- moveToTrash (optional, default: false)
Response Fields:
- fileDeleted (a flag which is true if the file was deleted)
Specific Error Flags:
- projectIdError
- resourceSetIdError
- fileNameError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteFile",
"projectId":23,
"resourceSetId":143,
"fileName":"test.txt",
"moveToTrash":false
}
JSON Response Example (Success Case):
{"fileDeleted":true,"isError":false}
JSON Response Example (Error Case):
{"isError":true,"genericErrorText":"","projectIdError":false,"resourceSetIdError":false,"fileNameError":true}
getMeasuringAgents
Specific Request Fields:
- [none]
Response Fields:
- agentId (the unique measuring agent id)
- createdBySystem (normally false, true = the user cannot modify or delete the measuring agent)
- ownerUserId (always the same as the user account id)
- agentActive (flag: if false then the availability of the measuring agent is not monitored)
- agentDescription
- agentHost
- agentPort
- authToken (the authentication token to access the measuring agent, or an empty string = no access protection | don’t confuse it with the API authTokenValue)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMeasuringAgents"
}
JSON Response Example (Success Case):
{
"measuringAgentsArray": [
{
"agentId": 46,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Local Agent",
"agentHost": "127.0.0.1",
"agentPort": 8080,
"authToken": "OrKmpkbyNWEHok"
},
{
"agentId": 49,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": false,
"agentDescription": "Rasberry 1",
"agentHost": "192.168.0.51",
"agentPort": 8080,
"authToken": ""
},
{
"agentId": 50,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Ubuntu 10",
"agentHost": "192.168.0.110",
"agentPort": 8080,
"authToken": ""
},
{
"agentId": 51,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Ubuntu 11",
"agentHost": "192.168.0.111",
"agentPort": 8080,
"authToken": ""
}
],
"isError": false
}
getMinRequiredMeasuringAgentVersion
Specific Request Fields:
- [none]
Response Fields:
- minRequiredMeasuringAgentVersion (the minimum required measuring agent version)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMinRequiredMeasuringAgentVersion"
}
JSON Response Example (Success Case):
{
"minRequiredMeasuringAgentVersion":"3.9.34",
"isError":false
}
addMeasuringAgent
Specific Request Fields:
- agentDescription (must be unique across all measuring agents of the user, cannot be an empty string)
- agentHost
- agentPort
- agentActive (flag: if false then the availability of the measuring agent is not monitored)
- agentAuthToken (the authentication token to access the measuring agent, or an empty string = no access protection)
Response Fields (JSON object “measuringAgent”):
- agentId (the unique measuring agent id)
- createdBySystem (always false for this function)
- ownerUserId (always the same as the user account id)
- agentActive (flag: if false then the availability of the measuring agent is not monitored)
- agentDescription
- agentHost
- agentPort
- authToken (the authentication token to access the measuring agent, or an empty string = no access protection)
Specific Error Flags:
- agentDescriptionError
- agentHostError
- agentPortError
- maxNumberMeasuringAgentsLimitExceededError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"addMeasuringAgent",
"agentDescription":"Ubuntu 12",
"agentHost":"192.168.0.112",
"agentPort":8080,
"agentActive": true,
"agentAuthToken": "nixda"
}
JSON Response Example (Success Case):
{
"measuringAgent": {
"agentId": 53,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Ubuntu 12",
"agentHost": "192.168.0.112",
"agentPort": 8080,
"authToken": "nixda"
},
"isError": false
}
pingMeasuringAgent
Specific Request Fields:
- agentId
Response Fields (JSON object “agentResponse”):
- pingFromRemoteIp
- pingFromRemoteUserId
- productVersion (measuring agent version | don’t confuse with portal server version)
- limitMaxUsersPerJob (limit of the measuring agent, -1 = unlimited | don’t confuse with price plan limit)
- limitMaxJobDurationSeconds (limit of the measuring agent, -1 = unlimited | don’t confuse with price plan limit)
- osName
- osVersion
- javaVersion
- javaVendor
- javaMaxMemory
- systemTime
- deltaTimeMillis
- agentStartupTimeStamp
- httpExecuteTimeMillis
Specific Error Flags:
- agentIdError
- agentAccessDeniedError
- agentVersionOutdatedError
- agentNotReachableError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"pingMeasuringAgent",
"agentId":48
}
JSON Response Example (Success Case):
{
"agentResponse": {
"pingFromRemoteIp": "83.150.39.44",
"pingFromRemoteUserId": 13,
"productVersion": "3.9.30",
"limitMaxUsersPerJob": 500,
"limitMaxJobDurationSeconds": 300,
"osName": "Linux",
"osVersion": "4.15.0-136-generic",
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"javaMaxMemory":"2048 MB",
"systemTime": 1625513238236,
"deltaTimeMillis": 841,
"agentStartupTimeStamp": 1622836702172,
"httpExecuteTimeMillis": 247
},
"isError": false
}
JSON Response Example (Error Case 1):
{
"isError": true,
"genericErrorText": "API V1 request to 192.168.0.51:8080 timed out",
"agentIdError": false,
"agentAccessDeniedError": false,
"agentNotReachableError": true,
"agentVersionOutdatedError": false
}
JSON Response Example (Error Case 2):
{
"isError": true,
"genericErrorText": "Min. measuring agent version required: 3.9.30",
"agentIdError": false,
"agentAccessDeniedError": false,
"agentNotReachableError": false,
"agentVersionOutdatedError": true
}
setMeasuringAgentActive
Specific Request Fields:
- agentId
- agentActive
Response Fields:
- [none]
Specific Error Flags:
- agentIdError
- agentAccessDeniedError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"setMeasuringAgentActive",
"agentId":46,
"agentActive":false
}
JSON Response Example (Success Case):
{"isError":false}
deleteMeasuringAgent
Specific Request Fields:
- agentId
Response Fields:
- [none]
Specific Error Flags:
- agentIdError
- agentAccessDeniedError
- agentDeleteDeniedError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteMeasuringAgent",
"agentId":54
}
JSON Response Example (Success Case):
{"isError":false}
getMeasuringAgentClusters
Specific Request Fields:
- [none]
Response Fields (JSON array “measuringAgentClustersArray”):
- clusterId (the unique cluster id)
- createdBySystem (normally false, true = the user cannot modify or delete the cluster)
- ownerUserId (always the same as the user account id)
- clusterActive (flag: if false then the availability of the cluster is not monitored)
- clusterDescription
- controllerHost (the hostname or IP address of the cluster controller)
- controllerPort (the IP port of the cluster controller)
- controllerAuthToken (the authentication token to access the cluster controller, or an empty string = no access protection | don’t confuse it with the API authTokenValue)
- clusterMembersArray
- clusterMemberId (the unique cluster member id)
- loadFactor (integer 0..100: the default load factor of this cluster member)
- agentId (the referenced measuring agent id)
- agentActive (flag: if false then the availability of the measuring agent is not monitored)
- agentDescription
- agentHost
- agentPort
- agentAuthToken (the authentication token to access the measuring agent, or an empty string = no access protection | don’t confuse it with the API authTokenValue)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMeasuringAgentClusters"
}
JSON Response Example:
{
"measuringAgentClustersArray": [
{
"clusterId": 11,
"createdBySystem": false,
"ownerUserId": 13,
"clusterActive": true,
"clusterDescription": "C1",
"controllerHost": "192.168.0.50",
"controllerPort": 8083,
"controllerAuthToken": "aberaber",
"clusterMembersArray": [
{
"clusterMemberId": 59,
"loadFactor": 1,
"agentId": 64,
"agentActive": true,
"agentDescription": "Agent 1",
"agentHost": "192.168.0.10",
"agentPort": 8080,
"agentAuthToken": "OrKmAAbyNWEHok"
},
{
"clusterMemberId": 60,
"loadFactor": 1,
"agentId": 59,
"agentActive": true,
"agentDescription": "Ubuntu 10",
"agentHost": "192.168.0.110",
"agentPort": 8080,
"agentAuthToken": "asc7jhacab"
},
{
"clusterMemberId": 61,
"loadFactor": 1,
"agentId": 60,
"agentActive": true,
"agentDescription": "Ubuntu 11",
"agentHost": "192.168.0.111",
"agentPort": 8080,
"agentAuthToken": "66ascascsdac"
}
]
},
{
"clusterId": 14,
"createdBySystem": false,
"ownerUserId": 13,
"clusterActive": true,
"clusterDescription": "C2",
"controllerHost": "192.168.0.50",
"controllerPort": 8083,
"controllerAuthToken": "aberaber",
"clusterMembersArray": [
{
"clusterMemberId": 66,
"loadFactor": 1,
"agentId": 56,
"agentActive": true,
"agentDescription": "Test System",
"agentHost": "192.168.0.60",
"agentPort": 8080,
"agentAuthToken": "aberdoch"
},
{
"clusterMemberId": 67,
"loadFactor": 1,
"agentId": 59,
"agentActive": true,
"agentDescription": "Ubuntu 10",
"agentHost": "192.168.0.110",
"agentPort": 8080,
"agentAuthToken": "asc7jhacab"
}
]
}
],
"isError": false
}
getClusterControllers
Specific Request Fields:
- [none]
Response Fields (JSON array “clusterControllersArray”):
- controllerHost (the hostname or IP address of the cluster controller)
- controllerPort (the IP port of the cluster controller)
- controllerAuthToken (the authentication token to access the cluster controller)
- measuringAgentClustersArray (an array of measuring agent clusters which are referencing this cluster controller)
- clusterId
- clusterDescription
- clusterActive
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getClusterControllers"
}
JSON Response Example:
{
"clusterControllersArray": [
{
"controllerHost": "192.168.0.33",
"controllerPort": 8083,
"controllerAuthToken": "2fasdtfffe",
"measuringAgentClustersArray": [
{
"clusterId": 11,
"clusterDescription": "C1",
"clusterActive": 1
},
{
"clusterId": 13,
"clusterDescription": "C2",
"clusterActive": 1
},
{
"clusterId": 14,
"clusterDescription": "C3",
"clusterActive": 1
}
]
},
{
"controllerHost": "192.168.0.50",
"controllerPort": 8083,
"controllerAuthToken": "asfsdgh763",
"measuringAgentClustersArray": [
{
"clusterId": 15,
"clusterDescription": "C4",
"clusterActive": 1
},
{
"clusterId": 16,
"clusterDescription": "C7",
"clusterActive": 1
}
]
}
],
"isError": false
}
getMinRequiredClusterControllerVersion
Specific Request Fields:
- [none]
Response Fields:
- minRequiredClusterControllerVersion (the minimum required cluster controller version)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMinRequiredClusterControllerVersion"
}
JSON Response Example:
{
"minRequiredClusterControllerVersion":"4.0.4",
"isError":false
}
pingClusterController
Specific Request Fields:
- controllerHost (the cluster controller host name or IP address)
- controllerPort (the cluster controller IP port)
- controllerAuthToken (the authentication token to access the cluster controller, or an empty string = no access protection)
Response Fields (JSON object “controllerResponse”):
- pingFromRemoteIp
- pingFromRemoteUserId
- productVersion (cluster controller version | don’t confuse with portal server version)
- osName
- osVersion
- javaVersion
- javaVendor
- javaMaxMemory
- systemTime
- deltaTimeMillis
- controllerStartupTimeStamp
- httpExecuteTimeMillis
- clusterControllerOutdated
Specific Error Flags:
- controllerHostError
- controllerPortError
- controllerVersionOutdatedError
- controllerNotReachableError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"pingClusterController",
"controllerHost":"192.168.0.50",
"controllerPort":8083,
"controllerAuthToken":"hagsajjs99"
}
JSON Response Example (Success Case):
{
"controllerResponse": {
"pingFromRemoteIp": "192.168.0.100",
"pingFromRemoteUserId": 13,
"productVersion": "4.0.4",
"osName": "Linux",
"osVersion": "4.15.0-135-generic",
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"javaMaxMemory": "512 MB",
"systemTime": 1643406118552,
"deltaTimeMillis": 1120,
"controllerStartupTimeStamp": 1643322597013,
"httpExecuteTimeMillis": 249,
"clusterControllerOutdated": false
},
"isError": false
}
JSON Response Example (Error Case 1):
{
"isError": true,
"genericErrorText": "API call pingGetControllerInfo failed. Error code = 18, Error message = Invalid authentication token",
"controllerHostError": false,
"controllerVersionOutdatedError": false,
"controllerNotReachableError": true,
"controllerPortError": false
}
JSON Response Example (Error Case 2):
{
"isError": true,
"genericErrorText": "Min. cluster controller version required: 4.0.4",
"controllerHostError": false,
"controllerVersionOutdatedError": true,
"controllerNotReachableError": false,
"controllerPortError": false
}
addMeasuringAgentCluster
Specific Request Fields:
- clusterActive (flag: if false then the availability of the cluster is not monitored)
- clusterDescription (must be unique across all measuring agent clusters and all measuring agents of the user, cannot be an empty string)
- controllerHost (the cluster controller host name or IP address)
- controllerPort (the cluster controller IP port)
- controllerAuthToken (the authentication token to access the cluster controller, or an empty string = no access protection)
- clusterMembersArray (an array of cluster members - can also be empty)
- agentId (the referenced measuring agent id)
- loadFactor (integer 0..100: the load factor of this cluster member, recommended value = 1)
Response Fields:
- clusterId (the unique cluster id)
- clusterMembersArray (the array of cluster members)
- clusterMemberId (the unique cluster member id)
- agentId (the referenced measuring agent id)
- loadFactor (integer 0..100: the load factor of this cluster member)
Specific Error Flags:
- clusterDescriptionError
- controllerHostError
- controllerPortError
- agentIdError
- loadFactorError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"addMeasuringAgentCluster",
"clusterActive":true,
"clusterDescription":"C7",
"controllerHost":"192.168.0.50",
"controllerPort":8083,
"controllerAuthToken":"aberaber",
"clusterMembersArray":[
{
"agentId":59,
"loadFactor":1
},
{
"agentId":60,
"loadFactor":1
}
]
}
JSON Response Example (Success Case):
{
"clusterId":16,
"clusterMembersArray":[
{
"clusterMemberId":71,
"agentId":59,
"loadFactor":1
},
{
"clusterMemberId":72,
"agentId":60,
"loadFactor":1
}
],
"isError":false
}
JSON Response Example (Error Case):
{
"isError": true,
"genericErrorText": "Invalid agentId = 101",
"controllerHostError": false,
"agentIdError": true,
"controllerPortError": false,
"loadFactorError": false,
"clusterDescriptionError": false
}
addMemberToMeasuringAgentCluster
Specific Request Fields:
- clusterId
- agentId (the referenced measuring agent id)
- loadFactor (integer 0..100: the load factor of this cluster member, recommended value = 1)
Response Fields (JSON object “clusterMember”):
- clusterMemberId (the unique cluster member id)
- agentId
- loadFactor
Specific Error Flags:
- clusterIdError
- clusterAccessDeniedError
- clusterModifyDeniedError
- agentIdError
- agentAccessDeniedError
- loadFactorError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"addMemberToMeasuringAgentCluster",
"clusterId":17,
"agentId":64,
"loadFactor":1
}
JSON Response Example:
{
"clusterMember": {
"clusterMemberId": 75,
"agentId": 64,
"loadFactor": 1
},
"isError": false
}
removeMemberFromMeasuringAgentCluster
Specific Request Fields:
- clusterId
- clusterMemberId
Response Fields:
- [none]
Specific Error Flags:
- clusterIdError
- clusterAccessDeniedError
- clusterModifyDeniedError
- clusterMemberIdError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"removeMemberFromMeasuringAgentCluster",
"clusterId":17,
"clusterMemberId":75
}
JSON Response Example:
{"isError":false}
pingMeasuringAgentClusterMembers
Specific Request Fields:
- clusterId
Response Fields (JSON object “controllerResponse”):
- productVersion (cluster controller version)
- clusterConnectResult (the connect information to the cluster members)
- measuringAgentClusterMemberArray (the array of cluster members)
- clusterMemberId
- loadFactor
- agentId
- agentActive
- agentDescription
- agentHost
- agentPort
- agentAuthToken
- connectSuccessfulClusterMemberArray (the array of cluster member ids to which the connection was successful established)
- connectFailedClusterMemberArray (the array of cluster members to which the connection has failed)
- clusterMemberId
- errorMessage
- clusterConnectStartTimestamp
- clusterConnectDurationMillis
- measuringAgentClusterMemberArray (the array of cluster members)
- clusterActionResult (the ping result of the cluster members)
- actionSuccessfulClusterMemberArray (the array of cluster member ids which have performed the ping to the measuring agent)
- actionFailedClusterMemberArray (the array of cluster members which have not performed the ping to the measuring agent)
- clusterMemberId
- errorMessage
- jsonResponseClusterMemberArray (the array of cluster member which have performed the ping)
- clusterMemberId
- jsonResponseObject (the pong response of the cluster member)
- productVersion (measuring agent product version)
- systemTime
- deltaTimeMillis (the OS time difference in milliseconds between the cluster controller and the measuring agent)
- osName
- osVersion
- javaVersion
- javaVendor
- javaMaxMemory
- samplingGranularityMillis (the data collector sampling granularity in milliseconds)
- isError (boolean flag, normally always false)
- measuringAgentOutdated (a boolean flag, true = measuring agent product version is outdated)
- clusterActionStartTimestamp
- clusterActionDurationMillis
- httpExecuteTimeMillis
- clusterControllerOutdated
Specific Error Flags:
- clusterIdError
- clusterAccessDeniedError
- controllerVersionOutdatedError
- controllerNotReachableError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"pingMeasuringAgentClusterMembers",
"clusterId":16
}
JSON Response Example (Success Case):
{
"controllerResponse": {
"productVersion": "4.0.4",
"clusterConnectResult": {
"measuringAgentClusterMemberArray": [
{
"clusterMemberId": 71,
"loadFactor": 1,
"agentId": 59,
"agentActive": true,
"agentDescription": "Ubuntu 10",
"agentHost": "192.168.0.110",
"agentPort": 8080,
"agentAuthToken": "agsdhagsj"
},
{
"clusterMemberId": 72,
"loadFactor": 1,
"agentId": 60,
"agentActive": true,
"agentDescription": "Ubuntu 11",
"agentHost": "192.168.0.111",
"agentPort": 8080,
"agentAuthToken": "nvbjnvbnn"
}
],
"connectSuccessfulClusterMemberArray": [
71,
72
],
"connectFailedClusterMemberArray": [],
"clusterConnectStartTimestamp": 1643410829270,
"clusterConnectDurationMillis": 79
},
"clusterActionResult": {
"actionSuccessfulClusterMemberArray": [
71,
72
],
"actionFailedClusterMemberArray": [],
"jsonResponseClusterMemberArray": [
{
"clusterMemberId": 71,
"jsonResponseObject": {
"productVersion": "4.0.4",
"systemTime": 1643410829340,
"deltaTimeMillis": -10,
"osName": "Linux",
"osVersion": "5.4.0-92-generic",
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"javaMaxMemory": "2048 MB",
"samplingGranularityMillis": 4000,
"isError": false,
"measuringAgentOutdated": false
}
},
{
"clusterMemberId": 72,
"jsonResponseObject": {
"productVersion": "4.0.4",
"systemTime": 1643410829351,
"deltaTimeMillis": -10,
"osName": "Linux",
"osVersion": "5.4.0-92-generic",
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"javaMaxMemory": "2048 MB",
"samplingGranularityMillis": 4000,
"isError": false,
"measuringAgentOutdated": false
}
}
],
"clusterActionStartTimestamp": 1643410829349,
"clusterActionDurationMillis": 43
},
"httpExecuteTimeMillis": 1778,
"clusterControllerOutdated": false
},
"isError": false
}
JSON Response Example (Error Case / Partly failed):
{
"controllerResponse": {
"productVersion": "4.0.4",
"clusterConnectResult": {
"measuringAgentClusterMemberArray": [
{
"clusterMemberId": 71,
"loadFactor": 1,
"agentId": 59,
"agentActive": true,
"agentDescription": "Ubuntu 10",
"agentHost": "192.168.0.110",
"agentPort": 8080,
"agentAuthToken": "marderzahn"
},
{
"clusterMemberId": 72,
"loadFactor": 1,
"agentId": 60,
"agentActive": true,
"agentDescription": "Ubuntu 11",
"agentHost": "192.168.0.111",
"agentPort": 8080,
"agentAuthToken": "marderzahn"
}
],
"connectSuccessfulClusterMemberArray": [
72
],
"connectFailedClusterMemberArray": [
{
"clusterMemberId": 71,
"errorMessage": "Connection refused (Connection refused)"
}
],
"clusterConnectStartTimestamp": 1643414272214,
"clusterConnectDurationMillis": 97
},
"clusterActionResult": {
"actionSuccessfulClusterMemberArray": [
72
],
"actionFailedClusterMemberArray": [],
"jsonResponseClusterMemberArray": [
{
"clusterMemberId": 72,
"jsonResponseObject": {
"productVersion": "4.0.4",
"systemTime": 1643414272310,
"deltaTimeMillis": -8,
"osName": "Linux",
"osVersion": "5.4.0-92-generic",
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"javaMaxMemory": "2048 MB",
"samplingGranularityMillis": 4000,
"isError": false,
"measuringAgentOutdated": false
}
}
],
"clusterActionStartTimestamp": 1643414272311,
"clusterActionDurationMillis": 21
},
"httpExecuteTimeMillis": 1769,
"clusterControllerOutdated": false
}
}
setMeasuringAgentClusterActive
Specific Request Fields:
- clusterId
- clusterActive
Response Fields:
- [none]
Specific Error Flags:
- clusterIdError
- clusterAccessDeniedError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"setMeasuringAgentClusterActive",
"clusterId":16,
"clusterActive":true
}
JSON Response Example (Success Case):
{"isError":false}
deleteMeasuringAgentCluster
Specific Request Fields:
- clusterId
Response Fields:
- [none]
Specific Error Flags:
- clusterIdError
- clusterAccessDeniedError
- clusterDeleteDeniedError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteMeasuringAgentCluster",
"clusterId":16
}
JSON Response Example (Success Case):
{"isError":false}
getProxyRecorders
Specific Request Fields:
- [none]
Response Fields (JSON array “proxyRecordersArray”):
- recorderId (the unique proxy recorder id)
- createdBySystem (normally false, true = the user cannot modify or delete the proxy recorder)
- ownerUserId (always the same as the user account id)
- recorderDescription
- recorderProxyHost
- recorderProxyPort (HTTP and HTTPS port of the proxy)
- recorderProxyAuthUsername (proxy authentication username, or an empty string = no proxy authentication required)
- recorderProxyAuthPassword (proxy authentication password)
- recorderControlPort (the proxy recorder control port)
- recorderControlAuthToken (the authentication token to access the proxy recorder control port, or an empty string = no access protection | don’t confuse it with the API authTokenValue)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getProxyRecorders"
}
JSON Response Example:
{
"proxyRecordersArray": [
{
"recorderId": 3,
"createdBySystem": false,
"ownerUserId": 13,
"recorderDescription": "Erster",
"recorderProxyHost": "192.168.0.40",
"recorderProxyPort": 8082,
"recorderProxyAuthUsername": "",
"recorderProxyAuthPassword": "",
"recorderControlPort": 8081,
"recorderControlAuthToken": ""
},
{
"recorderId": 4,
"createdBySystem": false,
"ownerUserId": 13,
"recorderDescription": "proxy.realload.com",
"recorderProxyHost": "proxy.realload.com",
"recorderProxyPort": 8082,
"recorderProxyAuthUsername": "max.meier",
"recorderProxyAuthPassword": "123456",
"recorderControlPort": 8081,
"recorderControlAuthToken": "aZujkl97zuwert"
}
],
"isError": false
}
getMinRequiredProxyRecorderVersion
Specific Request Fields:
- [none]
Response Fields:
- minRequiredProxyRecorderVersion (the minimum required HTTP/S proxy recorder version)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMinRequiredProxyRecorderVersion"
}
JSON Response Example (Success Case):
{
"minRequiredProxyRecorderVersion":"0.2.2",
"isError":false
}
addProxyRecorder
Specific Request Fields:
- recorderDescription (must be unique across all HTTP/S proxy recorders of the user, cannot be an empty string)
- recorderProxyHost
- recorderProxyPort (HTTP and HTTPS port of the proxy)
- recorderProxyAuthUsername (proxy authentication username, or an empty string = no proxy authentication required)
- recorderProxyAuthPassword (proxy authentication password, applied if recorderProxyAuthUsername is not an empty string)
- recorderControlPort (the proxy recorder control port)
- recorderControlAuthToken (the authentication token to access the proxy recorder control port, or an empty string = no access protection)
Response Fields (JSON object “proxyRecorder”):
- recorderId (the unique HTTP/S proxy recorder id)
- createdBySystem (always false for this function)
- ownerUserId (always the same as the user account id)
- recorderDescription
- recorderProxyHost
- recorderProxyPort
- recorderProxyAuthUsername
- recorderProxyAuthPassword
- recorderControlPort
- recorderControlAuthToken
Specific Error Flags:
- recorderDescriptionError
- recorderProxyHostError
- recorderProxyPortError
- recorderControlPortError
- maxNumberProxyRecordersLimitExceededError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"addProxyRecorder",
"recorderDescription":"My New Proxy Recorder",
"recorderProxyHost":"192.168.0.148",
"recorderProxyPort":8082,
"recorderProxyAuthUsername":"max.meier",
"recorderProxyAuthPassword":"123456",
"recorderControlPort":8081,
"recorderControlAuthToken":"aZujkl97zuwert"
}
JSON Response Example (Success Case):
{
"proxyRecorder": {
"recorderId": 10,
"createdBySystem": false,
"ownerUserId": 13,
"recorderDescription": "My New Proxy Recorder",
"recorderProxyHost": "192.168.0.148",
"recorderProxyPort": 8082,
"recorderProxyAuthUsername": "max.meier",
"recorderProxyAuthPassword": "123456",
"recorderControlPort": 8081,
"recorderControlAuthToken": "aZujkl97zuwert"
},
"isError": false
}
pingProxyRecorder
Specific Request Fields:
- recorderId
Response Fields (JSON object “pongResponse”):
- pingFromRemoteIp
- pingFromRemoteUserId
- productVersion (the remote proxy recorder version | don’t confuse with portal server version)
- recorderComponentVersion (the proxy recorder component version | don’t confuse with portal server version)
- isRecording
- recordHostFilter
- numRecordedElements
- osName
- osVersion
- javaMemoryMB
- javaVersion
- javaVendor
- systemTime
- deltaTimeMillis
- httpExecuteTimeMillis
Specific Error Flags:
- recorderIdError
- recorderAccessDeniedError
- recorderNotReachableError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"pingProxyRecorder",
"recorderId":4
}
JSON Response Example (Success Case):
{
"pongResponse": {
"pingFromRemoteIp": "83.150.39.44",
"pingFromRemoteUserId": 13,
"productVersion": "0.2.0",
"recorderComponentVersion": "1.1.0",
"isRecording": false,
"recordHostFilter": "www.dkfqa.com",
"numRecordedElements": 0,
"osName": "Linux",
"osVersion": "5.4.0-74-generic",
"javaMemoryMB": 2048,
"javaVersion": "11.0.1",
"javaVendor": "Oracle Corporation",
"systemTime": 1625529858405,
"deltaTimeMillis": 790,
"httpExecuteTimeMillis": 88
},
"isError": false
}
JSON Response Example (Error Case):
{
"isError": true,
"genericErrorText": "connect timed out",
"recorderNotReachableError": true,
"recorderIdError": false,
"recorderAccessDeniedError": false
}
deleteProxyRecorder
Specific Request Fields:
- recorderId
Response Fields:
- [none]
Specific Error Flags:
- recorderIdError
- recorderAccessDeniedError
- recorderDeleteDeniedError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteProxyRecorder",
"recorderId":10
}
JSON Response Example (Success Case):
{"isError":false}
getProxyRecordersClientCertificates
Specific Request Fields:
- [none]
Response Fields:
- certificateId (unique ID)
- ownerUserId (always the own user ID)
- recorderId (always -1 = apply for all proxy recorders)
- originalCertFileName (without disk path)
- certFileType (always PKCS#12)
- certFileDataB64 (the file data in base64 format)
- certPassword
- certDescription
- certActive (if false then do not transmit the certificate to the proxy recorders)
- applyForHost
- applyForPort
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getProxyRecordersClientCertificates"
}
JSON Response Example (Success Case):
{
"clientCertificatesArray": [
{
"certificateId": 1,
"ownerUserId": 13,
"recorderId": -1,
"originalCertFileName": "fischer@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certFileDataB64": "MIIRQQ.....CAA=",
"certPassword": "12345678",
"certDescription": "Fischer's Cert",
"certActive": true,
"applyForHost": "192.168.0.100",
"applyForPort": 499
},
{
"certificateId": 3,
"ownerUserId": 13,
"recorderId": -1,
"originalCertFileName": "miller@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certFileDataB64": "MIIRXB.....CCAA=",
"certPassword": "abcdefgh",
"certDescription": "",
"certActive": false,
"applyForHost": "www.werwaswo.com",
"applyForPort": 443
}
],
"isError": false
}
addProxyRecordersClientCertificate
Specific Request Fields:
- recorderId (always -1 = apply for all proxy recorders)
- certFileName (without disk path)
- certFileType (always PKCS#12)
- certFileDataB64 (the file data in base64 format)
- certPassword
- certDescription (optional, but not null)
- certActive (if false then do not transmit the certificate to the proxy recorders)
- applyForHost
- applyForPort
Response Fields:
- certificateId (the new unique ID)
- ownerUserId (always the own user ID)
- recorderId (always -1 = apply for all proxy recorders)
- originalCertFileName (without disk path)
- certFileType (always PKCS#12)
- certDescription
- certActive
- applyForHost
- applyForPort
Specific Error Flags:
- certDescriptionError
- applyForHostError
- applyForPortError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"addProxyRecordersClientCertificate",
"recorderId": -1,
"certFileName": "felix@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certFileDataB64": "MIIRQQIBAzCCEQ.....3dUWQICCAA=",
"certPassword": "mammamia",
"certDescription":"",
"certActive": true,
"applyForHost": "www.dkfqa.com",
"applyForPort": 443
}
JSON Response Example (Success Case):
{
"addedClientCertificate": {
"certificateId": 5,
"ownerUserId": 13,
"recorderId": -1,
"originalCertFileName": "felix@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certDescription": "",
"certActive": true,
"applyForHost": "www.dkfqa.com",
"applyForPort": 443
},
"isError": false
}
setProxyRecordersClientCertificateActive
Specific Request Fields:
- certificateId
- certActive (if false then do not transmit the certificate to the proxy recorders)
Response Fields:
- certificateId
- ownerUserId (always the own user ID)
- recorderId (always -1 = apply for all proxy recorders)
- originalCertFileName (without disk path)
- certFileType (always PKCS#12)
- certDescription
- certActive
- applyForHost
- applyForPort
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"setProxyRecordersClientCertificateActive",
"certificateId": 5,
"certActive": false
}
JSON Response Example (Success Case):
{
"updatedClientCertificate": {
"certificateId": 5,
"ownerUserId": 13,
"recorderId": -1,
"originalCertFileName": "felix@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certDescription": "",
"certActive": false,
"applyForHost": "www.dkfqa.com",
"applyForPort": 443
},
"isError": false
}
modifyProxyRecordersClientCertificate
Specific Request Fields:
- certificateId
- certDescription (optional but not null)
- applyForHost (required)
- applyForPort (required)
Response Fields:
- certificateId
- ownerUserId (always the own user ID)
- recorderId (always -1 = apply for all proxy recorders)
- originalCertFileName (without disk path)
- certFileType (always PKCS#12)
- certDescription
- certActive
- applyForHost
- applyForPort
Specific Error Flags:
- certDescriptionError
- applyForHostError
- applyForPortError
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"modifyProxyRecordersClientCertificate",
"certificateId": 5,
"certDescription": "My Cert",
"applyForHost": "www.dkfqa.com",
"applyForPort": 444
}
JSON Response Example (Success Case):
{
"updatedClientCertificate": {
"certificateId": 5,
"ownerUserId": 13,
"recorderId": -1,
"originalCertFileName": "felix@dkfqa.com.p12",
"certFileType": "PKCS#12",
"certDescription": "My Cert",
"certActive": false,
"applyForHost": "www.dkfqa.com",
"applyForPort": 444
},
"isError": false
}
deleteProxyRecordersClientCertificate
Specific Request Fields:
- certificateId
Response Fields:
- [none]
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteProxyRecordersClientCertificate",
"certificateId": 5
}
JSON Response Example (Success Case):
{"isError": false}
JSON Response Example (Error Case):
{"isError": true, "genericErrorText": "Invalid certificate Id"}
getTestjobTemplates
Specific Request Fields:
- [none]
Response Fields:
- testjobTemplatesArray
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestjobTemplates"
}
JSON Response Example (Success Case):
{
"testjobTemplatesArray": [
{
"testjobTemplate": {
"templateId": 10,
"templateName": "SimpleTest 1VU",
"templateDescription": "",
"testjobProperties": {
"testjobResultFileName": "",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "SimpleTest",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "",
"testjobRampUpTime": "10",
"localTestjobId": "",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.23",
"remoteTestjobId": "",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "",
"createTimeStamp": "1694549684261",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "invalid",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "",
"executeOnMeasuringAgentClusterId": ""
},
"hasUserInputFields": false
},
"testIsHealthy": true
},
{
"testjobTemplate": {
"templateId": 11,
"templateName": "SimpleTestWithInputFields 10VU",
"templateDescription": "",
"testjobProperties": {
"testjobResultFileName": "",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "10",
"testjobDescription": "SimpleTestWithInputFields",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "60",
"isClusterJob": "",
"testjobRampUpTime": "10",
"localTestjobId": "",
"testjobMaxLoopsPerUser": "5",
"productVersion": "4.8.23",
"remoteTestjobId": "",
"testjobAdditionalArguments": "",
"definedFromTestId": "385",
"testjobSignature": "",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "",
"createTimeStamp": "1695047319785",
"userInputFieldsFileName": "InputFields_SimpleTestWithInputFields.json",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "invalid",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "true",
"executeOnUserMeasuringAgentId": "",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "",
"executeOnMeasuringAgentClusterId": ""
},
"hasUserInputFields": true,
"userInputFieldsFile": {
"useShortNames": false,
"magicPattern": "UserInputFields",
"productVersion": "4.8.23",
"userInputFieldsArray": [
{
"useShortNames": false,
"productVersion": "4.8.23",
"label": "Input Host",
"variableName": "vHost",
"inputType": "string",
"defaultValue": "126.3.4.5",
"currentValue": "126.3.4.5"
},
{
"useShortNames": false,
"productVersion": "4.8.23",
"label": "Input Port",
"variableName": "vPort",
"inputType": "integer",
"defaultValue": "444",
"currentValue": "444"
}
]
}
},
"testIsHealthy": true
}
],
"isError": false
}
defineNewTestjobFromTemplate
Specific Request Fields:
- templateId
- measuringAgentOrClusterId
- isCluster (boolean)
- jobDescription
Response Fields:
- newTestjobId
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"defineNewTestjobFromTemplate",
"templateId":10,
"measuringAgentOrClusterId":65,
"isCluster":false,
"jobDescription": "Simple Test"
}
JSON Response Example (Success Case):
{
"newTestjobId":33533,
"isError":false
}
submitTestjob
Specific Request Fields:
- localTestjobId
Response Fields:
- agentResponse (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"submitTestjob",
"localTestjobId":33534
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"agentResponse": {
"remoteTestjobId": 24129,
"httpExecuteTimeMillis": 338
},
"isError": false
}
makeTestjobReadyToRun
Specific Request Fields:
- localTestjobId
Response Fields:
- agentResponse (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"makeTestjobReadyToRun",
"localTestjobId":33534
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"agentResponse": {
"testjobProperties": {
"testjobResultFileName": "",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "Simple Test",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "10",
"localTestjobId": "33534",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.18",
"remoteTestjobId": "24129",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "Z9B963yIj232nht1DIX5aSRt8m77QuXpvVA5736Tl9Wc7UZ7jOiU3l6UC7y3Nx6CXDDZB4qUg4FHDtTuHsD9xd0T/CSq/g==",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "",
"createTimeStamp": "1695050460395",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "ready to run",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "65",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "agent2.realload.com:8080",
"executeOnMeasuringAgentClusterId": ""
},
"httpExecuteTimeMillis": 2871
},
"isError": false
}
startTestjob
Specific Request Fields:
- localTestjobId
Response Fields:
- agentResponse (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"startTestjob",
"localTestjobId":33534
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"agentResponse": {
"testjobProperties": {
"testjobResultFileName": "",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "Simple Test",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "10",
"localTestjobId": "33534",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.18",
"remoteTestjobId": "24129",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "Z9B963yIj232nht1DIX5aSRt8m77QuXpvVA5736Tl9Wc7UZ7jOiU3l6UC7y3Nx6CXDDZB4qUg4FHDtTuHsD9xd0T/CSq/g==",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "",
"createTimeStamp": "1695050460395",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "running",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "65",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "agent2.realload.com:8080",
"executeOnMeasuringAgentClusterId": ""
},
"httpExecuteTimeMillis": 249
},
"isError": false
}
getMeasuringAgentTestjobs
Specific Request Fields:
- measuringAgentId
- synchronizeLocalTestjobsState (boolean)
Response Fields:
- agentResponse
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getMeasuringAgentTestjobs",
"measuringAgentId":65,
"synchronizeLocalTestjobsState":true
}
JSON Response Example (Success Case):
{
"agentResponse": {
"allTestjobsArray": [
{
"testjobProperties": {
"testjobResultFileName": "TestResult_RealloadTest_2023-09-09@23-45-34.json",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "RealloadTest",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "60",
"isClusterJob": "false",
"testjobRampUpTime": "10",
"localTestjobId": "30717",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.18",
"remoteTestjobId": "15240",
"testjobAdditionalArguments": "",
"definedFromTestId": "379",
"testjobSignature": "NeYJG4vf8/joAwz4nR4Fie3W0Qr7ijps25ONuk6F5BLghuD8/clPL9mBKc/ogQiic7wI8OXOf53Mi4YDCpg4dQzuaWQ==",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "0",
"createTimeStamp": "1694295923799",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "completed",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "true",
"executeOnUserMeasuringAgentId": "65",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "agent2.realload.com:8080",
"executeOnMeasuringAgentClusterId": ""
},
"testProperties": {
"referencedResourceFilesList": [
{
"projectId": 130,
"testplanId": 203,
"fileName": "com.dkfqs.selenium.jar"
},
{
"projectId": 130,
"testplanId": 203,
"fileName": "commons-io-2.13.0.jar"
},
{
"projectId": 130,
"testplanId": 203,
"fileName": "hamcrest-core-1.3.jar"
},
{
"projectId": 130,
"testplanId": 203,
"fileName": "com.dkfqs.tools.jar"
},
{
"projectId": 130,
"testplanId": 203,
"fileName": "junit-4.13.2.jar"
},
{
"projectId": 130,
"testplanId": 203,
"fileName": "selenium_bundle-4.12.1.jar"
}
],
"jsonConfigObject": {
"productVersion": "4.8.20",
"jUnitConfigExecutionClassArray": [
{
"productVersion": "4.8.20",
"executingClassName": "RealloadTest",
"testMethodNamesArray": [
"realload"
]
}
],
"seleniumWebBrowserType": "Firefox"
},
"executingScript": "RealloadTest.jar",
"executingScriptResourceFileList": "",
"createTimeStamp": "1694293491984",
"testDescription": "",
"definedFromTestplanId": "251",
"productVersion": "4.8.20",
"definedFromProjectId": "137",
"visibleTestName": "RealloadTest",
"scriptType": "Selenium4byJUnit4",
"testId": "379"
}
},
{
"testjobProperties": {
"testjobResultFileName": "TestResult_SimpleTest_2023-09-18@17-01-08.json",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "Simple Test",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "10",
"localTestjobId": "33533",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.18",
"remoteTestjobId": "24112",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "JYstx+myVNqbyVMr24u4Pi8IXkLGH0iXUquRh5+NL0veKs4DRJX/w2ZT77wLXF70J9YmTPzR7g==",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "0",
"createTimeStamp": "1695049264730",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "completed",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "65",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "agent2.realload.com:8080",
"executeOnMeasuringAgentClusterId": ""
},
"testProperties": {
"referencedResourceFilesList": [
{
"projectId": 130,
"testplanId": 203,
"fileName": "com.dkfqs.tools.jar"
}
],
"jsonConfigObject": {},
"executingScript": "SimpleTest.jar",
"executingScriptResourceFileList": "",
"createTimeStamp": "1694549112155",
"testDescription": "",
"definedFromTestplanId": "251",
"productVersion": "4.8.21",
"definedFromProjectId": "137",
"visibleTestName": "SimpleTest",
"scriptType": "OpenJDK11Jar",
"testId": "384"
}
},
{
"testjobProperties": {
"testjobResultFileName": "TestResult_SimpleTest_2023-09-18@17-51-53.json",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "1",
"testjobDescription": "Simple Test",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "10",
"localTestjobId": "33534",
"testjobMaxLoopsPerUser": "1",
"productVersion": "4.8.18",
"remoteTestjobId": "24129",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "Z9B963yIj232nht1DIX5aSRt8m77QuXYjP9rn4OBSq/g==",
"testjobDelayPerLoop": "1000",
"testjobExitCode": "0",
"createTimeStamp": "1695050460395",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "completed",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "65",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "agent2.realload.com:8080",
"executeOnMeasuringAgentClusterId": ""
},
"testProperties": {
"referencedResourceFilesList": [
{
"projectId": 130,
"testplanId": 203,
"fileName": "com.dkfqs.tools.jar"
}
],
"jsonConfigObject": {},
"executingScript": "SimpleTest.jar",
"executingScriptResourceFileList": "",
"createTimeStamp": "1694549112155",
"testDescription": "",
"definedFromTestplanId": "251",
"productVersion": "4.8.21",
"definedFromProjectId": "137",
"visibleTestName": "SimpleTest",
"scriptType": "OpenJDK11Jar",
"testId": "384"
}
}
],
"httpExecuteTimeMillis": 141
},
"isError": false
}
getTestjobOutDirectoryFilesInfo
Specific Request Fields:
- localTestjobId
Response Fields:
- filesInfoArray (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestjobOutDirectoryFilesInfo",
"localTestjobId":33534
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"measuringAgentData": {
"agentId": 65,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Demo Agent 2",
"agentHost": "agent2.realload.com",
"agentPort": 8080,
"authToken": "************",
"sharedMeasuringAgentTemplateId": -1,
"isLaunchedByCloudCredits": false
},
"filesInfoArray": [
{
"fileName": "DataCollector.err",
"fileSize": 0,
"lastModified": 1695051456261,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.out",
"fileSize": 5647,
"lastModified": 1695052318516,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.pid",
"fileSize": 8,
"lastModified": 1695051456273,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.port",
"fileSize": 6,
"lastModified": 1695051457729,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.state",
"fileSize": 2,
"lastModified": 1695052318512,
"mimeType": "application/octet-stream"
},
{
"fileName": "TestResult_SimpleTest_2023-09-18@17-51-53.json",
"fileSize": 7421,
"lastModified": 1695052315488,
"mimeType": "application/json"
},
{
"fileName": "user_1_statistics.out",
"fileSize": 5037,
"lastModified": 1695052313788,
"mimeType": "application/octet-stream"
},
{
"fileName": "users.out",
"fileSize": 1923,
"lastModified": 1695052314000,
"mimeType": "application/octet-stream"
}
],
"isError": false
}
getTestjobOutDirectoryFile
Specific Request Fields:
- localTestjobId
- clusterMemberId (optional, -1 = no cluster member file)
- fileName
Response Fields:
- filesInfoArray (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestjobOutDirectoryFile",
"localTestjobId":33534,
"fileName":"users.out"
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"measuringAgentData": {
"agentId": 65,
"createdBySystem": false,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Demo Agent 2",
"agentHost": "agent2.realload.com",
"agentPort": 8080,
"authToken": "************",
"sharedMeasuringAgentTemplateId": -1,
"isLaunchedByCloudCredits": false
},
"fileContentB64": "MjAyMy0wOS0xOCAxNTo1MTo1Mi42MjYgfCBtYWluIHwgSU5GTyB8IE1heC4gSmF2YSBNZW1vcnkgPSAzMzAwIE1CCjIwMjMtMDktMTggMTU6NTE6NTIuNjU1IHwgbWFpbiB8IElORk8gfCBUaW1lIFpvbmUgPSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSArMDA6MDAKMjAyMy0wOS0xOCAxNTo1MTo1Mi42NjggfCBtYWluIHwgSU5GTyB8IC0tLSB2dnYgLS0tIHJlc291cmNlIGZpbGVzIC0tLSB2dnYgLS0tCjIwMjMtMDktMTggMTU6NTE6NTIuNjY5IHwgbWFpbiB8IElORk8gfCAtLS0gXl5eIC0tLSByZXNvdXJjZSBmaWxlcyAtLS0gXl5eIC0tLQoyMDIzLTA5LTE4IDE1OjUxOjUyLjY2OSB8IG1haW4gfCBJTkZPIHwgLS0tIHZ2diAtLS0gZ2VuZXJpYyBhcmd1bWVudHMgLS0tIHZ2diAtLS0KMjAyMy0wOS0xOCAxNTo1MTo1Mi42NjkgfCBtYWluIHwgSU5GTyB8IHVzZXJzID0gMQoyMDIzLTA5LTE4IDE1OjUxOjUyLjY2OSB8IG1haW4gfCBJTkZPIHwgZHVyYXRpb24gPSAzMAoyMDIzLTA5LTE4IDE1OjUxOjUyLjY3MCB8IG1haW4gfCBJTkZPIHwgbWF4TG9vcHMgPSAxCjIwMjMtMDktMTggMTU6NTE6NTIuNjcwIHwgbWFpbiB8IElORk8gfCBkZWxheVBlckxvb3AgPSAxMDAwCjIwMjMtMDktMTggMTU6NTE6NTIuNjcwIHwgbWFpbiB8IElORk8gfCByYW1wdXBUaW1lID0gMTAKMjAyMy0wOS0xOCAxNTo1MTo1Mi42NzAgfCBtYWluIHwgSU5GTyB8IGRhdGFPdXRwdXREaXIgPSAvaG9tZS9ka2Zxcy9hZ2VudC91c2Vyc0RhdGEvVXNlcl8xMy9UZXN0Sm9icy9UZXN0am9iXzI0MTI5L291dAoyMDIzLTA5LTE4IDE1OjUxOjUyLjY3MCB8IG1haW4gfCBJTkZPIHwgZGVidWdFeGVjID0gZmFsc2UKMjAyMy0wOS0xOCAxNTo1MTo1Mi42NzEgfCBtYWluIHwgSU5GTyB8IGRlYnVnRGF0YSA9IGZhbHNlCjIwMjMtMDktMTggMTU6NTE6NTIuNjcxIHwgbWFpbiB8IElORk8gfCBkZXNjcmlwdGlvbiA9IFNpbXBsZSBUZXN0CjIwMjMtMDktMTggMTU6NTE6NTIuNjcxIHwgbWFpbiB8IElORk8gfCAtLS0gXl5eIC0tLSBnZW5lcmljIGFyZ3VtZW50cyAtLS0gXl5eIC0tLQoyMDIzLTA5LTE4IDE1OjUxOjUyLjkyMSB8IG1haW4gfCBJTkZPIHwgSlZNIFdhcm11cCBwZXJmb3JtZWQgaW4gMjM2IG1zCjIwMjMtMDktMTggMTU6NTE6NTIuOTc3IHwgbWFpbiB8IElORk8gfCAtLS0gdnZ2IC0tLSBzcGVjaWZpYyBhcmd1bWVudHMgLS0tIHZ2diAtLS0KMjAyMy0wOS0xOCAxNTo1MTo1Mi45OTQgfCBtYWluIHwgSU5GTyB8IHRjcFRpbWVvdXQgPSAxMDAwMAoyMDIzLTA5LTE4IDE1OjUxOjUyLjk5NSB8IG1haW4gfCBJTkZPIHwgc3NsVGltZW91dCA9IDUwMDAKMjAyMy0wOS0xOCAxNTo1MTo1Mi45OTcgfCBtYWluIHwgSU5GTyB8IGh0dHBUaW1lb3V0ID0gMzAwMDAKMjAyMy0wOS0xOCAxNTo1MTo1Mi45OTcgfCBtYWluIHwgSU5GTyB8IC0tLSBeXl4gLS0tIHNwZWNpZmljIGFyZ3VtZW50cyAtLS0gXl5eIC0tLQoyMDIzLTA5LTE4IDE1OjUxOjUzLjAwMiB8IG1haW4gfCBJTkZPIHwgW1N0YXJ0IG9mIFRlc3RdCjIwMjMtMDktMTggMTU6NTE6NTMuMDAzIHwgVXNlci0xIHwgSU5GTyB8IFVzZXIgc3RhcnRlZAoyMDIzLTA5LTE4IDE1OjUxOjUzLjAyNiB8IHBlcmlvZGljLXRocmVhZCB8IElORk8gfCBUaHJlYWQgc3RhcnRlZAoyMDIzLTA5LTE4IDE1OjUxOjUzLjAyNiB8IFVzZXItMSB8IElORk8gfCBTdGFydCBleGVjdXRlIHNlc3Npb24gbm8uIDEgLi4uCjIwMjMtMDktMTggMTU6NTE6NTMuNTk3IHwgVXNlci0xIHwgSU5GTyB8IC4uLiBFbmQgZXhlY3V0ZSBzZXNzaW9uIG5vLiAxIHN1Y2Nlc3NmdWwgcGFzc2VkCjIwMjMtMDktMTggMTU6NTE6NTMuNjQ5IHwgVXNlci0xIHwgSU5GTyB8IFVzZXIgbm9ybWFsIHRlcm1pbmF0ZWQKMjAyMy0wOS0xOCAxNTo1MTo1NC4wMDMgfCBtYWluIHwgSU5GTyB8IFtFbmQgb2YgVGVzdF0K",
"isError": false
}
saveTestjobOutDirectoryFileToProjectTree
Specific Request Fields:
- localTestjobId
- clusterMemberId (optional, -1 = no cluster member file)
- fileName
- saveAsFileName
- projectId
- resourceSetId
Response Fields:
- fileHashCode
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"saveTestjobOutDirectoryFileToProjectTree",
"localTestjobId":33534,
"fileName":"users.out",
"saveAsFileName":"users.out",
"projectId":137,
"resourceSetId":251
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"fileHashCode": 4557110,
"isError": false
}
deleteTestjob
Specific Request Fields:
- localTestjobId
- deleteAlsoRemoteTestjob (boolean)
Response Fields:
- localTestjobState (before the testjob was delete)
- agentResponse (for measuring agents), or
- controllerResponse (for cluster controllers)
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteTestjob",
"localTestjobId":33534,
"deleteAlsoRemoteTestjob":true
}
JSON Response Example (Success Case):
{
"isClusterJob": false,
"localTestjobState": "completed",
"agentResponse": {
"httpExecuteTimeMillis": 143
},
"isError": false
}
getTestExecutionSuites
Specific Request Fields:
- [none]
Response Fields:
- testExecutionSuitesArray
- testExecutionSuite
- testRunResultsArray
Specific Error Flags:
- [none]
Values of testRunResultsArray[n].executionState :
- EXECUTION_STATE_INITIALIZED = 0;
- EXECUTION_STATE_RUNNING = 1;
- EXECUTION_STATE_RUN_COMPLETED = 2;
- EXECUTION_STATE_RUN_FAILED = 3;
- EXECUTION_STATE_RUN_ABORTED = 4;
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestExecutionSuites"
}
JSON Response Example (Success Case):
{
"testExecutionSuitesArray": [
{
"testExecutionSuite": {
"testExecutionSuiteId": 2,
"testExecutionSuiteName": "First Suite",
"testExecutionSuiteDescription": "",
"topExecuteOnMeasuringAgentOrClusterId": "m-145",
"topExecutionOrder": 2,
"totalNumberOfTestjobs": 3,
"isTestExecutionSuiteHealthy": true
},
"testRunResultsArray": [
{
"userId": 13,
"subUserId": -1,
"testRunId": 1,
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699716014207,
"testRunLastUpdatedTimestamp": 1699716054368,
"numTestjobTemplatesToExecute": 3,
"numTestjobTemplatesExecutionPassed": 3,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 8,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 5295,
"totalSamplesPassed": 12,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 1,
"maxPendingSamples": 1
},
{
"userId": 13,
"subUserId": -1,
"testRunId": 2,
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699716108571,
"testRunLastUpdatedTimestamp": 1699716151826,
"numTestjobTemplatesToExecute": 3,
"numTestjobTemplatesExecutionPassed": 3,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 8,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 5503,
"totalSamplesPassed": 12,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 1,
"maxPendingSamples": 1
}
]
},
{
"testExecutionSuite": {
"testExecutionSuiteId": 3,
"testExecutionSuiteName": "Second Suite Long Run",
"testExecutionSuiteDescription": "",
"topExecuteOnMeasuringAgentOrClusterId": "c-27",
"topExecutionOrder": 1,
"totalNumberOfTestjobs": 2,
"isTestExecutionSuiteHealthy": true
},
"testRunResultsArray": [
{
"userId": 13,
"subUserId": -1,
"testRunId": 1,
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699715808192,
"testRunLastUpdatedTimestamp": 1699715867468,
"numTestjobTemplatesToExecute": 2,
"numTestjobTemplatesExecutionPassed": 2,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 44,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 4400,
"totalSamplesPassed": 44,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 4,
"maxPendingSamples": 4
},
{
"userId": 13,
"subUserId": -1,
"testRunId": 2,
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699715952212,
"testRunLastUpdatedTimestamp": 1699716012124,
"numTestjobTemplatesToExecute": 2,
"numTestjobTemplatesExecutionPassed": 2,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 44,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 4400,
"totalSamplesPassed": 44,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 4,
"maxPendingSamples": 3
},
{
"userId": 13,
"subUserId": -1,
"testRunId": 3,
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699717843777,
"testRunLastUpdatedTimestamp": 1699717905674,
"numTestjobTemplatesToExecute": 2,
"numTestjobTemplatesExecutionPassed": 2,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 43,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 4300,
"totalSamplesPassed": 43,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 4,
"maxPendingSamples": 3
}
]
}
],
"isError": false
}
getCurrentlyRunningTestExecutionSuiteIds
Specific Request Fields:
- [none]
Response Fields:
- testExecutionSuiteIdArray
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getCurrentlyRunningTestExecutionSuiteIds"
}
JSON Response Example (Success Case):
{
"testExecutionSuiteIdArray": [
3
],
"isError": false
}
startTestExecutionSuiteTestRun
Specific Request Fields:
- testExecutionSuiteId
- testRunAnnotation (optional, can also be an empty string)
- topExecuteOnMeasuringAgentOrClusterId (the ’top execution’ measuring agent id or cluster id)
- topExecuteOnCluster (boolean, if true: top execution = cluster id, or false: top execution = measuring agent id)
Response Fields:
- newTestRunId
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"startTestExecutionSuiteTestRun",
"testExecutionSuiteId":3,
"testRunAnnotation":"",
"topExecuteOnMeasuringAgentOrClusterId":143,
"topExecuteOnCluster":false
}
JSON Response Example (Success Case):
{
"newTestRunId": 5,
"isError": false
}
JSON Response Example (Error Case):
{
"isError": true,
"genericErrorText": "Test execution suite currently running"
}
getTestExecutionSuiteTestRunResultDetail
Specific Request Fields:
- testExecutionSuiteId
- testRunId
Response Fields:
- testRunResultDetail
- testRunResult
- executedByUserNickname
- testjobsOutFilesArray
Specific Error Flags:
- [none]
Values of executionState :
- EXECUTION_STATE_INITIALIZED = 0;
- EXECUTION_STATE_RUNNING = 1;
- EXECUTION_STATE_RUN_COMPLETED = 2;
- EXECUTION_STATE_RUN_FAILED = 3;
- EXECUTION_STATE_RUN_ABORTED = 4;
Values of logLevel :
- LOG_DEBUG = 4;
- LOG_INFO = 7;
- LOG_WARN = 8;
- LOG_ERROR = 9;
- LOG_FATAL = 10;
Values of elementType :
- ELEMENT_TYPE_TESTJOB_TEMPLATE = 1;
- ELEMENT_TYPE_EXECUTION_GROUP = 10;
Values of executionOrder :
- EXECUTION_ORDER_SEQUENTIAL = 1;
- EXECUTION_ORDER_PARALLEL = 2;
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestExecutionSuiteTestRunResultDetail",
"testExecutionSuiteId":3,
"testRunId":5
}
JSON Response Example (Success Case):
{
"testRunResultDetail": {
"testRunResult": {
"userId": 13,
"subUserId": -1,
"testExecutionSuite": {
"testExecutionSuiteId": 3,
"testExecutionSuiteName": "Second Suite Long Run",
"testExecutionSuiteDescription": "",
"topExecuteOnMeasuringAgentOrClusterId": "c-27",
"topExecutionOrder": 1,
"testExecutionElementsArray": [
{
"productVersion": "4.8.24",
"elementType": 10,
"elementId": 737867696,
"elementInactive": false,
"executionGroupName": "Top Group",
"executionGroupDescription": "",
"executionOrder": 2,
"executeOnMeasuringAgentOrClusterId": "",
"executionElementsArray": [
{
"productVersion": "4.8.24",
"elementType": 1,
"elementId": 1040705161,
"elementInactive": false,
"templateId": 18
},
{
"productVersion": "4.8.24",
"elementType": 1,
"elementId": 493179849,
"elementInactive": false,
"templateId": 18
}
]
}
]
},
"testjobTemplatesArray": [
{
"templateId": 18,
"templateName": "Simple Test 2VU Long Run",
"templateDescription": "",
"testjobProperties": {
"testjobResultFileName": "",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "2",
"testjobDescription": "Simple Test 2VU Long Run",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "",
"testjobRampUpTime": "1",
"localTestjobId": "",
"testjobMaxLoopsPerUser": "-1",
"productVersion": "4.8.24",
"remoteTestjobId": "",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "",
"testjobDelayPerLoop": "3000",
"testjobExitCode": "",
"createTimeStamp": "1697224057753",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "invalid",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "",
"executeOnMeasuringAgentClusterId": ""
},
"hasUserInputFields": false
}
],
"testRunId": 5,
"executorLog": {
"userId": 13,
"testExecutionSuiteId": 3,
"testRunId": 5,
"logEntriesArray": [
{
"timestamp": 1699726961703,
"logLevel": 7,
"threadName": "TestSuiteExecutor-S:3-R:5",
"testExecutionElementId": -1,
"logMessage": "Test run #5 started",
"stacktraceArray": []
},
{
"timestamp": 1699726963704,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-G:737867696",
"testExecutionElementId": 737867696,
"logMessage": "Execution Group 'Top Group' started",
"stacktraceArray": []
},
{
"timestamp": 1699726963706,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution started",
"stacktraceArray": []
},
{
"timestamp": 1699726963708,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution started",
"stacktraceArray": []
},
{
"timestamp": 1699726963731,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' test job defined with id = 34442",
"stacktraceArray": []
},
{
"timestamp": 1699726963753,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' test job defined with id = 34443",
"stacktraceArray": []
},
{
"timestamp": 1699726964081,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' test job submitted to 'Shared Agent 2', remote test job id = 791",
"stacktraceArray": []
},
{
"timestamp": 1699726964128,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' test job submitted to 'Shared Agent 2', remote test job id = 792",
"stacktraceArray": []
},
{
"timestamp": 1699726968458,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' started on 'Shared Agent 2', remote test job id = 792",
"stacktraceArray": []
},
{
"timestamp": 1699726968466,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' started on 'Shared Agent 2', remote test job id = 791",
"stacktraceArray": []
},
{
"timestamp": 1699727005910,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution successful",
"stacktraceArray": []
},
{
"timestamp": 1699727006912,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution successful",
"stacktraceArray": []
},
{
"timestamp": 1699727012111,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:1040705161",
"testExecutionElementId": 1040705161,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution terminated",
"stacktraceArray": []
},
{
"timestamp": 1699727012112,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-T:493179849",
"testExecutionElementId": 493179849,
"logMessage": "Test Job Template 'Simple Test 2VU Long Run' execution terminated",
"stacktraceArray": []
},
{
"timestamp": 1699727012113,
"logLevel": 7,
"threadName": "TestSuiteExecutorGroup-S:3-R:5-G:737867696",
"testExecutionElementId": 737867696,
"logMessage": "Execution Group 'Top Group' terminated",
"stacktraceArray": []
},
{
"timestamp": 1699727014114,
"logLevel": 7,
"threadName": "TestSuiteExecutor-S:3-R:5",
"testExecutionElementId": -1,
"logMessage": "Test run #5 done. Execution state = completed",
"stacktraceArray": []
}
]
},
"executionState": 2,
"annotationArray": [],
"testRunStartTimestamp": 1699726961701,
"testRunLastUpdatedTimestamp": 1699727012113,
"numTestjobTemplatesToExecute": 2,
"numTestjobTemplatesExecutionPassed": 2,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 44,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 4400,
"totalSamplesPassed": 44,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 4,
"maxPendingSamples": 2,
"testRunExecutionGroupResultArray": [
{
"testExecutionSuiteId": 3,
"testRunId": 5,
"executionGroupElementId": 737867696,
"containsMeasuringAgent": true,
"measuringAgent": {
"agentId": 143,
"createdBySystem": true,
"ownerUserId": 13,
"agentActive": true,
"agentDescription": "Shared Agent 2",
"agentHost": "192.168.0.50",
"agentPort": 8081,
"sharedMeasuringAgentTemplateId": 5,
"isLaunchedByCloudCredits": false
},
"containsMeasuringAgentCluster": false,
"executionState": 2,
"executionStartTimestamp": 1699726963704,
"executionEndTimestamp": 1699727012113,
"numTestjobTemplatesExecutionPassed": 2,
"numTestjobTemplatesExecutionFailed": 0,
"totalSessionsPassed": 44,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 4400,
"totalSamplesPassed": 44,
"totalSamplesFailed": 0
}
],
"testRunTestjobResultArray": [
{
"testExecutionSuiteId": 3,
"testRunId": 5,
"testExecutionGroupElementId": 737867696,
"testjobTemplateElementId": 493179849,
"testjobTemplate": {
"templateId": 18,
"templateName": "Simple Test 2VU Long Run",
"templateDescription": "",
"testjobProperties": {
"testjobResultFileName": "TestResult_SimpleTest_2023-11-11@19-22-49.json",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "2",
"testjobDescription": "Simple Test 2VU Long Run",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "1",
"localTestjobId": "34443",
"testjobMaxLoopsPerUser": "-1",
"productVersion": "4.8.24",
"remoteTestjobId": "792",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "",
"testjobDelayPerLoop": "3000",
"testjobExitCode": "",
"createTimeStamp": "1697224057753",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "invalid",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "143",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "Shared Agent 2",
"executeOnMeasuringAgentClusterId": ""
},
"hasUserInputFields": false
},
"executionState": 2,
"executionStartTimestamp": 1699726963708,
"executionEndTimestamp": 1699727005710,
"jobStartTimestamp": 1699726969618,
"jobEndTimestamp": 1699727003517,
"totalSessionsPassed": 22,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 2200,
"totalSamplesPassed": 22,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 2,
"maxPendingSamples": 1
},
{
"testExecutionSuiteId": 3,
"testRunId": 5,
"testExecutionGroupElementId": 737867696,
"testjobTemplateElementId": 1040705161,
"testjobTemplate": {
"templateId": 18,
"templateName": "Simple Test 2VU Long Run",
"templateDescription": "",
"testjobProperties": {
"testjobResultFileName": "TestResult_SimpleTest_2023-11-11@19-22-49.json",
"executeMeasuringAgentClusterInfo": "",
"testjobConcurrentUsers": "2",
"testjobDescription": "Simple Test 2VU Long Run",
"testjobDebugMeasuring": "false",
"testjobMaxTestDuration": "30",
"isClusterJob": "false",
"testjobRampUpTime": "1",
"localTestjobId": "34442",
"testjobMaxLoopsPerUser": "-1",
"productVersion": "4.8.24",
"remoteTestjobId": "791",
"testjobAdditionalArguments": "",
"definedFromTestId": "384",
"testjobSignature": "",
"testjobDelayPerLoop": "3000",
"testjobExitCode": "",
"createTimeStamp": "1697224057753",
"userInputFieldsFileName": "",
"testjobType": "load test",
"enableAutomaticFileSync": "true",
"testjobState": "invalid",
"isClusterControllerJobProperties": "",
"testjobDebugExecution": "false",
"executeOnUserMeasuringAgentId": "143",
"definedFromTimeZoneId": "Europe/Berlin",
"executeMeasuringAgentInfo": "Shared Agent 2",
"executeOnMeasuringAgentClusterId": ""
},
"hasUserInputFields": false
},
"executionState": 2,
"executionStartTimestamp": 1699726963706,
"executionEndTimestamp": 1699727006711,
"jobStartTimestamp": 1699726969515,
"jobEndTimestamp": 1699727003517,
"totalSessionsPassed": 22,
"totalSessionsFailed": 0,
"totalSessionsPassedTimeSum": 2200,
"totalSamplesPassed": 22,
"totalSamplesFailed": 0,
"maxConcurrentUsers": 2,
"maxPendingSamples": 1
}
]
},
"executedByUserNickname": "DKF",
"testjobsOutFilesArray": [
{
"elementId": 1040705161,
"outFileInfoArray": [
{
"fileName": "DataCollector.err",
"fileSize": 0,
"lastModified": 1699727006724,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.out",
"fileSize": 6537,
"lastModified": 1699727006726,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.pid",
"fileSize": 7,
"lastModified": 1699727006736,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.port",
"fileSize": 6,
"lastModified": 1699727006737,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.state",
"fileSize": 1,
"lastModified": 1699727006738,
"mimeType": "application/octet-stream"
},
{
"fileName": "TestResult_SimpleTest_2023-11-11@19-22-49.json",
"fileSize": 11913,
"lastModified": 1699727006739,
"mimeType": "application/json"
},
{
"fileName": "users.out",
"fileSize": 5507,
"lastModified": 1699727006741,
"mimeType": "application/octet-stream"
}
]
},
{
"elementId": 493179849,
"outFileInfoArray": [
{
"fileName": "DataCollector.err",
"fileSize": 0,
"lastModified": 1699727005722,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.out",
"fileSize": 6264,
"lastModified": 1699727005725,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.pid",
"fileSize": 7,
"lastModified": 1699727005733,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.port",
"fileSize": 6,
"lastModified": 1699727005734,
"mimeType": "application/octet-stream"
},
{
"fileName": "DataCollector.state",
"fileSize": 1,
"lastModified": 1699727005735,
"mimeType": "application/octet-stream"
},
{
"fileName": "TestResult_SimpleTest_2023-11-11@19-22-49.json",
"fileSize": 11850,
"lastModified": 1699727005736,
"mimeType": "application/json"
},
{
"fileName": "users.out",
"fileSize": 5507,
"lastModified": 1699727005738,
"mimeType": "application/octet-stream"
}
]
}
]
},
"isError": false
}
getTestExecutionSuiteTestRunTestJobOutputFileContent
Specific Request Fields:
- testExecutionSuiteId
- testRunId
- testjobTemplateElementId (don’t confuse with testjobTemplateId)
- fileName
Response Fields:
- fileContentB64
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"getTestExecutionSuiteTestRunTestJobOutputFileContent",
"testExecutionSuiteId":3,
"testRunId":5,
"testjobTemplateElementId":1040705161,
"fileName":"users.out"
}
JSON Response Example (Success Case):
{
"fileContentB64": "MjAyMy0xMS0xMSAxO ... uZCBvZiBUZXN0XQo=",
"isError": false
}
deleteTestExecutionSuiteTestRun
Specific Request Fields:
- testExecutionSuiteId
- testRunId
Response Fields:
- [none]
Specific Error Flags:
- [none]
JSON Request Example:
{
"authTokenValue":"jPmFClqeDUXaEk8Q274q",
"action":"deleteTestExecutionSuiteTestRun",
"testExecutionSuiteId":3,
"testRunId":5
}
JSON Response Example (Success Case):
{
"isError": false
}