Get a list of tests events

GET https://api.ap1.datadoghq.com/api/v2/ci/tests/eventshttps://api.ap2.datadoghq.com/api/v2/ci/tests/eventshttps://api.datadoghq.eu/api/v2/ci/tests/eventshttps://api.ddog-gov.com/api/v2/ci/tests/eventshttps://api.us2.ddog-gov.com/api/v2/ci/tests/eventshttps://api.uk1.datadoghq.com/api/v2/ci/tests/eventshttps://api.datadoghq.com/api/v2/ci/tests/eventshttps://api.us3.datadoghq.com/api/v2/ci/tests/eventshttps://api.us5.datadoghq.com/api/v2/ci/tests/events

Información general

El endpoint de lista devuelve los eventos de test de CI Visibility que coincidan con una consulta de búsqueda. Los resultados se paginan de forma similar a los logs.

Utiliza este endpoint para ver los últimos eventos de test.

This endpoint requires any of the following permissions:
  • ci_visibility_read
  • test_optimization_read

  • OAuth apps require the test_optimization_read authorization scope to access this endpoint.

    Argumentos

    Cadenas de consulta

    Nombre

    Tipo

    Descripción

    filter[query]

    string

    Search query following log syntax.

    filter[from]

    string

    Minimum timestamp for requested events.

    filter[to]

    string

    Maximum timestamp for requested events.

    sort

    enum

    Order of events in results.
    Allowed enum values: timestamp, -timestamp

    page[cursor]

    string

    List following results with a cursor provided in the previous query.

    page[limit]

    integer

    Maximum number of events in the response.

    Respuesta

    OK

    Response object with all test events matching the request and pagination information.

    Expand All

    Campo

    Tipo

    Descripción

    data

    [object]

    Array of events matching the request.

    attributes

    object

    JSON object containing all event attributes and their associated values.

    attributes

    object

    JSON object of attributes from CI Visibility test events.

    tags

    [string]

    Array of tags associated with your event.

    test_level

    enum

    Test run level. Allowed enum values: session,module,suite,test

    id

    string

    Unique ID of the event.

    type

    enum

    Type of the event. Allowed enum values: citest

    links

    object

    Links attributes.

    next

    string

    Link for the next set of results. The request can also be made using the POST endpoint.

    meta

    object

    The metadata associated with a request.

    elapsed

    int64

    The time elapsed in milliseconds.

    page

    object

    Paging attributes.

    after

    string

    The cursor to use to get the next results, if any. To make the next request, use the same parameters with the addition of page[cursor].

    request_id

    string

    The identifier of the request.

    status

    enum

    The status of the response. Allowed enum values: done,timeout

    warnings

    [object]

    A list of warnings (non-fatal errors) encountered. Partial results may return if warnings are present in the response.

    code

    string

    A unique code for this type of warning.

    detail

    string

    A detailed explanation of this specific warning.

    title

    string

    A short human-readable summary of the warning.

    {
      "data": [
        {
          "attributes": {
            "attributes": {
              "customAttribute": 123,
              "duration": 2345
            },
            "tags": [
              "team:A"
            ],
            "test_level": "test"
          },
          "id": "AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA",
          "type": "citest"
        }
      ],
      "links": {
        "next": "https://app.datadoghq.com/api/v2/ci/tests/events?filter[query]=foo\u0026page[cursor]=eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
      },
      "meta": {
        "elapsed": 132,
        "page": {
          "after": "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ=="
        },
        "request_id": "MWlFUjVaWGZTTTZPYzM0VXp1OXU2d3xLSVpEMjZKQ0VKUTI0dEYtM3RSOFVR",
        "status": "done",
        "warnings": [
          {
            "code": "unknown_index",
            "detail": "indexes: foo, bar",
            "title": "One or several indexes are missing or invalid, results hold data from the other indexes"
          }
        ]
      }
    }

    Bad Request

    API error response.

    Expand All

    Campo

    Tipo

    Descripción

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Not Authorized

    API error response.

    Expand All

    Campo

    Tipo

    Descripción

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Too many requests

    API error response.

    Expand All

    Campo

    Tipo

    Descripción

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Ejemplo de código

                      # Curl command
    curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/ci/tests/events" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
    """
    Get a list of tests events returns "OK" response
    """
    
    from datetime import datetime
    from dateutil.relativedelta import relativedelta
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.ci_visibility_tests_api import CIVisibilityTestsApi
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = CIVisibilityTestsApi(api_client)
        response = api_instance.list_ci_app_test_events(
            filter_query="@test.service:web-ui-tests",
            filter_from=(datetime.now() + relativedelta(seconds=-30)),
            filter_to=datetime.now(),
            page_limit=5,
        )
    
        print(response)
    

    Instructions

    First install the library and its dependencies and then save the example to example.py and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
    # Get a list of tests events returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::CIVisibilityTestsAPI.new
    opts = {
      filter_query: "@test.service:web-ui-tests",
      filter_from: (Time.now + -30),
      filter_to: Time.now,
      page_limit: 5,
    }
    p api_instance.list_ci_app_test_events(opts)
    

    Instructions

    First install the library and its dependencies and then save the example to example.rb and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
    // Get a list of tests events returns "OK" response
    
    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"os"
    	"time"
    
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
    )
    
    func main() {
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewCIVisibilityTestsApi(apiClient)
    	resp, r, err := api.ListCIAppTestEvents(ctx, *datadogV2.NewListCIAppTestEventsOptionalParameters().WithFilterQuery("@test.service:web-ui-tests").WithFilterFrom(time.Now().Add(time.Second * -30)).WithFilterTo(time.Now()).WithPageLimit(5))
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `CIVisibilityTestsApi.ListCIAppTestEvents`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `CIVisibilityTestsApi.ListCIAppTestEvents`:\n%s\n", responseContent)
    }
    

    Instructions

    First install the library and its dependencies and then save the example to main.go and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
    // Get a list of tests events returns "OK" response
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.CiVisibilityTestsApi;
    import com.datadog.api.client.v2.api.CiVisibilityTestsApi.ListCIAppTestEventsOptionalParameters;
    import com.datadog.api.client.v2.model.CIAppTestEventsResponse;
    import java.time.OffsetDateTime;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        CiVisibilityTestsApi apiInstance = new CiVisibilityTestsApi(defaultClient);
    
        try {
          CIAppTestEventsResponse result =
              apiInstance.listCIAppTestEvents(
                  new ListCIAppTestEventsOptionalParameters()
                      .filterQuery("@test.service:web-ui-tests")
                      .filterFrom(OffsetDateTime.now().plusSeconds(-30))
                      .filterTo(OffsetDateTime.now())
                      .pageLimit(5));
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println("Exception when calling CiVisibilityTestsApi#listCIAppTestEvents");
          System.err.println("Status code: " + e.getCode());
          System.err.println("Reason: " + e.getResponseBody());
          System.err.println("Response headers: " + e.getResponseHeaders());
          e.printStackTrace();
        }
      }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to Example.java and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
    // Get a list of tests events returns "OK" response
    use chrono::{DateTime, Utc};
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_ci_visibility_tests::CIVisibilityTestsAPI;
    use datadog_api_client::datadogV2::api_ci_visibility_tests::ListCIAppTestEventsOptionalParams;
    
    #[tokio::main]
    async fn main() {
        let configuration = datadog::Configuration::new();
        let api = CIVisibilityTestsAPI::with_config(configuration);
        let resp = api
            .list_ci_app_test_events(
                ListCIAppTestEventsOptionalParams::default()
                    .filter_query("@test.service:web-ui-tests".to_string())
                    .filter_from(
                        DateTime::parse_from_rfc3339("2021-11-11T11:10:41+00:00")
                            .expect("Failed to parse datetime")
                            .with_timezone(&Utc),
                    )
                    .filter_to(
                        DateTime::parse_from_rfc3339("2021-11-11T11:11:11+00:00")
                            .expect("Failed to parse datetime")
                            .with_timezone(&Utc),
                    )
                    .page_limit(5),
            )
            .await;
        if let Ok(value) = resp {
            println!("{:#?}", value);
        } else {
            println!("{:#?}", resp.unwrap_err());
        }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to src/main.rs and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
    /**
     * Get a list of tests events returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.CIVisibilityTestsApi(configuration);
    
    const params: v2.CIVisibilityTestsApiListCIAppTestEventsRequest = {
      filterQuery: "@test.service:web-ui-tests",
      filterFrom: new Date(new Date().getTime() + -30 * 1000),
      filterTo: new Date(),
      pageLimit: 5,
    };
    
    apiInstance
      .listCIAppTestEvents(params)
      .then((data: v2.CIAppTestEventsResponse) => {
        console.log(
          "API called successfully. Returned data: " + JSON.stringify(data)
        );
      })
      .catch((error: any) => console.error(error));
    

    Instructions

    First install the library and its dependencies and then save the example to example.ts and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"