You can get a brief overview of all your test jobs in the web interface. If you need a more detailed report, you can get it via the TestEngine API by using a test job's ID, or you can download the report directly from the web interface.
Overview of the running test jobs
TestEngine’s web interface contains brief information about all the running test jobs you sent. To open it, go to the home page of TestEngine:
For example, if TestEngine is installed on your local machine and you run it on the default port, use the following link:
The Overview page of the TestEngine web interface contains a list of the recently finished, running, and queued test jobs:
The Run History page contains the list of finished test jobs:
Tip: | You can filter the test jobs by their name, status and users who sent the jobs. You can also search for a particular test job |
Both pages contain brief information on test jobs.
Test job report
Summary report
You can view a short summary report of finished test jobs. Click the test job to see what test suites and test cases were executed, the used environment, and the status of the assertions:
Full downloadable report
TestEngine provides full test job reports in several formats:
-
JSON
-
JUnit XML
-
Excel sheet
-
PDF
To get the report:
-
In the web interface, click next to the needed test job and select the desired report format.
-- or --
-
Send a GET request to the
/api/v1/testjobs/<testjobId>/report
resource:http://<testengine-host>:<testengine-port>/api/v1/testjobs/<testjobId>/reportHere, testjobId is the ID of the test job. You got it from the TestEngine response to your request when you ran your test. Also, you can get testjob IDs by sending a GET response to the /api/v1/testjobs resource, or by clicking in the Web UI.
Add the
Accept
header to specify in which format TestEngine should send the report. For example, when you send a request with theAccept: application/junit+xml
header, TestEngine responses with a report of the JUnit XML format. If you do not specify a header, TestEngine responses with a report in the JSON format.
Here's an example of a test job report:
JSON
{
"testSuiteResultReports" : [
{
"totalTestSuiteTime" : 101341,
"testSuiteName" : "Project 1 TestSuite 1",
"testCaseResultReports" : [
{
"totalTestCaseTime" : 95043,
"testCaseName" : "findByStatus",
"testStepResultReports" : [
{
"messages" : [ ],
"requestTimings" : {
"timeStamp" : 1565101550314,
"readTime" : 94349,
"connectTime" : 124,
"timeToFirstByte" : 130,
"totalRequestTime" : 94604
},
"transaction" : "/api/v1/testjobs/69152b3c-c7ec-46b3-ae27-333c8350d2aa/transactions/1565101455691",
"testStepName" : "GET Request",
"transactionId" : "1565101455691",
"assertionStatus" : "PASS",
"testStepType" : "REST Request",
"totalTestStepTime" : 94604
},
...
]
},
...
]
}
...
],
"userName" : "john.smith",
"startTime" : 1565101454559,
"totalTime" : 101342,
"submitTime" : 1565101454559,
"testjobId" : "69152b3c-c7ec-46b3-ae27-333c8350d2aa",
"queueTime" : 0,
"status" : "FINISHED",
"executionParameters" : { },
"projectName" : "ReadyAPI Tutorial"
}
JUnit
<testsuites>
<properties>
<property name="testjobId" value="69152b3c-c7ec-46b3-ae27-333c8350d2aa"/>
<property name="status" value="FINISHED"/>
</properties>
<testsuite name="ReadyAPI Tutorial.Project 1 TestSuite 1" tests="22" failures="0" errors="0" time="101.341">
<testcase name="findByStatus" time="95.043"/>
...
</testsuite>
...
</testsuites>
While the test job is running, you can get only a JSON report.
Any report type contains the test job’s status:
JSON
{
"testSuiteResultReports" : [
...
],
...
"testjobId" : "69152b3c-c7ec-46b3-ae27-333c8350d2aa",
"queueTime" : 0,
"status" : "FINISHED",
"executionParameters" : { },
"projectName" : "ReadyAPI Tutorial"
}
JUnit
<testsuites>
<properties>
<property name="testjobId" value="69152b3c-c7ec-46b3-ae27-333c8350d2aa"/>
<property name="status" value="FINISHED"/>
</properties>
<testsuite name="ReadyAPI Tutorial.Project 1 TestSuite 1" tests="22" failures="0" errors="0" time="101.341">
...
</testsuite>
...
</testsuites>
The status element shows the current state of the test. If it is FINISHED, then there are no failed test steps. If the status is FAILED, the test has one or more failed test steps.
To learn more about the test job reports, see Get Results.
Transaction reports
TestEngine logs request test steps, such as SOAP Request, REST Request and so on. For each request, it stores the transaction details in the JSON format.
To get the transaction report, send a GET request to the /api/v1/testjobs/<testjobId>/transactions/<transactionId>
resource:
Here, testjobId is the ID of the test job and transactionId is the ID of a particular transaction you want to get. You got the transactionId from the JSON report:
JSON
{
"testSuiteResultReports" : [
{
"testCaseResultReports" : [
{
"testStepResultReports" : [
{
"transaction" : "/api/v1/testjobs/69152b3c-c7ec-46b3-ae27-333c8350d2aa/transactions/1557987179804",
"testStepName" : "PUT Request",
"transactionId" : "1557987179804",
"assertionStatus" : "PASS",
"testStepType" : "REST Request",
"totalTestStepTime" : 378
},
}]
}],
...
}
This is a sample transaction report:
JSON
{
"log": {
"version": "1.2",
"creator": {
"name": "ReadyAPITestEngine",
"version": "0.5.5"
},
"entries": [
{
"pageref": "1557987179804",
"startedDateTime": "2019-05-16T06:12:59Z",
"time": 378,
"request": {
"method": "PUT",
"url": "https://petstore.swagger.io",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "Connection",
"value": "Keep-Alive"
},
{
"name": "User-Agent",
"value": "Apache-HttpClient/4.5.2 (Java/1.8.0_181)"
},
{
"name": "Host",
"value": "petstore.swagger.io"
},
{
"name": "Accept-Encoding",
"value": "gzip,deflate"
},
{
"name": "Content-Length",
"value": "103"
},
{
"name": "Content-Type",
"value": "application/json"
}
],
"queryString": [],
"postData": {
"params": [],
"text": "{\n \"id\" : 97239163501746,\n \"name\" : \"Doggo\",\n \"photoUrls\" : [ ],\n \"tags\" : [ ],\n \"status\" : \"pending\"\n}"
},
"headersSize": -1,
"bodySize": -1
},
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [
{
"name": "Server",
"value": "Jetty(9.2.9.v20150224)"
},
{
"name": "Access-Control-Allow-Origin",
"value": "*"
},
{
"name": "Access-Control-Allow-Methods",
"value": "GET, POST, DELETE, PUT"
},
{
"name": "Connection",
"value": "close"
},
{
"name": "#status#",
"value": "HTTP/1.1 200 OK"
},
{
"name": "Date",
"value": "Thu, 16 May 2019 06:13:00 GMT"
},
{
"name": "Access-Control-Allow-Headers",
"value": "Content-Type, api_key, Authorization"
},
{
"name": "Content-Type",
"value": "application/json"
}
],
"content": {
"size": 80,
"mimeType": "application/json",
"text": "{\"id\":97239163501746,\"name\":\"Doggo\",\"photoUrls\":[],\"tags\":[],\"status\":\"pending\"}"
},
"redirectURL": "",
"headersSize": -1,
"bodySize": 80
},
"cache": {},
"timings": {
"dns": 0,
"connect": 125,
"send": 378,
"wait": 250,
"receive": 0
}
}
]
}
}
You can use this report, to analyze:
Element | Description |
---|---|
log |
The root element of the report. |
entries |
An array of transactions. |
request |
Detailed info on the sent request. |
method |
The method used in the request. |
headers |
An array of request headers. |
queryString |
An array of query parameters and their values. |
postData |
An object containing the request’s payload. |
text |
Payload of the request. |
response |
Contains detailed info on the received response. |
status |
The response’s status code. |
headers |
An array of the response’s headers. |
content |
The content of the response. |
text |
The response body. |
To learn more about transaction reports, see Get Results.