Page tree
Skip to end of metadata
Go to start of metadata

The SeeTest Reporter provides you with a Rest API that gives you direct access to the test data and statistics.

For documentation on Transaction View please follow : 


  1. Key - Key and value construct a tag. Each test has a subset of available tags with various values that describe the test specifics. Example: {device.os : Android}.

  2. Project - Concept derived from the cloud. Each project has it's own resources (users, devices) and can be used to created separation of testing efforts.
  3. Test - Single test execution instance.

The role of the user performing the Rest Operation is specified by the 'Authorization' header.

For more information please visit How To Execute Rest API, for a detailed example.

Get test Transactions

Returns JSON representation of existing Test Transaction with received {id}.

If it does not exist a status 404 is returned.

  • This API is available for all user roles.

GET /reporter/api/transactions/{ids}

{id} - id of the transaction.


Response Status: 200 OK

  "name""Test Rail",
  "deviceName""iPhone xs b0227",
  "deviceModel""iPhone XS",
  "deviceScreen""1125 x 2436",
  "attachmentList": []

Delete test Transactions

Delete the test transactions identified by the received IDs. One or more ids can be provided, separated by a comma.

Example: /api/transactions/3,4,23

  • This API is available for cloudAdmin and projectAdmin only.

DELETE /reporter/api/transactions/{ids}

{id} - id of the transaction.

Comparison of transaction's measuresfilter

It generates a comparison of average transaction measures between the latest base key-value and older key values.

POST /reporter/api/transactions/compare?token=<accessKey>

Json parameter







Response Status: 200 OK

  "filter": [],
  "keys": [

See  Performance Pipeline for more details 

Download HAR file

  • This API is available for all user roles.

Downloads the HAR file attached to the transaction id received as the path parameter.

GET /reporter/api/transactions/{id}/har






tokenStringYesAccess Key

See  Performance Pipeline for more details 

Code Example

The examples below using the Unirest HTTP library.  To compile and run them, use the following Maven dependency:

Maven dependency

import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import org.junit.Test;


import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;

public class APIConfluenceTransactions {
    private HttpResponse<String> responseString;
    private HttpResponse<InputStream> responseInputStream;

    private String urlBase = "<Reporter URL>";   //TODO: modify hostname and port of your Reporter

    private String user = "<User>";  //TODO: user name
    private String password = "<Password>";  //TODO: user password
    public void deleteMultipleTransactions() {

        int from = 1;
        int to = 1000;
        int step = 100;

        for (int start = from; start< to; start=start+ step){
            StringBuffer toDelete =new StringBuffer(start+"");
            for(int i = start+1; i<start+ step; i++){


    private void deleteTranactions(String toDelete) {
        String url = urlBase + "/api/testtx/"+toDelete;

        try {
            responseString = Unirest.delete(url)
                    .basicAuth(user, password)
                    .header("content-type", "application/json")


        } catch (Exception e) {

    public void testDowload() throws Exception {
    	String url= urlBase + "/api/transactions/%d/har";
    	long transId = <transaction id>;
    	String token = <...accesToken...>

        url = String.format(url, transId);
        HttpResponse<InputStream> response = Unirest.get(url)
                .queryString("token", token)
        int status = response.getStatus();
        Assert.assertEquals(200, status);
        if (status == 200) {
            List<String> disposition = response.getHeaders().get("Content-Disposition");
            String fileName = "harfile";
            if (!disposition.isEmpty()) {
                fileName = disposition.get(0).split("=")[1];
            fileName = "/tmp/" + fileName;
            saveToFile(response.getBody(), fileName);
            Assert.assertTrue(new File(fileName).exists());
    static void saveToFile(InputStream in, String fileName) throws IOException {
        try (OutputStream out = new FileOutputStream(fileName)) {
            byte[] buffer = new byte[1024];
            int readCount;
            while ((readCount = != -1) {
                out.write(buffer, 0, readCount);

  • No labels