Simulate Concurrent Usage
The Simulate Concurrent Usage REST API executes different concurrent operations on an environment by simulating users. It can be used to validate the performance of the environment to verify that the response time is acceptable when the service is under the load during specific operations run by a specific number of users. For example, it can be used to measure performance when 50 users simultaneously open a form using different POVs. It allows the self-service load testing of environments.
This REST API performs the simulation by executing the specified operations for a given number of users and iterations. It runs multiple iterations to calculate the minimum time, the maximum time and the average time for a particular operation. It supports these operations to perform concurrent usage load testing:
-
Open forms
-
Save forms
-
Run business rules
-
Run business rulesets
-
Run data rules
-
Open ad hoc grids
-
Execute report
-
Execute book
Note:
This API executes the specified operations on the current environment and may, depending on the operation, update the data in the environment. Run this API on test environments. Running this API on production environments is not advised.
This REST API accepts a ZIP file, that must already have been uploaded to the
environment, as input. The ZIP file contains one requirement.csv
file, and the input files that support the use cases included in
requirement.csv
. It can also optionally contain a
userVarMemberMapping.csv
file to provide user variable member
mapping and an options.xml
file to provide Smart View options for
some use cases. The REST API then simulates the use cases and creates a report that
may be emailed to one or more recipients.
This REST API is version v1.
Required Roles
Service Administrator (Identity Domain Administrator is also required to use testModes 0, 1, and 2.)
REST Resource
POST /interop/rest/v1/concurrentusage/run
Supported Media Types: application/json
Note:
Before using the REST resources, you must understand how to access the REST resources and other important concepts. See Implementation Best Practices for EPM Cloud REST APIs. Using this REST API requires prerequisites. See Prerequisites.
The following table summarizes the request parameters.
Table 13-2 Parameters
Name | Description | Type | Data Type | Required | Default |
---|---|---|---|---|---|
inputFile |
The name of the zip file that contains concurrent usage test
cases. The zip file should contain a file named
For information on how to create these files, see Preparing to Run the simulateConcurrentUsage Command in Working with EPM Automate for Oracle Enterprise Performance Management Cloud. Use the Upload REST API to upload the zip file to the environment prior to calling this REST API. |
Payload | String | Yes | None |
numberOfIterations |
Number of iterations each use case identified in
requirement.csv has to run to measure the
response time.
|
Payload | Integer | No | 1 |
notificationEmails |
Email addresses of the recipients to whom the result will be sent
at the end of the concurrent usage simulation. The emails must be
separated by semi-colons and enclosed in double quotes. For example:
"jdoe@example.com;jane.doe@example.com" .
|
Payload | String | No | Email of the user who executed the API |
lagTime |
Number of seconds (5 seconds or more) between the execution of
each use case in requirement.csv .
|
Payload | Integer | No | 5 |
testMode |
Mode in which concurrent usages simulation has to run. Possible values are 0, 1, 2, 3, and 4.
|
Payload | Integer | No | 0 |
Example URL and Payload
https://<BASE URL>/interop/rest/v1/concurrentusage/run
{
"inputFile": "<ZIP_FILE_NAME>",
"numberOfIterations": 1,
"testMode": 0,
"notificationEmails": "<EMAIL_ADDRESS>",
"lagTime": 5
}
Sample Request
{
"inputFile" : "InputFiles2.zip",
"numberOfIterations" : 1,
"testMode" : 0,
"notificationEmails" : "abc@example.oracle.com",
"lagTime" : 10
}
Response
Supported Media Types: application/json
Table 13-3 Parameters
Name | Description |
---|---|
details |
In the case of errors, details are published with the error string |
status |
See Migration Status Codes |
links |
Detailed information about the link |
href |
Links to API call or status API |
action |
The HTTP call type |
rel |
Possible values: self or Job
Status . If the value is set to Job
Status , you can use the href to get the status
|
data |
null |
Example of Response Body
Example 1: Error Case
{
"details": "InputFile is missing in request body",
"status": 1,
"items": null,
"links": [{
"href": "https://<BASE URL>/interop/rest/v1/concurrentusage/run",
"action": "POST",
"rel": "self",
"data": {
"jobType": "RUN_CONCURRENTUSAGE",
"numberOfIterations": 2,
"testMode": 0,
"lagTime": 5,
"inputfile": "",
"notificationEmails": "abc@example.oracle.com"
}
}]
}
Example 2: Success Case
{
"details": null,
"status": -1,
"items": null,
"links": [{
"href": "https://<BASE URL>/interop/rest/v1/concurrentusage/run",
"action": "POST",
"rel": "self",
"data": {
"jobType": "RUN_CONCURRENTUSAGE",
"numberOfIterations": 2,
"testMode": 0,
"lagTime": 5,
"inputfile": "InputFiles2.zip",
"notificationEmails": "abc@example.oracle.com"
}
},
{
"href": "https://<BASE URL>/interop/rest/v1/concurrentusage/jobs/437838742934700",
"action": "GET",
"rel": "Job Status",
"data": null
}
]
}