Continuous Testing y Bitrise

Con el paso synthetics-test-automation-bitrise-step-run-tests
, puedes ejecutar tests de Synthetic durante tu Bitrise CI, asegurándote de que todos tus equipos que utilizan Bitrise pueden beneficiarse de los tests de Synthetic en cada etapa del ciclo de vida del software. Este paso utiliza el comando Datadog CI Synthetics.
Configuración
Este paso no está disponible en la Biblioteca de pasos oficial de Bitrise.
Para empezar:
- Añade la siguiente URL git a tu flujo de trabajo. Consulta la documentación oficial de Bitrise sobre cómo hacerlo a través de la aplicación Bitrise. También la puedes configurar localmente haciendo referencia a la URL git en tu archivo
bitrise.yml
.
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
- Añade tus claves de API y de aplicación a tus secretos en Bitrise.
- Configurar tus entradas de pasos. También puedes configurarlas en tu archivo
bitrise.yml
. Las únicas entradas requeridas son los dos secretos que configuraste anteriormente. Para obtener una lista completa de entradas, consulta la Sección de entradas.
Cómo utilizar este paso a nivel local
Puedes ejecutar este paso directamente utilizando la CLI de Bitrise.
Para ejecutar este paso localmente:
- Abre tu terminal o línea de comandos.
git clone
el repositorio de Bitrise.cd
en el directorio del paso (el que acaba de git clone
).- Crea un archivo
.bitrise.secrets.yml
en el mismo directorio que bitrise.yml
. El archivo .bitrise.secrets.yml
es un archivo ignorado por Git, por lo que puedes almacenar tus secretos en él. - Consulta el archivo
bitrise.yml
para cualquier secreto que debas establecer en .bitrise.secrets.yml
. - Una vez que tengas los parámetros secretos necesarios en tu archivo
.bitrise.secrets.yml
, ejecuta este paso con la CLI de Bitrise: bitrise run test
.
Un ejemplo de archivo .bitrise.secrets.yml
:
envs:
- A_SECRET_PARAM_ONE: the value for secret one
- A_SECRET_PARAM_TWO: the value for secret two
Uso sencillo
Ejemplo de uso de identificadores públicos
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- public_ids: 'abc-d3f-ghi, jkl-mn0-pqr'
Ejemplo de tarea utilizando los archivos synthetics.json
existentes
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- files: 'e2e-tests/*.synthetics.json'
Para ver un archivo de test de ejemplo, consulta este archivo test.synthetics.json
.
Uso complejo
Ejemplo de tarea utilizando la testSearchQuery
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- test_search_query: 'tag:e2e-tests'
Ejemplo de tarea que utiliza testSearchQuery
y anulaciones de variables
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- test_search_query: 'tag:e2e-tests'
- variables: |
START_URL=https://staging.website.com
PASSWORD=$STAGING_PASSWORD
Ejemplo de tarea que utiliza una anulación global de configuración con configPath
Esta tarea anula la ruta del archivo global datadog-ci.config.json
.
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- config_path: './synthetics-config.json'
Para ver un ejemplo de archivo de configuración, consulta el archivo global.config.json
.
Ejemplo con todas las configuraciones posibles
Como referencia, este es un ejemplo de una configuración completo:
- git::https://github.com/DataDog/synthetics-test-automation-bitrise-step-run-tests.git@1.10.0:
inputs:
- api_key: <DATADOG_API_KEY>
- app_key: <DATADOG_APP_KEY>
- batch_timeout: 4200000
- config_path: './global.config.json'
- device_ids: 'apple iphone se (2022),15.4.1, apple iphone 14 pro,16.1'
- fail_on_critical_errors: true
- fail_on_missing_tests: true
- fail_on_timeout: true
- files: 'e2e-tests/*.synthetics.json'
- junit_report: 'e2e-test-junit'
- locations: 'aws:us-west-1'
- mobile_application_version: '01234567-8888-9999-abcd-efffffffffff'
- mobile_application_version_file_path: 'path/to/application.apk'
- public_ids: 'abc-d3f-ghi, jkl-mn0-pqr'
- site: 'datadoghq.com'
- subdomain: 'myorg'
- test_search_query: 'tag:e2e-tests'
- tunnel: true
- variables: |
START_URL=https://staging.website.com
PASSWORD=$STAGING_PASSWORD
Entradas
Nombre | Requisito | Descripción |
---|
apiKey | obligatorio | Tu clave de API de Datadog. Esta clave es creada por tu organización de Datadog y se accederá a ella como una variable de entorno. |
appKey | obligatorio | Tu clave de aplicación de Datadog. Esta clave es creada por tu organización de Datadog y se accederá a ella como una variable de entorno. |
batchTimeout | opcional | La duración (en milisegundos) tras la cual el lote excede el tiempo de espera. El valor predeterminado es 30 minutos. |
configPath | opcional | La configuración global de JSON se utiliza al lanzar los tests. Consulta el ejemplo de configuración para obtener más detalles. |
deviceIds | opcional | Anula el dispositivo o dispositivos móviles para ejecutar tu test móvil. |
locations | opcional | Cadena de localizaciones separada por punto y coma para anular las localizaciones donde se ejecutan tus tests. |
failOnCriticalErrors | opcional | Un indicador booleano que falla el trabajo de CI si no se activa ningún test, o si los resultados no pueden obtenerse de Datadog. El valor predeterminado es false . |
failOnMissingTests | opcional | Falla el trabajo de CI si al menos un test especificado con un ID público (usando publicIds o publicados en un archivo de test) falta en una ejecución (por ejemplo, si ha sido borrado programáticamente o en el sitio de Datadog). |
failOnTimeout | opcional | Un indicador booleano que falla el trabajo de CI si al menos un test excede el tiempo de espera predeterminado. El valor predeterminado es true . |
files | opcional | Patrones glob para detectar archivos de configuración del test de Synthetic. |
jUnitReport | opcional | El nombre de archivo para un informe de JUnit si deseas generar uno. |
mobileApplicationVersion | opcional | Anula la versión predeterminada de la aplicación móvil para un test de aplicación móvil de Synthetic. La versión debe cargarse y estar disponible en Datadog. Esta versión también se genera en el pasodatadog-mobile-app-upload . |
mobileApplicationVersionFilePath | opcional | Anula la versión de la aplicación para tests de aplicación móvil de Synthetic. |
pollingTimeout | opcional | OBSOLETO La duración (en milisegundos) tras la cual datadog-ci deja de sondear los resultados de los tests. Utiliza --batchTimeout en su lugar. |
publicIds | opcional | Cadena de IDs públicos separados por comas para los tests de Synthetic que deseas activar. |
site | opcional | El sitio de Datadog al que enviar los datos. Si la variable de entorno DD_SITE está activada, tiene prioridad. Tu sitio de Datadog es . |
subdomain | opcional | El nombre del subdominio personalizado configurado para acceder a tu aplicación de Datadog. Si la URL utilizada para acceder a Datadog es myorg.datadoghq.com , el valor subdomain debe establecerse en myorg . |
testSearchQuery | opcional | Activa los tests correspondientes a una consulta de búsqueda. Esto puede ser útil si estás etiquetando tus configuraciones de test. Consulta las prácticas recomendadas para obtener más información sobre el etiquetado. |
tunnel | opcional | Activa Entornos locales y de staging para interactuar con la API de Datadog. |
variables | opcional | Pares de clave-valor para inyectar variables en los tests. Deben formatearse utilizando KEY=VALUE . |
Referencias adicionales
Más enlaces, artículos y documentación útiles: