copyright: years: 2019 lastupdated: "2023-02-12"
Configuring workers for Voice Agent Tester
You can create a worker to manage tests. A worker contains the outline of which number to call to run test cases against.
A worker, which contains the following information, manages the tests:
- A list of test cases IDs that the worker uses when the worker runs the tests
- The number of times that the worker runs all the test cases
- The number of failures that the worker tolerates before the tests that are running fail
- A call definition of who the worker calls to run tests
Creating a worker
To create a worker, first create a JSON object and then do a POST request for the JSON object.
You can use the following example to create your JSON object:
Each test case in the following example represents a separate phone call. All test cases run sequentially.
{
"name" : "payment worker",
"description" : "This worker tests all flows related to making a payment",
"namespace":"dev",
"iterations" : 20,
"failuresToIgnore": 2,
"callDefinition": {
"tenantId":"17873345644",
"to": "sip:testee@someplace",
"from": "sip:tester@someplace",
"tenantConfig":{
"config":{
"tenantURI":"sip:someone@someplace.com"
},
"updateMethod":"merge"
},
"route":["sipSomewhere"]
},
"cases" : [
{"caseId": "guid"},
{"caseId": "guid"},
{"caseId": "guid"}
]
}
The following table describes the properties for the JSON object:
Property | Description |
---|---|
name | Specifies the name of the worker |
description | Optionally specifies a more detailed description of the worker |
namespace | Optionally specifies a group to which a test case is bound. If no namespace is specified, the namespace is default . |
iterations | Specifies the number of times that the worker runs all the test cases. When you set the value to 0 , the worker runs a never ending job. When you run with a value of 0 , modify the job to stop or pause the worker. |
callDefinition | Specifies the definition of how the outbound call is started. The "tenantId" URI is the URI of the tenant that starts the outbound call. The key-value pairs for the outbound call body require to and from values, but they also accept values of tenantConfig and route . For more information, see Making outbound calls using REST API. |
failuresToIgnore | Optionally specifies the number of failures to ignore before the job fails. If the property isn't defined, the job runs to completion no matter how many failures it has. |
cases | Specifies a list of test case IDs to run for a single iteration. |
Next, create the worker by entering a POST request for the JSON object that you created in the previous sub-step.
Use the following example:
POST /voice-agent-tester/v1/worker
If the POST request is successful, a 201 CREATED response is returned. This response includes the GUID of the worker that you created. You use the GUID to manage the worker.
Additional requests to manage workers
-
To get the worker JSON object associated with a specific ID, use a request similar to the following example:
GET /voice-agent-tester/v1/worker/<worker-id>
The following example shows the JSON object that can be returned on a GET request:
{ "id":"guid", "rev":"version", "name" : "payment worker", "description" : "This executor tests all flows related to making a payment", "iterations" : 20, "callDefinition": { "tenantId":"17873345644", "to": "sip:testee@someplace", "from": "sip:tester@someplace", "tenantConfig":{ "config":{ "tenantURI":"sip:someone@someplace.com" }, "updateMethod":"merge" }, "route":["sipSomewhere"] }, "cases" : [ {"caseId": "guid"}, {"caseId": "guid"}, {"caseId": "guid"} ], "jobs" : [ {"jobID": "guid"}, {"jobID": "guid"} ], "batchJobs" : [ {"jobID": "guid"}, {"jobID": "guid"} ] }
The following table describes additional properties for the JSON object:
Property | Description |
---|---|
id | Specifies the GUID for the worker |
rev | Specifies the current version of the worker |
jobs | Specifies an array of jobs started by the worker |
batchjobs | Specifies an arrray of batch jobs started by the worker |
-
To modify an existing worker by using a PUT request, use a request similar to the following example:
PUT /voice-agent-tester/v1/worker/<worker-id>
-
To delete a worker by using the DELETE request, use a request similar to the following example:
Deleting a worker deletes all the job data for the worker that ran or for the worker that is running.
DELETE /voice-agent-tester/v1/worker/<worker-id>
-
To get a list of all workers in the query namespace by using a GET request, use a request similar to the following example:
GET /voice-agent-tester/v1/worker?namespace=<your_namespace>
-
To delete all the workers in the query namespace by using a DELETE request, use a request similar to the following example:
Deleting all the workers deletes all the job data for all the workers that ran or for all the workers that are running.
DELETE /voice-agent-tester/v1/worker?namespace=<your_namespace>