Applies to ReadyAPI 3.0, last modified on December 06, 2019

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.

Test jobs overview

TestEngine’s web interface contains brief information about all the test jobs you sent. To open it, go to the home page of TestEngine:

http://<testengine-host>:<port>/

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 existing test jobs:

TestEngine tutorial: Overivew page

Click the image to enlarge it.

Tip: You can filter the test jobs by their name, status and users who sent the jobs.

The table contains brief information on test jobs.

Column descriptions

Test job report

TestEngine provides test job reports in several formats:

  • JSON

  • JUnit XML

  • Excel sheet

  • PDF

To get the report:

  • In the web interface, click Download job report 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>/report

    Here, 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 the Accept: 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" : "SoapUI Tutorial"
}

JUnit

<testsuites>
   <properties>
      <property name="testjobId" value="69152b3c-c7ec-46b3-ae27-333c8350d2aa"/>
      <property name="status" value="FINISHED"/>
   </properties>
   <testsuite name="SoapUI 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" : "SoapUI Tutorial"
}

JUnit

<testsuites>
   <properties>
      <property name="testjobId" value="69152b3c-c7ec-46b3-ae27-333c8350d2aa"/>
      <property name="status" value="FINISHED"/>
   </properties>
   <testsuite name="SoapUI 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:

http://<testengine-host>:<testengine-port>/api/v1/testjobs/<testjobId>/transactions/<transactionId>

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": "ReadyAPI TestEngine",
            "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.

Prev     Next

See Also

Get Status
Get Results

Highlight search results